问题描述
有谁知道我如何打印在 Python CP-Sat 和 PuLP 中创建的每个优化问题中创建的变量和约束的数量?
谢谢
解决方法
我不熟悉 CP-sat,但在 PuLP 中,LpProblem
类有一个方法 numVariables()
,它将返回变量的数量。
例如:
import pulp
prob = pulp.LpProblem("minimize",pulp.LpMinimize)
single_var = pulp.LpVariable('single_var')
set_of_var = pulp.LpVariable.dicts("x_i,j",((i,j) for i in range(3) for j in range(2)))
print(prob.numVariables())
# Add objective
prob += single_var + pulp.lpSum([set_of_var[i,j] for i in range(3) for j in range(2)])
print(prob.numVariables())
# Solve
prob.solve()
print(prob.numVariables())
将返回:
0
0
7
请注意,只有在将变量添加到模型中(在目标或约束中)并且模型已经求解后,才会对变量进行计数。
,你可以这样做:
count=0
for v in prob.variables():
count+=1