Lingo编程基础:集合函数与优化模型解析
需积分: 42 138 浏览量
更新于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-04-26 上传
2022-11-13 上传
2010-09-15 上传
2010-05-12 上传
点击了解资源详情
点击了解资源详情
活着回来
- 粉丝: 26
- 资源: 2万+
最新资源
- Java编程规范(上课的课件,写得很详细)分享下
- Matlab6.0图形图像处理函数
- proteus常用元件中英文对照表
- C#程序设计必看书籍
- 很不错的制作安装程序详解
- 高级SQL查询语言(适合有基础的sql程序员)
- IEEE802.15.4协议安全模式的软硬件协同设计
- Linux的shell好比DOS的COMMAND.COM,
- Oracle9i Database Administration
- CAN总线协议与总线分析.doc
- OracleProc编程
- ubuntu部落-ubuntu使用入门
- 数据结构单链表4个函数
- can_intro.pdf
- linux 虚拟内存
- 飞思卡尔BDM for S12(TTBDM)