簡體   English   中英

在 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 中寫入 Model:

problem.write("prob.lp")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM