绝对值在 Python 中的 CPLEX 程序
CPLEX program with absolute values in Python
我需要在 python 中编写一个 PL 并使用 CPLEX 库解决它,但我是初学者,因此我不知道如何在 Python 中编写它。
节目是:
MIN ΣΣ abs(Ui - Uj) with i = 1, j = i + 1
subject to:
Ui = Σ Wj * Xji ∀i
Xji is 0/1 integer ∀i,j with i < j
0.0 =< Ui <= T
abs 与 docplex 一起使用非常容易。
让我稍微更改 zoo example 以使用 abs
假设我想尽可能接近成本3900
from docplex.mp.model import Model
mdl = Model(name='buses')
nbbus40 = mdl.integer_var(name='nbBus40')
nbbus30 = mdl.integer_var(name='nbBus30')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.minimize(mdl.abs(nbbus40*500 + nbbus30*400-3900))
mdl.solve()
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
我需要在 python 中编写一个 PL 并使用 CPLEX 库解决它,但我是初学者,因此我不知道如何在 Python 中编写它。
节目是:
MIN ΣΣ abs(Ui - Uj) with i = 1, j = i + 1
subject to:
Ui = Σ Wj * Xji ∀i
Xji is 0/1 integer ∀i,j with i < j
0.0 =< Ui <= T
abs 与 docplex 一起使用非常容易。
让我稍微更改 zoo example 以使用 abs
假设我想尽可能接近成本3900
from docplex.mp.model import Model
mdl = Model(name='buses')
nbbus40 = mdl.integer_var(name='nbBus40')
nbbus30 = mdl.integer_var(name='nbBus30')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.minimize(mdl.abs(nbbus40*500 + nbbus30*400-3900))
mdl.solve()
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)