回答

2

多面體{x: A*x < b}不再是一個封閉的集合,所以如果你需要在這個集合上找到函數的最大/最小值,它可能不屬於這個集合,但是suprimum/infimum總是存在的,例如對於線性的,任何凸)目標函數,它與{x:A*x ≤ b}上的最大/最小值相同,請檢查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 + 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