在Python中使用Cplex运行优化程序后,我希望获得每个决策变量的名称。
我知道Matlab中有一个这样的函数,但是我在Python中找不到它。有没有人知道有这样的函数?
谢谢!
发布于 2018-03-08 10:08:25
让我分享一个小例子:
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(nbbus40*500 + nbbus30*400)
mdl.solve()
print(nbbus40.solution_value);
print(nbbus30.solution_value);
print("display")
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
这给了我们
6.0
2.0
display
nbBus40 = 6.0
nbBus30 = 2.0
发布于 2018-03-08 15:55:08
通过CPLEX Python API (不要与Alex的回答中显示的DOcplex Modeling for Python API混淆),您可以使用Cplex.variables.get_names方法。下面的玩具示例读取一个模型文件(在命令行上给定)并打印出所有名称:
import sys
import cplex
if len(sys.argv) != 2:
raise ValueError("usage: {0} <filename>".format(sys.argv[0]))
c = cplex.Cplex(sys.argv[1])
for index, name in enumerate(c.variables.get_names()):
print("variable[{0}] = {1}".format(index, name))
https://stackoverflow.com/questions/49169586
复制相似问题