线性编程问题的设置:R中的lpSolve

时间:2018-09-01 17:02:38

标签: r linear-programming lpsolve

我需要解决一个问题(下面的可再现玩具示例):

有一个p矩阵(N = 3 x M = 2):

p<-matrix(c(3,17,14,20,0,3), nrow=3, ncol=2, byrow=TRUE)

我试图最大化元素的和,其中X表示(3x2)并且是二进制变量:

enter image description here

我们正在最大化的总和: enter image description here

我有各种约束,X的每一列的总和> = a。因此,这将写为(编辑:应为> =

enter image description here

另一个是X的行必须<=1。这意味着一行中最多只能激活一个X(= 1):

enter image description here

返回R

对于目标功能:

问题#1 :我是否需要将p矩阵“拉伸”成向量:

obj<-c(3,17,14,20,0,3) 

对于约束:

问题#2 是否需要确定约束矩阵的大小(行=约束数量,列= X中x的数量)?

那么对于这些​​约束,应该是(5,6)

问题3

约束矩阵看起来像这样-假设我对问题2正确吗?

enter image description here

第一行代表x11 + x21 + x31 >= a1

第二行代表x12 + x22 + x32 >= a2

第三行代表x11 + x12 <=1

第四行代表x21 + x22 <=1

第五行代表x31 + x32 <=1

然后当然要相应地设置方向矩阵和RHS矩阵。

0 个答案:

没有答案