我正在构建一个包含624个决策变量的模型。它们都是连续的,具有不同的下界和上界。我的问题是,当我打印mdl.solution时,唯一显示的决策变量是下限为-15的变量(从x48到x192,从x481到x624)。我也在使用numpy数组,但是,如果我将它们转换为列表,问题仍然存在。
下面是一些可能有助于理解我的问题的代码:
horizon_t = 48
mdl.lb = np.hstack((np.zeros((horizon_t)), -15*np.ones((3*horizon_t)), np.zeros(6*horizon_t), -15*np.ones((3*horizon_t))))
mdl.ub = np.hstack((np.ones((horizon_t)), 15*np.ones((3*horizon_t)), np.ones(6*horizon_t), 15*np.ones((3*horizon_t))))
n_variables = 624
mdl.continuous_var_list(n_variables, mdl.lb, mdl.ub)谢谢
发布于 2020-11-19 00:20:07
是不是不显示0值的问题?
例如,如果我稍微更改了bus example
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 >= 300, 'kids')
mdl.minimize(nbbus40*500)
mdl.solve()
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
print()
print("default")
mdl.print_solution()
print()
print("with 0")
mdl.print_solution(print_zeros=True)给出
nbBus40 = 8.0
nbBus30 = 0
default
objective: 4000
nbBus40=8
with 0
objective: 4000
nbBus40=8
nbBus30=0发布于 2020-11-19 01:05:51
默认情况下,Model.print_solution()不打印零值变量,以避免使输出变得混乱。可以通过指定print_zeros=True打印所有值
https://stackoverflow.com/questions/64895750
复制相似问题