首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LPsolve表达式

LPsolve表达式
EN

Stack Overflow用户
提问于 2018-10-17 13:21:15
回答 2查看 70关注 0票数 1

我正在研究一个涉及包含某些表达式的约束的问题,这些表达式需要使用LPsolve来解决。不过,我似乎想不出如何制定约束条件。

例句:-我想重新制定以下约束:

代码语言:javascript
复制
+0.35 C1 +0.15 C2 +0.15 C3 +0.2 C4 +0.15 C5 +0.15 C6 +0.15 C7 +0.15 C8 +0.15 C9 +0.15 C10 <= 3750; 

作为

代码语言:javascript
复制
+(0.35)*(1+C1) +0.15*(1+C2) +0.15*(1+C3)....+0.15*(1+C10)<= 3750;

我尝试过使用set.constr.value(),但这只接受一个固定行作为输入。

然后求解最优解。

EN

回答 2

Stack Overflow用户

发布于 2018-10-17 14:07:05

为了使受给定的约束约束的Ci变量之和最大化,他提出了一个问题,并假定它们是非负的:

代码语言:javascript
复制
library(lpSolve)

cc <- c(0.35, 0.15, 0.15, 0.2, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15)
result <- lp(direction = "max", 
   objective = rep(1, length(cc)),
   const.mat = t(cc),
   const.dir = "<=",
   const.rhs = 3750 - sum(cc))

result
## Success: the objective function is 24988.33 

result$solution
##  [1]     0.00 24988.33     0.00     0.00     0.00     0.00     0.00     0.00
##  [9]     0.00     0.00
票数 1
EN

Stack Overflow用户

发布于 2018-10-17 14:11:29

程序中的约束(assumet C_i >= 0):

代码语言:javascript
复制
+(0.35)*(1+C1) +0.15*(1+C2) +0.15*(1+C3)....+0.15*(1+C10)<= 3750;

与以下相同:

代码语言:javascript
复制
+0.35*C1 +0.15*C2 + ... +0.15*C10 <= 3750 - (0.35 + 0.15 + ... + 0.15)

别把问题的重点.请试着把程序写成普通形式,使你的问题更精确。

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

https://stackoverflow.com/questions/52855950

复制
相关文章

相似问题

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