Lingo编程基础:集合函数与优化模型解析
需积分: 42 201 浏览量
更新于2024-08-21
收藏 2.03MB PPT 举报
"集合函数特征-Lingo的基本编程方法"
在Lingo编程中,集合函数特征是构建模型的关键组成部分,它们允许用户定义和操作集合中的数据。集合函数通常涉及到对集合元素的计算,比如求和、最大值、最小值等。下面我们将深入探讨Lingo的基本编程方法及其相关知识点。
1. **集合函数**:
Lingo中的集合函数通过`@函数( 下标集 (下标变量) | 下标限制条件 : 变量表达式);`这样的语法来定义。例如,`@SUM( I( i) | i #LE# k: a( i))`表示对集合I中所有满足i小于等于k的元素a(i)求和。这里的`I`是集合名称,`i`是下标变量,`#LE#`是比较运算符,`k`是限制条件,`a(i)`是与集合元素关联的变量表达式。
2. **Lingo软件介绍**:
Lingo是由Lindo Systems Inc开发的优化问题求解软件,主要用于解决线性、非线性以及整数规划问题。它拥有一个用户友好的界面,包括模型窗口、状态行和工具栏,方便用户输入和管理LINGO程序。
3. **算术运算符**:
Lingo支持多种算术运算符,如乘方(^),乘(*), 除(/),加(+), 和减(-)。一元运算符是取反(--),可以用于求一个数的相反数。
4. **数学函数**:
Lingo内置了丰富的数学函数,如绝对值函数`@abs(x)`,正弦函数`@sin(x)`,余弦函数`@cos(x)`,正切函数`@tan(x)`,指数函数`@exp(x)`,自然对数函数`@log(x)`,伽马函数的自然对数`@lgm(x)`,符号函数`@sign(x)`,以及取整函数`@floor(x)`等。
5. **变量定界函数**:
这些函数用于设定变量的取值范围,例如:
- `@BND(L,X,U)`确保变量X的值在L和U之间。
- `@BIN(X)`限制X只能取0或1,模拟二进制决策变量。
- `@FREE(X)`取消对X的符号限制,允许其取任意实数值。
- `@GIN(X)`强制X取整数值。
6. **编程注意事项**:
- Lingo不区分大小写,但变量和行名长度限制在8到32个字符之间,且须以字母开头。
- 所有变量默认被视为非负。
- 每个语句以分号结尾,提高代码可读性,可以通过缩进来展示语句的嵌套层次。
- 以感叹号(!)开头的语句是注释,用于解释代码。
以奶制品为例,假设我们有一个牛奶和酸奶的生产模型,其中包含成本、产量等变量。我们可以使用Lingo的集合函数特征来定义总成本或总产量,如下所示:
```lingo
@SETS:
Products {1..2}: Cost, Production; // 定义集合Products,包含Cost和Production两个属性
@PARAMETER:
Cost_Milk = 1.5, Cost_Yogurt = 2.0; // 成本参数
@VARIABLES:
Milk, Yogurt >= 0; // 生产量变量
@EQUATIONS:
Objective "Total Cost" @SUM(Products(i): Cost(i)*Production(i)); // 总成本
Supply "Production Constraint" Milk + Yogurt = 1000; // 生产总量约束
```
以上就是一个简单的Lingo模型,利用集合函数特征计算总成本,并设置了生产总量的约束。
2010-09-15 上传
2009-03-27 上传
2022-11-13 上传
2010-04-26 上传
2010-05-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
活着回来
- 粉丝: 25
- 资源: 2万+
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库