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

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

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

1 sum函数

使用语法:

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

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

代码示例

image.png

2 for函数

使用方法:

@for(集合(下标)[|逻辑表达式] : 集合表达式);


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

image.png

@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
相关文章
|
7月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
93 0
|
7月前
|
算法 机器人 Python
动态规划法在扫地机器人中的实战应用(基于动作值函数的策略迭代 python 附源码)
动态规划法在扫地机器人中的实战应用(基于动作值函数的策略迭代 python 附源码)
90 0
|
7月前
|
算法 Java 数据处理
了解MindOpt优化求解器的各种调用方式、方法
Mindopt是一款高性能优化求解器,专为求解大规模数学规划问题,当前支持线性规划 (LP) 、混合整数线性规划 (MILP) 、非线性规划(QP、SDP)。其强大的算法旨在有效地找到符合规规则约束、目标值最优的最佳解决方案,使其成为运筹学必学工具,广泛用在电商互联网、金融、电力能源、工业制造、交通物流等领域。
|
7月前
|
机器学习/深度学习 算法 vr&ar
【Python强化学习】动态规划法中策略迭代和值迭代求解冰湖问题实战(图文解释 附源码)
【Python强化学习】动态规划法中策略迭代和值迭代求解冰湖问题实战(图文解释 附源码)
138 0
|
自然语言处理 算法
第4章 MATLAB编程基础——4.5 脚本与函数(2)
第4章 MATLAB编程基础——4.5 脚本与函数(2)
|
自然语言处理
第4章 MATLAB编程基础——4.5 脚本与函数(1)
第4章 MATLAB编程基础——4.5 脚本与函数(1)
|
算法 Python
【数学建模】混合整数规划MIP(Python+Gurobi代码实现)
【数学建模】混合整数规划MIP(Python+Gurobi代码实现)
1383 0
从0到1学习Yalmip工具箱(2)-决策变量进阶
从0到1学习Yalmip工具箱第二章,决策变量进阶学习
|
算法 Java
数学建模常用算法:人工鱼群算法(AFAS)求解二元函数最小值+限定x,y范围测试【java实现--详细注释+Matlab绘制小鱼游动过程】
数学建模常用算法:人工鱼群算法(AFAS)求解二元函数最小值+限定x,y范围测试【java实现--详细注释+Matlab绘制小鱼游动过程】
164 0
|
人工智能 运维 架构师
如何用 7 分钟玩转函数计算?
如何用 7 分钟玩转函数计算?
如何用 7 分钟玩转函数计算?