#python #or-tools
#python #или-инструменты
Вопрос:
Я новичок в python в целом и особенно в OR Tools for optimization и в любой модели, которую я пытаюсь запустить, я получаю эту ошибку.
Из проведенного мной исследования, это может иметь какое-то отношение к самому ortools, и мне нужно что-то изменить в его коде, но я не уверен. Есть идеи?
Комментарии:
1. Вам нужно предоставить больше информации, чем это. Все, что люди могут видеть, это то, что произошла ошибка. Пожалуйста, загрузите минимальный пример, воспроизводящий ошибку.
Ответ №1:
Я тоже столкнулся с этой проблемой, и оказалось, что, согласно документации, я пытался установить коэффициент для переменной, которая «не принадлежит решателю».
Например, следующий код (заимствованный из этого примера) воспроизводит проблему:
from ortools.linear_solver import pywraplp
solver = pywraplp.Solver.CreateSolver('GLOP')
ct = solver.Constraint(0, 2, 'ct')
x = None # This is a contrived bug
ct.SetCoefficient(x, 1)
Значение для x
неверно, оно должно быть чем-то вроде x = solver.NumVar(0, 1, 'x')
, чтобы о solver
знал x
, прежде чем мы попытаемся установить для него коэффициент.
Маловероятно, что вы совершаете ошибку, которую я придумал в моем примере кода, но, вероятно, где-то в вашем коде вы перепутали переменные, и вы отправляете SetCoefficient
неправильное значение для его первого аргумента, что приводит к ошибке с SystemError: <built-in function Constraint_SetCoefficient> returned NULL without setting an error
.