我试图使用二进制整数规划在Matlab上求解一些方程。 我有3组方程式:
其中,Ma是已知矩阵,大小为5 * 12
X是未知集,大小为12 * 1
Mp也是已知的矩阵,大小为5 * 12
和Mr是一个已知的矩阵,大小为4 * 12.
方程中的1是一个单位矩阵,在两组(1& 2)中大小为5 * 1
m *是给定的已知矩阵,大小为4 * 1
我正在尝试使用命令bintprog
但是如何设置1个相等和2个不等式
得到X的值。我也没有插入函数f
,我只有一组方程。假设X未知值为1或0。
我尝试了这个命令bintprog([],Ma,One51,Mp,One51)
但它给了我The problem is infeasible.
零回答矩阵。
请帮我在Matlab上解决这个问题
答案 0 :(得分:0)
bintprog
的正确语法是X = bintprog(f,A,b,Aeq,beq)
。
如果您没有f
(这意味着您只想任何可行点),您可以将其设置为[]
。但是,对于其他人,您的语法略有错误。
我假设约束中的+
实际上是*
,否则,矩阵代数不太合理。
试试这个:
X = bintprog([],[Mp;Mr],[ones(5,1);mstar],Ma,ones(5,1))
即使这样,它也会告诉你这个问题是不可行的;也许没有X
可以满足你所有的约束。