Простой вопрос относительно 'CPLEX: индекс строки 0 вне диапазона' - PullRequest
0 голосов
/ 26 апреля 2019

Я чрезвычайно новичок в 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 Ответ

1 голос
/ 27 апреля 2019

Вы пытаетесь заполнить модель столбцом. Я предполагаю, что вы еще не добавили линейные ограничения в модель (предварительное условие). Например, следующая программа воспроизводит вашу проблему:

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.py, mipex1.py и т. Д.).

...