运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍 | 您所在的位置:网站首页 › lingo01规划模型 › 运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍 |
目录 1 sum函数 2 for函数 3 一个示意性的演示程序 在使用lingo集合语言编程中,我们经常使用到for和sum这两个函数,本文以实测示例对这两个函数的使用方法进行介绍 1 sum函数使用语法: @sum(集合(下标):集合表达式)冒号之前定义要参与求和的下标,之后定义与前述下标相关的集合表达式 代码示例 表达方式示例数学表达式Lingo编码min = @sum(arc(i,j) : x(i) * d(i,j));Latex编码min = \sum_{i = 1}^{3}\sum_{j=1}^{3}x(i)*d(i,j) 2 for函数使用方法: @for(集合(下标)[|逻辑表达式] : 集合表达式);冒号之前定义要参与求和的下标,之后定义与前述下标相关的集合表达式;逻辑表达式定义了存在于下标之间的约束关系 表达方式示例数学表达式Lingo编码@for(node(i) : x(i) < 10);Latex编码x(i) < 10; i \in \{1,2,3\}@for(CXC:@BIN(X)); 经集合X中所有元素设置为二进制变量,CXC为集合X为集合的实例 3 一个示意性的演示程序 model: sets: node/1..3/:x; arc(node,node):d; endsets data: x = 1,2,4; d = 1 1 1 2 2 2 3 3 3 ; enddata min = @sum(arc(i,j) : x(i) * d(i,j));!单独使用sum函数; @for(node(i) | i #ne# 2: x(i) < 10);!单独使用for函数,无效约束,只为说明for函数的使用方法; @for(node(i) : @sum(node(j) : x(i) * d(i,j)) < 10000000);!for与sum结合使用,无效约束,只为说明for函数和sum函数结合使用的方法; end如果喜欢我的分享,可关注以下两个公众帐号
|
CopyRight 2018-2019 实验室设备网 版权所有 |