首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPLEX语言与R语言的转换

CPLEX语言与R语言的转换
EN

Stack Overflow用户
提问于 2016-10-11 14:30:03
回答 1查看 197关注 0票数 0

我搞不懂这到底是怎么回事。我不知道在CPLEX中二进制是什么意思。问题是:

制造经理负责将以下四个月的采购成本(原材料加上储存成本)降到最低。表3.4列出了每个月一个单位原材料的成本和原材料需求。在月底储存的每一个单位的储存费用等于2e。在给定月份购买的任何原料单位都可以用来满足同月的需求,也可以储存以满足未来几个月的需求。在第一个月开始时,没有股票,也没有任何一个月的最低库存要求。

在未来4个月内,原料供应商已作出特别报价:任何月份购买超过200套的单位,均享有2 e的折扣,例如,如在第一个月订购350套,则首200套售价为12E,而以下150套则以每件10 e出售。1.定义决策变量(提供每组定义变量的简要定义)、目标函数和线性规划模型的约束,以使采购总成本降至最低。

解决方案:

CPLEX码

代码语言:javascript
复制
Minimize
cost : 12 q1 + 14 q2 + 16 q3 + 18 q4 + 10 r1 + 12 r2 + 14 r3 + 16
          r4 + 2 s1 + 2 s2 + 2 s3 + 2 s4
Subject To
  d1 : q1 + r1 - s1 = 150
  d2 : s1 + q2 + r2 - s2 = 200
  d3 : s2 + q3 + r3 - s3 = 250
  d4 : s3 + q4 + r4 - s4 = 150
  l1 : q1 - 200 b1 >= 0
  l2 : q2 - 200 b2 >= 0
  l3 : q3 - 200 b3 >= 0
  l4 : q4 - 200 b4 >= 0
  m1 : r1 - 10000 b1 <= 0
  m2 : r2 - 10000 b2 <= 0
  m3 : r3 - 10000 b3 <= 0
  m4 : r4 - 10000 b4 <= 0
Bounds
  0 <= q1 <= 200
  0 <= q2 <= 200
  0 <= q3 <= 200
  0 <= q4 <= 200
Binary
  b1
  b2
  b3
  b4
End

我的代码:

代码语言:javascript
复制
library ( lpSolve )
#defining parameters
obj.fun <- c(12 , 14, 16, 18, 10, 12, 14, 2, 2, 2, 2)
constr <- matrix (c(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0,
        0, 1, 0, 0, 0,1,0,0,1,-1,0,0,
        0,0,1,0,0,0,1,0,0,1,-1,0
        0,0,0,4,0,0,0,1,0,0,1,-1) , ncol = 4 , byrow =TRUE )
constr.dir <- c("=","=", "=", "=")
rhs <- c(150 , 200 , 250, 150)
#solving model
prod.sol <- lp ("max", obj.fun , constr , constr.dir , rhs ,compute.sens = TRUE)
#accessing to R output
prod.sol$obj.val 
prod.sol$solution 
prod.sol$duals 
#sensibility analysis results
prod.sol$duals.from
prod.sol$duals.to
prod.sol$sens.coef.from
prod.sol$sens.coef.to
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-11 14:53:19

二进制意味着b1,b2,b3,b4要么是0,要么是1,所以如果b1 == 1和10000 b1,它意味着你在第一个月购买10000 *1= 10000块原材料,而从解决方案中你不会在2个月、3个月或4个月内购买任何原材料。

在英语中,二进制变量用于表示完全关闭或完全打开的变量。

正如解决方案所述,“最好的选择是在第一个月购买所有单元”。

你是如何创造这个约束的?您可以使用二进制变量执行此操作。

你的老师正在为你学习混合整数编程做准备,这种编程部分依赖于二进制变量。

取决于您使用的cplex包装器,请参见

cplexAPIRcplex,并搜索二进制变量

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39979657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档