Нарушение ограничений Гуроби

Как избавиться от нарушения ограничений в Гуроби? Эти десятичные знаки вызывают множество проблем в моей программе MILP.

Качество решения показывает следующую ошибку. Статистика качества решения для модели M: Максимальное нарушение: Граница: 0.00000000e + 00 Ограничение: 8.88178420e-16 (constraint_6) Целостность: 0.00000000e + 00


person Smith    schedule 04.12.2019    source источник
comment
Во всех решателях LP решениям разрешено нарушать границы и ограничения с небольшим допуском (обычно называемым допуском выполнимости). Эти допуски необходимы для устранения неточностей с плавающей запятой, встречающихся в процессе.   -  person Erwin Kalvelagen    schedule 04.12.2019


Ответы (1)


В вычисленном решении нет нарушения ограничений. То, что вы видите здесь, является просто эффектом использования арифметики с плавающей запятой. Числа с абсолютным значением ниже 1e-15 в большинстве случаев игнорируются и обрабатываются как 0.

Если вы действительно ищете «точное» решение, вам нужно использовать решатель, реализующий точную арифметику. QsoptEx и SoPlex - два таких решателя, но только для задач линейного программирования.

person mattmilten    schedule 04.12.2019