在 Python 上打印 CPLEX LP 的线性约束
Print linear constraints of CPLEX LP on Python
我需要打印我所有的线性约束来验证我写的内容的正确性,但不知道 Python 的 CPLEX 库,我不知道该怎么做。
这是我的 LP 部分:
import cplex
problem = cplex.Cplex()
problem.objective.set_sense(problem.objective.sense.minimize)
names = []
upper_bounds = []
lower_bounds = []
types = []
constraint_names = []
constraints = []
for i in range(0, 12):
for j in range(0, 12):
names.append("x" + str(i) + "_" + str(j))
types.append(problem.variables.type.integer)
upper_bounds.append(1.0)
lower_bounds.append(0.0)
for i in range(0, 12):
names.append("y" + str(i))
types.append(problem.variables.type.integer)
upper_bounds.append(1.0)
lower_bounds.append(0.0)
problem.variables.add(obj=objective,
lb=lower_bounds,
ub=upper_bounds,
types = types,
names=names)
# Constraints
for i in range(0, 22):
constraint_names.append("c" + str(i))
for j in range(1, 12):
variables = []
for i in range(0, 12):
variables.append("x" + str(i) + "_" + str(j))
variables.append("y" + str(j))
constraints.append([variables, ([1.0] * 12) + [-1.0]])
for i in range(0, 11):
variables = []
for j in range(0, 12):
variables.append("x" + str(i) + "_" + str(j))
variables.append("y" + str(i))
constraints.append([variables, ([1.0] * 12) + [-1.0]])
problem.linear_constraints.add(lin_expr=constraints, senses=constraint_senses, rhs=rhs, names=constraint_names)
我想打印出这22个线性约束。我在 Python 3.7.9
上使用 CPLEX 12.9
这将在 prob.lp 中写入模型:
problem.write("prob.lp")
我需要打印我所有的线性约束来验证我写的内容的正确性,但不知道 Python 的 CPLEX 库,我不知道该怎么做。
这是我的 LP 部分:
import cplex
problem = cplex.Cplex()
problem.objective.set_sense(problem.objective.sense.minimize)
names = []
upper_bounds = []
lower_bounds = []
types = []
constraint_names = []
constraints = []
for i in range(0, 12):
for j in range(0, 12):
names.append("x" + str(i) + "_" + str(j))
types.append(problem.variables.type.integer)
upper_bounds.append(1.0)
lower_bounds.append(0.0)
for i in range(0, 12):
names.append("y" + str(i))
types.append(problem.variables.type.integer)
upper_bounds.append(1.0)
lower_bounds.append(0.0)
problem.variables.add(obj=objective,
lb=lower_bounds,
ub=upper_bounds,
types = types,
names=names)
# Constraints
for i in range(0, 22):
constraint_names.append("c" + str(i))
for j in range(1, 12):
variables = []
for i in range(0, 12):
variables.append("x" + str(i) + "_" + str(j))
variables.append("y" + str(j))
constraints.append([variables, ([1.0] * 12) + [-1.0]])
for i in range(0, 11):
variables = []
for j in range(0, 12):
variables.append("x" + str(i) + "_" + str(j))
variables.append("y" + str(i))
constraints.append([variables, ([1.0] * 12) + [-1.0]])
problem.linear_constraints.add(lin_expr=constraints, senses=constraint_senses, rhs=rhs, names=constraint_names)
我想打印出这22个线性约束。我在 Python 3.7.9
上使用 CPLEX 12.9这将在 prob.lp 中写入模型:
problem.write("prob.lp")