# Help with multi-objective, non-linear JuMP problem

**URL:** <https://discourse.julialang.org/t/help-with-multi-objective-non-linear-jump-problem/98487>\
**Category:** Optimization (Mathematical)\
**Tags:** jump\
**Created:** [May 8, 2023, 3:30pm UTC](https://discourse.julialang.org/t/help-with-multi-objective-non-linear-jump-problem/98487 "2023-05-08T15:30:41Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [May 8, 2023, 9:13pm UTC](https://discourse.julialang.org/t/help-with-multi-objective-non-linear-jump-problem/98487/5 "2023-05-08T21:13:29Z")

</div>

Vector-valued nonlinear objectives are currently not supported. But you can work-around this by introducing an intermediate variable:

```julia
julia> using JuMP

julia> import Ipopt

julia> import MultiObjectiveAlgorithms as MOA

julia> S, L, U, N = 1000, 15, 40, 54
(1000, 15, 40, 54)

julia> r = rand(54, 2);

julia> model = Model(() -> MOA.Optimizer(Ipopt.Optimizer))
A JuMP Model
Feasibility problem with:
Variables: 0
Model mode: AUTOMATIC
CachingOptimizer state: EMPTY_OPTIMIZER
Solver name: MOA[algorithm=MultiObjectiveAlgorithms.Lexicographic, optimizer=Ipopt]

julia> set_silent(model)

julia> set_attribute(model, MOA.Algorithm(), MOA.Dichotomy())

julia> set_attribute(model, MOA.SolutionLimit(), 10)

julia> @variable(model, L <= s[1:N] <= U, start = 14);

julia> @constraint(model, sum(s) <= S);

julia> @variable(model, obj[1:2])
2-element Vector{VariableRef}:
 obj[1]
 obj[2]

julia> @NLconstraint(model, [i=1:2], obj[i] == sum(r[j, i] / s[j] for j in 1:N));

julia> @objective(model, Min, obj)
2-element Vector{VariableRef}:
 obj[1]
 obj[2]

julia> optimize!(model)

julia> for i in 1:result_count(model)
           println("Solution $i")
           println(" Objective = ", objective_value(model; result = i))
           # println(value.(s; result = i))
       end
Solution 1
  Objective = [1.301662920394281, 1.4623640207630741]
Solution 2
  Objective = [1.3055226089750172, 1.42828408366959]
Solution 3
  Objective = [1.316550684889867, 1.3920126114808964]
Solution 4
  Objective = [1.333160463352082, 1.3592565385479682]
Solution 5
  Objective = [1.3545043825902743, 1.3305717489020021]
Solution 6
  Objective = [1.3800656024907705, 1.3066224590810092]
Solution 7
  Objective = [1.407792737347257, 1.2893101957186606]
Solution 8
  Objective = [1.43828364753188, 1.2782264523557885]
Solution 9
  Objective = [1.4544662674597648, 1.2751661435451191]
Solution 10
  Objective = [1.469182305027906, 1.2741557079126375]

```

---

_[View the full topic](https://discourse.julialang.org/t/help-with-multi-objective-non-linear-jump-problem/98487)._
