[英]Apache Commons Math SimplexSolver with lower and upper bounds?
我打算使用Apache Commons Math庫中提供的Simplex方法解決以下線性編程問題。 我沒有使其正常工作,並且我發現API文檔受到限制。
問題
從向量s0
,確定s
,則以下項的解:
| min f' * s
| s
|
| s.t. s_l <= s <= s_u
其中f
是向量, s_l
和s_u
分別是s
的下限和上限。
我可以使用linprog(f, [], [], [], [], s_l, s_u, s0, options)
命令在Matlab中輕松解決此問題linprog(f, [], [], [], [], s_l, s_u, s0, options)
並希望在Java中做到這一點,最好使用Apache Commons Math。
單面求解器
我嘗試使用類似此處的Apache Commons Math SimplexSolver
解釋: http : //google-opensource.blogspot.se/2009/06/introducing-apache-commons-math.html
但是我無法通過接縫來定義邊界s_l
和s_u
,因此必須使用此方法提供LinearConstraint
(我沒有)。
你應該能夠做到嗎?
我不確定是否有捷徑,但實際上上下限只是2個線性約束。
確保您的第一個變量大於下界的第一個元素(約束1)並且小於上界的第一個元素(約束2)。
然后確保您的第二個變量....依此類推。
編寫此代碼可能很麻煩,但要正確地編寫它並不難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.