Какого качества решения мы можем ожидать от решателя линейного программирования? - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь решить проблемы удовлетворения линейных ограничений. Поэтому я взял «Комплект линейного программирования GNU», написал свои ограничения и позволил ему ослабить его с помощью некоторой простой целевой функции.

GLPK утверждал, что нашел решение, но если я проверю его по ограничениям, они не удовлетворены. А именно, выражение, которое должно быть <= 0, на самом деле около 1e-10. То есть, чуть больше 0. </p>

Я, вероятно, могу жить с этой проблемой, установив свои ограничения для возврата чебышевского центра многогранника, но мне интересно, следует ли ожидать таких расхождений с решателями линейного программирования, или я должен сообщить об этом как об ошибке для людей GLPK.

1 Ответ

0 голосов
/ 27 февраля 2020

Все решатели LP используют технико-экономическое обоснование и другие допуски. Они необходимы, потому что вычисления с плавающей точкой не являются точными. Вы можете немного ужесточить их, но в целом лучше их не трогать.

Итак, вам следует ожидать решения со следующими свойствами:

  • переменные находятся немного вне их границы
  • ограничения могут быть нарушены небольшим количеством
  • двоичные и целочисленные переменные слегка нецелочисленные
...