运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍 您所在的位置:网站首页 lingo01规划模型 运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍

运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍

2023-10-07 01:06| 来源: 网络整理| 查看: 265

目录

1 sum函数

2 for函数

3 一个示意性的演示程序

在使用lingo集合语言编程中,我们经常使用到for和sum这两个函数,本文以实测示例对这两个函数的使用方法进行介绍

1 sum函数

使用语法:

@sum(集合(下标):集合表达式)

冒号之前定义要参与求和的下标,之后定义与前述下标相关的集合表达式

代码示例

表达方式示例数学表达式min = \sum_{i = 1}^{3}\sum_{j=1}^{3}x(i)*d(i,j)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(集合(下标)[|逻辑表达式] : 集合表达式);

冒号之前定义要参与求和的下标,之后定义与前述下标相关的集合表达式;逻辑表达式定义了存在于下标之间的约束关系

表达方式示例数学表达式x(i) 10; i \in \{1,2,3\}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 实验室设备网 版权所有