ИЛИ инструменты Constraint_SetCoefficient вернули значение NULL без указания ошибки

#python #or-tools

#python #или-инструменты

Вопрос:

Я новичок в python в целом и особенно в OR Tools for optimization и в любой модели, которую я пытаюсь запустить, я получаю эту ошибку.

ошибка r

Из проведенного мной исследования, это может иметь какое-то отношение к самому 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 .