我想在Python中使用Cplex运行我的优化程序后得到每个决策变量的名称。
我知道Matlab中有一个函数,但是我找不到Python的函数。 有人知道是否有这样的功能吗?
谢谢!
答案 0 :(得分:1)
让我分享一个小例子:
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
答案 1 :(得分:0)
使用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))