簡體   English   中英

具有下限和上限的Apache Commons Math SimplexSolver?

[英]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_ls_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_ls_u ,因此必須使用此方法提供LinearConstraint (我沒有)。

你應該能夠做到嗎?

我不確定是否有捷徑,但實際上上下限只是2個線性約束。

確保您的第一個變量大於下界的第一個元素(約束1)並且小於上界的第一個元素(約束2)。

然后確保您的第二個變量....依此類推。

編寫此代碼可能很麻煩,但要正確地編寫它並不難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM