我有一个二进制整数编程问题,想用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}
是如果 1 和 2(连接到 3)都被选中,则意味着 4 是可达的。我该怎么做才能得到我想要的结果?
编辑:节点 3 就像一个开关,只有在连接到它的至少 2 个节点处于活动状态时才能启用。发生这种情况时,可以到达最后一个节点。例如,如果 1,2 处于活动状态,则可以达到 4。也可以这样说,如果 1,4 处于活动状态,则可以达到 2。3显然不应该是解决方案。