2
私は混合整数プログラミングの問題があります。目的関数は、ベクトル内の最大変数値の最小化です。変数は上限が5です。この問題は次のようになります。最大変数を最小にする
m = Model(solver = GLPKSolverMIP())
@objective(m, Min, max(x[i] for i=1:12))
@variable(m, 0 <= x[i] <= 5, Int)
@constraint(m, sum(x[i] for i=1:12) == 12)
status = solve(m)
最大変数はjulia JuMP構文の一部ではありません。だから私は、このソリューションは1で、変数の上限を起動するための反復的な問題を解くことによって仕事をしていませんし、solutoinが可能になるまで1ずつ増加
t=1
while t<=5 && (status == :NotSolved || status == :Infeasible)
m = Model(solver = GLPKSolverMIP())
i = 1:12
@objective(m, Min, max(x[i] for i=1:12))
@variable(m, 0 <= x[i] <= t, Int)
@constraint(m, sum(x[i] for i=1:12) == 12)
status = solve(m)
t += 1
end
に問題を修正しました。これは本当にこれを行うための最善の方法ですか?
私がよく理解していれば、元の問題は線形ではなく(最大のために)。 JuMPでは、NLP最適化のためにIpoptを使うことができます(しかし、IPOPTが混合整数非線形プログラミングをサポートしているかどうかわかりません) – Antonello