【问题标题】:Matlab: Binary Linear ProgrammingMatlab:二元线性规划
【发布时间】:2015-07-28 14:00:41
【问题描述】:

我正在尝试使用二进制整数编程在 Matlab 上求解一些方程。 我有 3 组方程:

  1. Ma.X=1
  2. Mp.X
  3. X先生

其中,Ma 是一个大小为 5*12 的已知矩阵

X 是大小为 12*1 的未知集合

Mp 也是大小为 5*12 的已知矩阵

Mr 是一个大小为 4*12 的已知矩阵。

方程中的 1 是一个单位矩阵,大小为 5*1 在两个集合(1&2)中

m* 是给定的已知矩阵,大小为 4*1

我正在尝试使用命令 bintprog 但如何放置 1 个相等和 2 个不等式 获取 X 的值。另外我没有要插入的函数 f,我只有一组方程。给定 X 个值为 1 或 0 的未知值。

我试过这个命令bintprog([],Ma,One51,Mp,One51) 但它给了我The problem is infeasible. 零答案矩阵。

请帮我在 Matlab 上解决这个问题

【问题讨论】:

    标签: matlab matrix binary integer mathematical-optimization


    【解决方案1】:

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

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

    我假设您的约束中的+ 实际上是*,否则,矩阵代数就没有多大意义。

    试试这个:

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

    即使这样,它仍然告诉您问题不可行;可能没有Xs 可以满足您的所有约束。

    【讨论】:

    • 对不起+ 的错误,我把它改成了*。它仍然没有给我任何可行的解决方案。
    • @EslamSaad。那么可能确实没有可行的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多