答えて

2

多面体{x: A*x < b}は、もはやクローズドセットではないため、このセットを超える関数の最大値/最小値を求める必要がある場合、このセットに属していない可能性があります。ただし、suprimum/infimumは常に存在します。 、任意の凸)目的関数は、{x:A*x ≤ b}以上の最大/最小と同じです、チェックWeierstrass extreme value theorem。 1つのオプションは、許容誤差tを設定し、A*x ≤ b-tを超えて最適化し、sensitivity analysisを使用して、解がどこになるかを確認することです。t -> 0

1

@serge_kは、厳密な不等理制約がある場合は、少なくともtの分離を強制するためにA*x <= b - tと表現したいとします。これは合理的にアップしますいくつかの状況(例えば、時間の圧倒的大多数を言っベクターマシンがを解決し、a'x +b <= -1' instead ofサポートa'x + B> 0 and a'x + B < 0'

があり、あなたの制約がA*x<bA*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

関連する問題