Lingo编程基础:集合函数与优化模型解析
需积分: 42 178 浏览量
更新于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万+
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程