2
我有一個線性規劃問題。所有的變量都是二進制的,我想獲得所有可能的解決方案。我知道我可以設置參數num.bin.solns來提供多種解決方案。但是有沒有簡單的方法來尋求所有可能的解決方案?R lpsolve二進制查找所有可能的解決方案
例如在下面的情況下,我知道答案的最大數量是6.但如果我不知道最大可能的解決方案,那麼我怎樣才能設置num.bin.solns參數,使它將返回所有可能的解決方案?
library("lpSolve")
A=matrix (c(1,1,1,1), nrow=1, byrow=TRUE)
b=(2)
signs='=='
c_=rep(0,4)
res = lpSolve::lp('max', c_, A, signs, b, all.bin = TRUE, num.bin.solns=6)
感謝,讓我試試吧。 QQ:任何想法什麼mylp $解決方案有超過我們預期的1個元素?即如果我們把num.bin.solns = 1000,那麼解向量的長度是4001 ...它應該是4000 ...第4001個元素表示什麼? – user2543622 2015-02-25 01:00:55
好問題。我試圖尋找它,但不知道-1從哪裏來。文檔沒有幫助我。因此,你看我做頭()來切斷它。 – 2015-02-25 01:06:27
我試過你的答案,這很有道理。唯一的問題是,如果問題很嚴重,那麼它會減慢處理速度,有時會返回錯誤。而不是指定num.bin.solns = 1000,有沒有辦法說,返回所有可能的解決方案? – user2543622 2015-02-25 01:15:37