首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >约束- forall - CPLEX

约束- forall - CPLEX
EN

Stack Overflow用户
提问于 2014-11-10 16:42:55
回答 2查看 2.9K关注 0票数 0

如何在CPLEX中编写这样的约束(放置l+1是正确的)?

s_ijml + x_ijml*p_ij <= s_i‘’j‘m(l+1)

其中s和x是决策变量,i,j,m,l是指数。

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-11 17:22:01

试试这个:

代码语言:javascript
复制
{int} i_indexes = ...;
{int} j_indexes = ...;
{int} m_indexes = ...;
{int} l_indexes = ...;

dvar float+ s[i_indexes][j_indexes][m_indexes][l_indexes];

forall(i in i_indexes, j in j_indexes, m in m_indexes, l in l_indexes) {
    l != last(l_indexes) => s[i][j][m][l] <= s[i][j][m][nextc(l_indexes, l)]; 
}
票数 0
EN

Stack Overflow用户

发布于 2016-12-14 15:49:03

在上面的答案中,'index's不能是{int},以便您需要的索引使用'range‘。只需将代码更改为:

代码语言:javascript
复制
int N_i=...;
int N_j=...;
Range I_indexes=1..N_i;
Range I_indexes=1..N_j;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26848648

复制
相关文章

相似问题

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