我需要解决一个问题(下面的可再现玩具示例):
有一个p矩阵(N = 3 x M = 2):
p<-matrix(c(3,17,14,20,0,3), nrow=3, ncol=2, byrow=TRUE)
我试图最大化元素的和,其中X表示(3x2)并且是二进制变量:
我有各种约束,X的每一列的总和> = a。因此,这将写为(编辑:应为> = )
另一个是X的行必须<=1。这意味着一行中最多只能激活一个X(= 1):
返回R :
对于目标功能:
问题#1 :我是否需要将p矩阵“拉伸”成向量:
obj<-c(3,17,14,20,0,3)
对于约束:
问题#2 是否需要确定约束矩阵的大小(行=约束数量,列= X中x的数量)?
那么对于这些约束,应该是(5,6)
?
问题3
约束矩阵看起来像这样-假设我对问题2正确吗?
第一行代表x11 + x21 + x31 >= a1
第二行代表x12 + x22 + x32 >= a2
第三行代表x11 + x12 <=1
第四行代表x21 + x22 <=1
第五行代表x31 + x32 <=1
然后当然要相应地设置方向矩阵和RHS矩阵。