|
95 | 95 | end
|
96 | 96 | end end
|
97 | 97 |
|
98 |
| -@testset "MINLP" begin |
99 |
| -v = [1.0, 2.0, 4.0, 3.0] |
100 |
| -w = [5.0, 4.0, 3.0, 2.0] |
101 |
| -W = 4.0 |
102 |
| -u0 = [0.0, 0., 0., 1.0] |
103 |
| - |
104 |
| -optfun = OptimizationFunction( |
105 |
| - (u, p)-> -v'u, cons = (res, u,p)-> res .= w'u, Optimization.AutoForwardDiff() |
106 |
| -) |
107 |
| - |
108 |
| - |
109 |
| - |
110 |
| -optprob = OptimizationProblem( |
111 |
| - optfun, u0; lb = zero.(u0), ub = one.(u0), int = ones(Bool, length(u0)), |
112 |
| - lcons = [-Inf;], ucons = [W;] |
113 |
| -) |
114 |
| - |
115 |
| -nl_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Ipopt.Optimizer, "print_level"=>0) |
116 |
| -minlp_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Juniper.Optimizer, "nl_solver"=> nl_solver) |
117 |
| - |
118 |
| -res = solve(optprob, minlp_solver) |
119 |
| -@test res.u == [0., 0., 1., 0.] |
120 |
| -@test res.objective == -4.0 |
| 98 | +@testset "MINLP" begin |
| 99 | + v = [1.0, 2.0, 4.0, 3.0] |
| 100 | + w = [5.0, 4.0, 3.0, 2.0] |
| 101 | + W = 4.0 |
| 102 | + u0 = [0.0, 0.0, 0.0, 1.0] |
| 103 | + |
| 104 | + optfun = OptimizationFunction((u, p) -> -v'u, cons = (res, u, p) -> res .= w'u, |
| 105 | + Optimization.AutoForwardDiff()) |
| 106 | + |
| 107 | + optprob = OptimizationProblem(optfun, u0; lb = zero.(u0), ub = one.(u0), |
| 108 | + int = ones(Bool, length(u0)), |
| 109 | + lcons = [-Inf;], ucons = [W;]) |
| 110 | + |
| 111 | + nl_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Ipopt.Optimizer, |
| 112 | + "print_level" => 0) |
| 113 | + minlp_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Juniper.Optimizer, |
| 114 | + "nl_solver" => nl_solver) |
| 115 | + |
| 116 | + res = solve(optprob, minlp_solver) |
| 117 | + @test res.u == [0.0, 0.0, 1.0, 0.0] |
| 118 | + @test res.objective == -4.0 |
121 | 119 | end
|
0 commit comments