Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.57 KB | None | 0 0
  1. using JuMP, Ipopt
  2.  
  3. function minimize(
  4. f::Function,
  5. A::Matrix,
  6. b::Vector,
  7. optimizer::JuMP.OptimizerFactory
  8. )
  9. M, N = size(A)
  10. @assert length(b) == M
  11. model = Model(optimizer)
  12. @variable(model, x[1:N] >= 0)
  13. @constraint(model, A * x .== b)
  14. JuMP.register(model, :f, N, (x...) -> f(collect(x)), autodiff = true)
  15. @NLobjective(model, Min, f(x...))
  16. optimize!(model)
  17. return objective_value(model), value.(x)
  18. end
  19.  
  20.  
  21. # min x[1]^2
  22. # s.t. x[1] - x[2] == 2
  23. # x >= 0
  24. z, x = minimize(x -> x[1]^2, [1 -1], [2], with_optimizer(Ipopt.Optimizer))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement