2015-02-11 159 views
0

我有一個二進制整數規劃問題,並希望與bintprog來解決它。Bintprog,選擇標準

A = [1 0 1 0; 0 1 1 0; 1 1 1 1; 0 0 1 1]; 
f=[1 1 1 1]; 
b=[1 1 1 1]; 
[x,xfval,exitflag,output]=bintprog(f,-A,-b); 

溶液bintprog給我是x={3},但我想解決方案是x={1,2}這意味着圖4是可到達的,如果1和2(其連接到3)都被選中。我能做些什麼來獲得我想要的結果?

編輯: 節點3動作一樣,如果使連接到它的至少2個節點是活動的,只能被啓用的開關。發生這種情況時,可以到達最後一個節點。例如,如果1,2有效,則可以達到4。如果1,4有效,可以達到2,也可以這樣說。 3顯然不應該是解決方案。

+0

現在還不清楚你問什麼。作爲編輯說你的問題很可能是不一樣的你上面的代碼示例。你應該擴展你的問題,特別是在你將它轉換成二進制編程問題的部分。 – Trilarion 2015-02-12 14:19:30

回答

0

讓我們把你的例子:

你希望儘量減少f=x1+x2+x3+x4受到不平等x1+x3>1x2+x3>1x1+x2+x3+x4>1x3+x4>1(-A,-B有效地改變<=>)。

Matlab給出了x1=x2=x4=0x3=1,滿足所有不等式並給出f=1

想要x1=x2=1x3=x4=0作爲解決方案嗎?那麼,這違反了最後的不平等(x3+x4>1),只會給f=2

如果您需要此解決方案,您必須提供不同的參數f, A, b

+0

嗨,我剛編輯我的問題進一步解釋。 – maostah 2015-02-12 14:11:26