Skip to content

Commit 79a297b

Browse files
Update evolutionary.md
MOO docs update.
1 parent 2646d29 commit 79a297b

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

docs/src/optimization_packages/evolutionary.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,23 @@ f = OptimizationFunction(rosenbrock)
4141
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0])
4242
sol = solve(prob, Evolutionary.CMAES(μ = 40, λ = 100))
4343
```
44+
45+
## Multi-objective optimization
46+
The Rosenbrock and Ackley functions can be optimized using the `Evolutionary.NSGA2()` as follows:
47+
48+
```@example MOO-Evolutionary
49+
using Optimization, OptimizationEvolutionary
50+
function func(x, p=nothing)::Vector{Float64}
51+
f1 = (1.0 - x[1])^2 + 100.0 * (x[2] - x[1]^2)^2 # Rosenbrock function
52+
f2 = -20.0 * exp(-0.2 * sqrt(0.5 * (x[1]^2 + x[2]^2))) - exp(0.5 * (cos(2π * x[1]) + cos(2π * x[2]))) + exp(1) + 20.0 # Ackley function
53+
return [f1, f2]
54+
end
55+
initial_guess = [1.0, 1.0]
56+
function gradient_multi_objective(x, p=nothing)
57+
ForwardDiff.jacobian(func, x)
58+
end
59+
obj_func = MultiObjectiveOptimizationFunction(func, jac=gradient_multi_objective)
60+
algorithm = OptimizationEvolutionary.NSGA2()
61+
problem = OptimizationProblem(obj_func, initial_guess)
62+
result = solve(problem, algorithm)
63+
```

0 commit comments

Comments
 (0)