Matlab:二进制线性规划

时间:2015-05-16 19:34:44

标签: matlab matrix binary integer mathematical-optimization

我试图使用二进制整数规划在Matlab上求解一些方程。 我有3组方程式:

  1. Ma.X = 1
  2. Mp.X< = 1
  3. X先生< = M *
  4. 其中,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上解决这个问题

1 个答案:

答案 0 :(得分:0)

bintprog的正确语法是X = bintprog(f,A,b,Aeq,beq)

如果您没有f(这意味着您只想任何可行点),您可以将其设置为[]。但是,对于其他人,您的语法略有错误。

我假设约束中的+实际上是*,否则,矩阵代数不太合理。

试试这个:

X = bintprog([],[Mp;Mr],[ones(5,1);mstar],Ma,ones(5,1))

即使这样,它也会告诉你这个问题是不可行的;也许没有X可以满足你所有的约束。