关于“ CPLEX:行索引0超出范围”的简单问题

时间:2019-04-26 01:19:16

标签: cplex

非常是CPLEX的新手。我正在尝试复制在网上找到的一些代码,但出现以下错误:

p.variables.add(obj = obj, lb = lb, ub = ub, columns=cols, types=types)

CPLEX Error  1203: Row index 0 out of range.

我完全不知道这是哪里来的。我检查了所有变量的长度-obj,lb,ub,cols,types,它们都是相同的,因此问题与长度的不同无关。但是,我无法确切指出错误的出处!

1 个答案:

答案 0 :(得分:1)

您试图按列填充模型。我的猜测是您尚未向模型中添加线性约束(前提条件)。例如,以下程序再现了您的问题:

import cplex                                                                    
p = cplex.Cplex()                                                               
# Uncomment this line to fix the problem:                                       
#p.linear_constraints.add(names=['c1', 'c2', 'c3'])                             
p.variables.add(columns=[[[0, 1, 2], [1.0, 1.0, 1.0]]])                         
p.write("prob.lp")

这可以通过取消注释首先添加线性约束的行来解决。您应该看一下CPLEX随附的示例,以了解如何完成操作(例如lpex1.pymipex1.py等)。