ответ

2

Полиэдр {x: A*x < b} больше не является замкнутым, поэтому, если вам нужно найти max/min функции над этим множеством, оно может не принадлежать этому набору, но suprimum/infimum всегда существует и, например, для линейных (на самом деле , любая выпуклая) целевая функция равна таковой как max/min над {x:A*x ≤ b}, check Weierstrass extreme value theorem. Один из вариантов - установить некоторый допуск t и оптимизировать более A*x ≤ b-t и использовать sensitivity analysis, чтобы узнать, где находится решение t -> 0.

1

Как сказал @serge_k, если у вас есть строгое ограничение неравенства, вы хотите представить его как A*x <= b - t, чтобы заставить не менее t разделение. Есть ситуации, когда это разумно подходит (например, опорных векторов решают и a'x +b <= -1' instead of a'x + Ь> 0 and a'x + б < 0'

Тем не менее, подавляющее большинство времени, строгое и не строгое неравенство действительно не имеет значения. Если ваше ограничение A*x<b и A*x <= b не будет выполнено, вы можете быть на земле чистой математики, а не численные вычисления: операции с плавающей запятой не являются точными!

Существует не так много правдоподобных ситуаций в реальном мире, где A*x - b = 10^-99999 замечательно, но A*x - b = 0 ошибочно 100%

+0

Проверьте связанный вопрос: http://stackoverflow.com/questions/37364741/matlab-genetic-algorithm-optimization-returns-integer-values-higher-than-boundar. Как я могу решить эту проблему? – user2991243

 Смежные вопросы

  • Нет связанных вопросов^_^