0

バイナリ整数プログラミングの問題があり、 で解決したいと考えてい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は私に与えられましたが、 1と2(3に接続されている)の両方が選択されている場合、平均4に到達x={3}できる解決策が必要です。x={1,2}望んでいた結果を得るにはどうすればよいですか?

編集: ノード 3 は、それに接続されている少なくとも 2 つのノードがアクティブな場合にのみ有効にできるスイッチのように機能します。これが発生すると、最後のノードに到達できます。たとえば、1,2 がアクティブな場合、4 に到達できます。1,4 がアクティブな場合も同じことが言え、2 に到達できます。3は明らかに解決策ではありません。

4

1 に答える 1

0

あなたの例を見てみましょう:

f=x1+x2+x3+x4不等式x1+x3>1x2+x3>1x1+x2+x3+x4>1およびx3+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

于 2015-02-12T12:51:42.310 に答える