运筹优化学习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
相关文章
|
存储 算法
细谈多重背包问题
细谈多重背包问题
细谈多重背包问题
|
11月前
|
存储 机器学习/深度学习 人工智能
【AI系统】Winograd 算法
本文详细介绍Winograd优化算法,该算法通过增加加法操作来减少乘法操作,从而加速卷积计算。文章首先回顾Im2Col技术和空间组合优化,然后深入讲解Winograd算法原理及其在一维和二维卷积中的应用,最后讨论算法的局限性和实现步骤。Winograd算法在特定卷积参数下表现优异,但其应用范围受限。
376 2
【AI系统】Winograd 算法
|
11月前
|
存储 监控 安全
建立有效的反馈机制
建立有效的反馈机制
1157 6
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(禁用控制)
在HarmonyOS 5.0中,ArkTS引入了禁用控制属性,允许开发者控制组件的可用状态,提升用户界面的交互性和响应性。本文详细解读了ArkTS中组件的禁用控制属性,并提供了示例代码,展示了如何使用`disabled`属性来禁用按钮等可交互组件,从而防止用户误操作、引导用户流程和提升用户体验。
404 4
|
算法 决策智能
初谈背包问题——01背包
初谈背包问题——01背包
|
分布式计算 算法 Java
python中内存错误(MemoryError)
【7月更文挑战第15天】
2153 4
|
机器学习/深度学习 算法 搜索推荐
【机器学习】凸集、凸函数、凸优化、凸优化问题、非凸优化问题概念详解
本文解释了凸集、凸函数、凸优化以及非凸优化的概念,并探讨了它们在机器学习中的应用,包括如何将非凸问题转化为凸问题的方法和技术。
2276 0
|
前端开发 JavaScript Android开发
Flutter 调用本地 web
Flutter 调用本地 web
176 0
|
机器学习/深度学习 人工智能 算法
分类算法入门:以鸢尾花数据集为例(上)
分类算法入门:以鸢尾花数据集为例(上)
774 2