Вы звоните feasRelaxS
с аргументами (1, True, False, True)
.В документах говорят:
feasRelaxS (relaxobjtype, minrelax, vrelax, crelax)
Если вы укажете relaxobjtype = 1, цель расслабления выполнимости состоит в том, чтобыминимизируйте сумму квадратов нарушений границ и ограничений.
Таким образом, сумма квадратов не является линейной, и Гуроби должен использовать некоторый нелинейный подход к решению.Если QP или SOCP или что-то еще, это решение Гуроби.
Здесь вводятся эти квадратичные термины: сумма квадратов нарушений ограничения и ограничения .
вывод:
Found heuristic solution: objective 3.169464e+24
также похоже, что ваша модель довольно далека от осуществимости, я бы сказал.
Редактировать: Или, возможно, нет.Как пользователь не Gurobi, я был под впечатлением, что это конечный результат.Но вы урезали свой вывод, и это всего лишь ранний эвристический результат, и мы не можем много сказать о неизвестном конечном результате на данный момент!
Общий вопрос о что он делает :в ответ на предложение документа:
Ослабление осуществимости представляет собой модель, которая при решении минимизирует величину, на которую решение нарушает границы и линейные ограничения исходной модели
Значение: вы больше не заботитесь о своей первоначальной цели, но о новой, которая выражает, насколько плохо какое-либо решение с точки зрения нарушения ограничений и переменных границ.
(Примечание: все это объясняется в документации и, честно говоря: Gurobi имеет очень хорошую документацию по сравнению с некоторыми конкурентами, на мой взгляд! Так что используйте ее и не вызывайте функции, не зная, что они делают)