Skip to content

Commit bd5779c

Browse files
Update linearandinteger.md
1 parent bdcfa94 commit bd5779c

File tree

1 file changed

+0
-148
lines changed

1 file changed

+0
-148
lines changed

docs/src/tutorials/linearandinteger.md

Lines changed: 0 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -59,156 +59,8 @@ optprob = OptimizationProblem(optsys,
5959
sol = solve(optprob, HiGHS.Optimizer())
6060
```
6161

62-
<!--
63-
```julia
64-
using Enzyme
65-
objective(u, p) = u[14]
66-
67-
constraints(res,u,p) = res .= [
68-
u[1] + u[6] - u[9] # January
69-
,u[2] + u[7] - u[10] - 1.01u[1] + 1.003u[9] # February
70-
,u[3] + u[8] - u[11] - 1.01u[2] + 1.003u[10] # March
71-
,u[4] - u[12] - 1.02u[6] - 1.01u[3] + 1.003u[11] # April
72-
,u[5] - u[13] - 1.02u[7] - 1.01u[4] + 1.003u[12] # May
73-
,-u[14] - 1.02u[8] - 1.01u[5] + 1.003u[13] # June
74-
]
75-
76-
optf = OptimizationFunction(objective, Optimization.AutoModelingToolkit(), cons = constraints)
77-
optprob = OptimizationProblem(optf, [zeros(13)..., 300]; lb = zeros(14), ub = vcat(ones(5).*100, fill(Inf, 9)), lcons = [150, 100, -200, 200, -50, -300], ucons = [150, 100, -200, 200, -50, -300], sense = Optimization.MaxSense)
78-
sol = solve(optprob, HiGHS.Optimizer())
79-
```
80-
-->
8162
## Mixed Integer Nonlinear Optimization
8263

83-
<!--
84-
```julia
85-
using Juniper, Ipopt, HiGHS
86-
87-
ModelingToolkit.@variables b[1:4] [bounds = (0, 1)]
88-
ModelingToolkit.@variables i[1:24]
89-
ModelingToolkit.@variables objvar
90-
91-
for j in 1:16
92-
push!(vars, i[j])
93-
ModelingToolkit.setmetadata(i[j], ModelingToolkit.VariableBounds, (0, 5))
94-
end
95-
96-
ModelingToolkit.setmetadata(i[21], ModelingToolkit.VariableBounds, (0, 15))
97-
ModelingToolkit.setmetadata(i[22], ModelingToolkit.VariableBounds, (0, 12))
98-
ModelingToolkit.setmetadata(i[23], ModelingToolkit.VariableBounds, (0, 9))
99-
ModelingToolkit.setmetadata(i[24], ModelingToolkit.VariableBounds, (0, 6))
100-
101-
constraints = [
102-
-0.1 * b[1] - 0.2 * b[2] - 0.3 * b[3] - 0.4 * b[4] - i[21] - i[22] - i[23] -
103-
i[24] + objvar ~ 0.0
104-
,9.0 ≲ i[21] * i[1] + i[22] * i[2] + i[23] * i[3] + i[24] * i[4]
105-
,7.0 ≲ i[21] * i[5] + i[22] * i[6] + i[23] * i[7] + i[24] * i[8]
106-
,12.0 ≲ i[21] * i[9] + i[22] * i[10] + i[23] * i[11] + i[24] * i[12]
107-
,11.0 ≲ i[21] * i[13] + i[22] * i[14] + i[23] * i[15] + i[24] * i[16]
108-
,-330 * i[1] - 360 * i[5] - 385 * i[9] - 415 * i[13] + 1700 * b[1] ≲ 0.0
109-
,-330 * i[2] - 360 * i[6] - 385 * i[10] - 415 * i[14] + 1700 * b[2] ≲ 0.0
110-
,-330 * i[3] - 360 * i[7] - 385 * i[11] - 415 * i[15] + 1700 * b[3] ≲ 0.0
111-
,-330 * i[4] - 360 * i[8] - 385 * i[12] - 415 * i[16] + 1700 * b[4] ≲ 0.0
112-
,330 * i[1] + 360 * i[5] + 385 * i[9] + 415 * i[13] - 1900 * b[1] ≲ 0.0
113-
,330 * i[2] + 360 * i[6] + 385 * i[10] + 415 * i[14] - 1900 * b[2] ≲ 0.0
114-
,330 * i[3] + 360 * i[7] + 385 * i[11] + 415 * i[15] - 1900 * b[3] ≲ 0.0
115-
,330 * i[4] + 360 * i[8] + 385 * i[12] + 415 * i[16] - 1900 * b[4] ≲ 0.0
116-
,-i[1] - i[5] - i[9] - i[13] + b[1] ≲ 0.0
117-
,-i[2] - i[6] - i[10] - i[14] + b[2] ≲ 0.0
118-
,-i[3] - i[7] - i[11] - i[15] + b[3] ≲ 0.0
119-
,-i[4] - i[8] - i[12] - i[16] + b[4] ≲ 0.0
120-
,i[1] + i[5] + i[9] + i[13] - 5 * b[1] ≲ 0.0
121-
,i[2] + i[6] + i[10] + i[14] - 5 * b[2] ≲ 0.0
122-
,i[3] + i[7] + i[11] + i[15] - 5 * b[3] ≲ 0.0
123-
,i[4] + i[8] + i[12] + i[16] - 5 * b[4] ≲ 0.0
124-
,b[1] - i[21] ≲ 0.0
125-
,b[2] - i[22] ≲ 0.0
126-
,b[3] - i[23] ≲ 0.0
127-
,b[4] - i[24] ≲ 0.0
128-
,-15 * b[1] + i[21] ≲ 0.0
129-
,-12 * b[2] + i[22] ≲ 0.0
130-
,-9 * b[3] + i[23] ≲ 0.0
131-
,-6 * b[4] + i[24] ≲ 0.0
132-
,8.0 ≲ i[21] + i[22] + i[23] + i[24]
133-
,-b[1] + b[2] ≲ 0.0
134-
,-b[2] + b[3] ≲ 0.0
135-
,-b[3] + b[4] ≲ 0.0
136-
,-i[21] + i[22] ≲ 0.0
137-
,-i[22] + i[23] ≲ 0.0
138-
,-i[23] + i[24] ≲ 0.0
139-
]
140-
141-
i_idxs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24]
142-
vars = [b..., [i[j] for j in i_idxs]..., objvar]
143-
144-
@named optsys = OptimizationSystem(objvar, vars, [], constraints = constraints)
145-
optprob = OptimizationProblem(optsys, vcat(ones(24), 5), int = vcat(fill(true, 24), false), grad = true, cons_j = true, hess = true, cons_h = true)
146-
147-
nl_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Ipopt.Optimizer,
148-
"print_level" => 0)
149-
mip_solver = OptimizationMOI.MOI.OptimizerWithAttributes(HiGHS.Optimizer,
150-
"output_flag" => false
151-
)
152-
minlp_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Juniper.Optimizer,
153-
"nl_solver" => nl_solver,
154-
"mip_solver" => mip_solver)
155-
opt = OptimizationMOI.MOI.OptimizerWithAttributes(Alpine.Optimizer,
156-
"minlp_solver" => minlp_solver,
157-
"nl_solver" => nl_solver,
158-
"mip_solver" => mip_solver)
159-
sol = solve(optprob, opt)
160-
```
161-
-->
162-
<!--
163-
```julia
164-
using Juniper, Ipopt
165-
166-
LB = [100, 1000, 1000, 10, 10, 10, 10, 10]
167-
UB = [10000, 10000, 10000, 1000, 1000, 1000, 1000, 1000]
168-
169-
ModelingToolkit.@variables x[1:8]
170-
ModelingToolkit.@variables y[1:5] [bounds = (0, 1)]
171-
172-
for j in 1:8
173-
ModelingToolkit.setmetadata(x[j], ModelingToolkit.VariableBounds, (LB[j], UB[j]))
174-
end
175-
176-
function cons(res, u, p)
177-
x, y = u[1:8], u[9:13]
178-
res .= [0.0025 * (x[4] * y[1] + x[6] * y[2])
179-
,0.0025 * (x[5] - x[4] * y[1] + x[7])
180-
, 0.01(x[8] - x[5] * y[3]),
181-
100 * x[1] - x[1] * x[6] * y[1] + 833.33252 * x[4] * y[1]
182-
,x[2] * x[4] * y[4] - x[2] * x[7] - 1250 * x[4] + 1250 * x[5],
183-
x[3] * x[5] * y[2] * y[5] - x[3] * x[8] * y[5] - 2500 * x[5] * y[1] * y[4] + 1250000,
184-
y[1] * y[2] * y[3],
185-
y[4] * y[5] - (y[2] * y[3]),
186-
y[1] * y[5] - (y[2] * y[4]),
187-
]
188-
end
189-
lcons = fill(-Inf, 9)
190-
ucons = [1, 1, 1, 83333.333, 0, 0, 0, 0, 0]
191-
objective = (u,p) -> u[1] + u[2] + u[3]
192-
optf = OptimizationFunction(objective, Optimization.AutoForwardDiff(), cons = cons)
193-
# @named optsys = OptimizationSystem(objective, [x..., y...], [], constraints = constraints)
194-
optprob = OptimizationProblem(optf, vcat((LB + UB) ./ 2,zeros(5));lb = vcat(LB, fill(0, 5)), ub = vcat(UB, fill(1, 5)), lcons, ucons, int = vcat(fill(false, 8), fill(true, 5)))
195-
196-
nl_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Ipopt.Optimizer,
197-
"print_level" => 0)
198-
mi_solver = OptimizationMOI.MOI.OptimizerWithAttributes(HiGHS.Optimizer,
199-
"presolve" => "on",
200-
"log_to_console" => false,
201-
)
202-
minlp_solver = OptimizationMOI.MOI.OptimizerWithAttributes(Juniper.Optimizer,
203-
"nl_solver" => nl_solver,
204-
"mip_solver" => mi_solver)
205-
opt = OptimizationMOI.MOI.OptimizerWithAttributes(Alpine.Optimizer,
206-
"minlp_solver" => minlp_solver,
207-
"nlp_solver" => nl_solver,
208-
"mip_solver" => mi_solver)
209-
sol = solve(optprob, minlp_solver)
210-
```
211-
-->
21264
We choose an example from the [Juniper.jl readme](https://github.com/lanl-ansi/Juniper.jl#use-with-jump) to demonstrate mixed integer nonlinear optimization with Optimization.jl. The problem can be stated as follows:
21365

21466
```math

0 commit comments

Comments
 (0)