Matlab:二进制线性规划
Matlab: Binary Linear Programming
我正在尝试使用二进制整数编程在 Matlab 上求解一些方程。
我有 3 组方程式:
- Ma.X=1
- Mp.X<=1
- Mr.X<=m*
其中,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 上解决这个问题
bintprog
的正确语法是 X = bintprog(f,A,b,Aeq,beq)
。
如果你没有f
(这意味着你只想要任何可行点),你可以将它设置为[]
。但是,对于其他人,您的语法有点错误。
我假设您的约束中的 +
实际上是 *
,否则矩阵代数就没有意义了。
试试这个:
X = bintprog([],[Mp;Mr],[ones(5,1);mstar],Ma,ones(5,1))
如果即使那样它告诉你这个问题是不可行的;没有 X
可以满足您的所有约束,这也可能是真的。
我正在尝试使用二进制整数编程在 Matlab 上求解一些方程。 我有 3 组方程式:
- Ma.X=1
- Mp.X<=1
- Mr.X<=m*
其中,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 上解决这个问题
bintprog
的正确语法是 X = bintprog(f,A,b,Aeq,beq)
。
如果你没有f
(这意味着你只想要任何可行点),你可以将它设置为[]
。但是,对于其他人,您的语法有点错误。
我假设您的约束中的 +
实际上是 *
,否则矩阵代数就没有意义了。
试试这个:
X = bintprog([],[Mp;Mr],[ones(5,1);mstar],Ma,ones(5,1))
如果即使那样它告诉你这个问题是不可行的;没有 X
可以满足您的所有约束,这也可能是真的。