没有合适的资源?快使用搜索试试~ 我知道了~
LINGO软件的学习教程,全面详细,LINGO软件应用教程, 对于线性规划问题,优化问题能快速精确的求解
资源推荐
资源详情
资源评论
LINGO8.0forwindows 软件及应用(编译)
万保成
前 言
运筹学,即最优化理论,或在有的领域被称为管理科学,是近几十年发展和形成的一门
新兴的应用性学科。她主要解决最优生产计划、最优分配、最优设计、最优决策、最佳管
理等最优化问题。主要研究方法是定量化、系统化和模型化方法,特别是运用各种数学模
型和技术来解决问题。
我们遇到的实际问题一般规模都较大,即使建立了模型,找到了解的方法,对于庞大的
计算量也是望而却步。“工欲善其事,必先利其器”,手中有一个方便的求解最优化问题的
工具就显得很重要。 系列优化软件包就给我们提供了理想的选择。
是一个利用线性规划和非线性规划来简洁地阐述、解决和分析复杂问题的简便
工具。其特点是程序执行速度很快,易于输入、修改、求解和分析一个数学规划问题,因
此 在教育、科研和工业界得到了广泛应用。教学版和发行版的主要区别在于对优
化问题的规模(变量和约束的个数)有不同的限制。 软件包有多种版本,但其软件
内核和使用方法类似。详细情况可上网访问 软件网站:
关于 的资料市面上非常少,即使有也仅是一个附录,为此编写了本教程。学
完本书后,应该能够运用 建模语言表述实际问题,能够设置算法的基本选项,
正确理解求解过程所显示的状态,最后能正确解读输出结果。作为一门建模语言,它非常
灵活,不是本书所能完全包含的,“熟能生出百巧来”,只有用的多了才能掌握 的强
大功能。
由于水平所限,缺点和错误之处在所难免,请大家批评指正。
编 者
年 月
注意:章后有 表示该章内容可用。点击章上文字(超连接)即可。
目 录
快速入门
中的集 为什么使用集 什么是集 模型的集部分 定义原
始集 定义派生集
1
模型的数据部分和初始部分 模型的数据部分 数据部分入门 参
数 实时数据处理 指定属性为一个值 数据部分的未知数值 模型
的初始部分
函数 基本运算符 算术运算符 逻辑运算符 关系
运算符 数学函数 金融函数 概率函数 变量界定函数 集操作函
数 集循环函数 输入和输出函数 辅助函数
命令 文件菜单 编辑菜单 菜单 窗
口菜单 帮助菜单
的命令行命令
综合举例 由于时间原因, 节内容还没全部完成,抱歉!但为方便大家,还是先
贴出来啦。献丑!
参考文献
用户指南 的帮助文档
朱德通 编著最优化模型与实验上海 同济大学出版社!
何坚勇 编著运筹学基础北京 清华大学出版社!
刁在筠 郑汉鼎 等编著运筹学北京 高等教育出版社!
姚恩瑜 何勇 等编著数学规划与组合优化杭州 浙江大学出版社!
"#威廉斯 著孟国璧 等译数学规划模型建立与计算机应用北京:国防工业出版社,
.洪文 朱广斌整数规划下的最小生成树模型安徽电气工程职业技术学院学报,
,$
姜启源 谢金星 叶俊编数学模型(第三版)北京:高等教育出版社,
谢金星等编%&'(网上下载,
2
LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优
化模型的语言,可以简便地表达大规模问题,利用 LINGO 高效的求解器可快速求解并分析
结果。
§1 LINGO 快速入门
当你在 下开始运行 系统时,会得到类似下面的一个窗口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之
下。在主窗口内的标题为 )*+ 的窗口是 的默认模型窗口,建
立的模型都都要在该窗口内编码实现。下面举两个例子。
例 1.1如何在 中求解如下的 # 问题:
0,
6002
100
350
..
32min
21
21
1
21
21
xx
xx
x
xx
ts
xx
在模型窗口中输入如下代码:
,-./-.0
./.1,0
.1,0
-./.2,0
然后点击工具条上的按钮 即可。
例 1.2使用 LINGO 软件计算 6 个发点 8 个收点的最小费用运输问题。产销单位运价
如下表。
单
位 销地
运
价
产地
3
3
3
3
3
3
3
3
产量
4
4
4
3
4
4
4
销量
使用 软件,编制程序如下:
model:
!6 发点 8 收点运输问题;
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目标函数;
min=@sum(links: cost*volume);
!需求约束;
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
!产量约束;
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
'
!这里是数据;
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 9 5
4 9 5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
enddata
end
然后点击工具条上的按钮 即可。
为了能够使用 的强大功能,接着第二节的学习吧。
4
§2 LINGO 中的集
对实际问题建模的时候,总会遇到一群或多群相联系的对象,比如工厂、消费者群体、
交通工具和雇工等等。 允许把这些相联系的对象聚合成集(*()。一旦把对象聚
合成集,就可以利用集来最大限度的发挥 建模语言的优势。
现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于
建模技术的集如何引入模型会有一个基本的理解。
2.1 为什么使用集
集是 建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用
一个单一的、长的、简明的复合公式表示一系列相似的约束,从而可以快速方便地表达规
模较大的模型。
2.2 什么是集
集是一群相联系的对象,这些对象也称为集的成员。一个集可能是一系列产品、卡车
或雇员。每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。属
性值可以预先给定,也可以是未知的,有待于 求解。例如,产品集中的每个产品
可以有一个价格属性;卡车集中的每辆卡车可以有一个牵引力属性;雇员集中的每位雇员
可以有一个薪水属性,也可以有一个生日属性等等。
有两种类型的集:原始集56(7* *(和派生集*67**(。
一个原始集是由一些最基本的对象组成的。
一个派生集是用一个或多个其它集来定义的,也就是说,它的成员来自于其它已存在
的集。
2.3 模型的集部分
集部分是 模型的一个可选部分。在 模型中使用集之前,必须在集部分
事先定义。集部分以关键字“*( 8开始,以“**(8结束。一个模型可以没有集部分,
或有一个简单的集部分,或有多个集部分。一个集部分可以放置于模型的任何地方,但是
一个集及其属性在模型约束中被引用之前必须定义了它们。
2.3.1 定义原始集
为了定义一个原始集,必须详细声明:
9集的名字
9可选,集的成员
9可选,集成员的属性
定义一个原始集,用下面的语法:
*(:*;<*=*6>(<?; :((6=@(*>(?0
注意:用“
[]”
表示该部分内容可选。下同,不再赘述。
A*(:* 是你选择的来标记集的名字,最好具有较强的可读性。集名字必须严格符
合标准命名规则:以拉丁字母或下划线(>)为首字符,其后由拉丁字母(4$B)、下划
线、阿拉伯数字(,,…,)组成的总长度不超过 个字符的字符串,且不区分大
小写。
注意:该命名规则同样适用于集成员名和属性名等的命名。
)*=*6>( 是集成员列表。如果集成员放在集定义中,那么对它们可采取显式罗列
和隐式罗列两种方式。如果集成员不放在集定义中,那么可以在随后的数据部分定义它们。
C当显式罗列成员时,必须为每个成员输入一个不同的名字,中间用空格或逗号搁开 ,
允许混合使用。
例 2.1 可以定义一个名为 (@*( 的原始集,它具有成员 D'、D、E* 和
)F*,属性有 *. 和 :G*:
sets:
students/John Jill, Rose Mike/: sex, age;
endsets
H当隐式罗列成员时,不必罗列出每个集成员。可采用如下语法:
5
剩余63页未读,继续阅读
资源评论
yanlanbaobao
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功