LINDO和LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包.LINDO用于求解线性规划和二次规划问题,LINGO除了具有LINDO的全部功能外,还可以用于求解非线性规划问题,也可以用于一些线性和非线性方程(组)的求解,等等.LINDO和LINGO软件的最大特色在于可以允许优化模型中的决策变量是整数(即整数规划),而且执行速度很快.LINGO实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时调用,并提供与其他数据文件(如文本文件、Excel电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题.由于这些特点,LINDO和LINGO软件在教学、科研和工业、商业、服务等领域得到了广泛应用.
本书详细介绍在Microsoft Windows环境下运行的最新版本(LINDO 61,LINGO 9.0)的使用方法,并包括社会、经济、工程等方面的大量实际应用问题的数学建模和求解实例,可供了解和使用优化建模和优化软件的教师和学生、管理决策者、科技工作者及其他对此感兴趣的读者阅读,也可作为运筹学课程的教学参考书.
在工程技术、经济管理、科学研究和日常生活等诸多领域中,人们经常遇到的一类决策问题是,在一系列客观或主观限制条件下,寻求使所关注的某个或多个指标达到最大(或最小)的决策.这种决策问题通常称为最优化(或简称为优化)问题,研究处理这类问题的数学方法称为最优化方法,它也是运筹学和管理科学中解决定量决策问题的基本方法.在决策科学化、定量化的呼声日益高涨的今天,用最优化方法解决定量决策问题无疑是符合时代潮流和形势发展需要的.
用最优化方法解决决策问题包括两个基本步骤: 首先,需要把实际决策问题翻译、表述成数学最优化的形式,即用数学建模的方法建立决策问题的优化模型,或简称为优化建模;其次,建立优化模型后,需要选择、利用优化方法和工具求解模型.优化建模方法自然具有一般的数学建模方法的共同特性,但优化模型又是一类既重要、又特殊的数学模型,因此优化建模方法又具有一定的特殊性和专业性.此外,由于优化模型的种类很多,很多模型目前还没有有效的求解方法,不同的算法用于求解不同模型的效果可能差异很大,如何利用优化软件求解优化模型也有一定的专业性和技巧性.
本书就是希望以上面两个步骤为突破口,一方面重点介绍优化建模的思想和方法,另一方面重点介绍专业的优化软件包LINDO和LINGO的使用.全书结合具体的案例进行介绍,而很少介绍有关优化的数学理论.之所以这样组织,主要是基于以下考虑: 目前国内有关优化的数学理论方面的专门书籍已经很多,有兴趣的读者随时可以从几乎任何一本运筹学或最优化方法的书中找到相应的数学理论;此外,我们希望使本书的起点尽量低,让没有太多数学基础的读者也能读懂绝大部分内容,从而把本书的重点放到强调优化建模方法的重要性和实用性上,并借助专业优化软件的强大功能,直接得到优化模型的结果.
目前国际市场上的专业优化软件以及包含部分优化功能的数学类软件很多,本书之所以选择LINDO和LINGO软件进行介绍,主要是因为LINDO和LINGO软件是著名的专业优化软件,其功能比较强、计算效果比较好,与那些包含部分优化功能的非专业软件相比,通常具有明显的优势.此外,LINDO和LINGO软件使用起来非常简便,很容易学会,在优化软件(尤其是运行于个人电脑上的优化软件)市场占有很大份额,在国外运筹学类的教科书中也被广泛用做教学软件.
前言优化建模与LINDO/LINGO软件本书大致可以分成两部分: 前4章介绍优化模型的基本概念和LINDO/LINGO软件的基本使用方法.在这一部分,我们尽量将软件的使用介绍得完整些,以便使之能作为LINDO/LINGO的简易使用手册,但读者不一定在第一次阅读时就全部掌握,可以在将来需要时再回头来查阅和加深理解(尤其对于标题中带有“*”的内容).从第5章开始,通过介绍优化模型在各个领域的一些典型的应用案例,说明优化建模的过程,最后归结为用LINDO/LINGO软件求解.这部分内容中的每个案例基本上都是独立的,读者可以随意选择阅读.
本书中所有案例的LINDO/LINGO程序可以从以下网址下载:
http://faculty.math.tsinghua.edu.cn/~jxie/lindo
由于编者水平所限,书中一定存在很多不足甚至错误之处,欢迎读者不吝指正.我们的电子邮件地址是: jxie@math.tsinghua.edu.cn (谢金星);xueyi@bjut.edu.cn(薛毅).
第1章引言
1.1优化模型的基本概念
1.1.1优化模型的一般形式
1.1.2可行解与最优解
1.1.3优化模型的基本类型
1.2优化问题的建模实例
1.2.1线性规划模型
1.2.2二次规划模型
1.2.3非线性规划模型
1.2.4整数规划模型
1.2.5其他优化模型
1.3LINDO/LINGO软件简介
1.3.1LINDO/LINGO软件的基本功能
1.3.2LINDO/LINGO软件的求解过程
1.3.3建立LINDO/LINGO优化模型需要注意的几个基本问题
习题1
第2章LINDO软件的基本使用方法
2.1LINDO入门
2.1.1LINDO软件的安装过程
2.1.2编写一个简单的LINDO程序
2.1.3一些注意事项
2.2敏感性分析
2.3整数线性规划的求解
*2.4二次规划的求解
*2.5LINDO的主要菜单命令
2.5.1文件主菜单
2.5.2编辑主菜单
2.5.3求解主菜单
2.5.4报告主菜单
*2.6LINDO命令窗口
2.6.1INFORMATION(信息类命令)
2.6.2INPUT(输入类命令)
2.6.3DISPLAY(显示类命令)
2.6.4OUTPUT(输出类命令)
2.6.5SOLUTION(求解类命令)
2.6.6PROBLEM EDITING (编辑类命令)
2.6.7QUIT(退出类命令)
2.6.8INTEGER,QUADRATIC,AND PARAMETRIC PROGRAMS
(整数、二次与参数规划类命令)
2.6.9CONVERSATIONAL PARAMETERS(对话类命令)
2.6.10USER SUPPLIED ROUTINES(用户过程类命令)
2.6.11MISCELLANEOUS(其他命令)
*2.7LINDO命令脚本文件
附录MPS格式数据文件
习题2
目录优化建模与LINDO/LINGO软件第3章LINGO软件的基本使用方法
3.1LINGO入门
3.1.1LINGO软件的安装过程和主要特色
3.1.2在LINGO中使用LINDO模型
3.1.3编写一个简单的LINGO程序
3.2在LINGO中使用集合
3.2.1集合的基本用法和LINGO模型的基本要素
3.2.2基本集合与派生集合
3.2.3稠密集合与稀疏集合
3.2.4集合的使用小结
3.3运算符和函数
3.3.1运算符及其优先级
3.3.2基本的数学函数
3.3.3集合循环函数
3.3.4集合操作函数
3.3.5变量定界函数
3.3.6财务会计函数
3.3.7概率论中的相关函数
3.3.8文件输入输出函数
3.3.9结果报告函数
3.3.10其他函数
3.4LINGO的主要菜单命令
3.4.1文件主菜单
3.4.2编辑主菜单
3.4.3LINGO系统(LINGO)主菜单
3.5LINGO命令窗口
习题3
*第4章LINGO软件与外部文件的接口
4.1通过Windows剪贴板传递数据
4.1.1粘贴命令的用法
4.1.2特殊粘贴命令的用法
4.2通过文本文件传递数据
4.2.1通过文本文件输入数据
4.2.2通过文本文件输出数据
4.3通过电子表格文件传递数据
4.3.1在LINGO中使用电子表格文件的数据
4.3.2将LINGO模型嵌入、链接到电子表格文件中
4.4LINGO命令脚本文件
附录LINGO出错信息
习题4
第5章生产与服务运作管理中的优化问题
5.1生产与销售计划问题
5.1.1问题实例
5.1.2建立模型
5.1.3求解模型
5.2有瓶颈设备的多级生产计划问题
5.2.1问题实例
5.2.2建立模型
5.2.3求解模型
5.3下料问题
5.3.1钢管下料问题
5.3.2易拉罐下料问题
5.4面试顺序与消防车调度问题
5.4.1面试顺序问题
5.4.2消防车调度问题
5.5飞机定位和飞行计划问题
5.5.1飞机的精确定位问题
5.5.2飞行计划问题
习题5
第6章经济与金融中的优化问题
6.1经济均衡问题及其应用
6.1.1单一生产商、单一消费者的情形
6.1.2两个生产商、两个消费者的情形
6.1.3拍卖与投标问题
6.1.4交通流均衡问题
6.2投资组合问题
6.2.1基本的投资组合模型
6.2.2存在无风险资产时的投资组合模型
6.2.3考虑交易成本的投资组合模型
6.2.4利用股票指数简化投资组合模型
6.2.5其他目标下的投资组合模型
6.3市场营销问题
6.3.1新产品的市场预测
6.3.2产品属性的效用函数
6.3.3机票的销售策略
习题6
第7章图论与网络模型
7.1运输问题与转运问题
7.1.1运输问题
7.1.2指派问题
7.1.3转运问题
7.2最短路问题和最大流问题
7.2.1最短路问题
7.2.2最大流问题
7.2.3最小费用最大流问题
7.3最优连线问题与旅行商问题
7.3.1最优连线问题
7.3.2旅行商问题
7.4计划评审方法和关键路线法
7.4.1计划网络图
7.4.2计划网络图的计算
7.4.3关键路线与计划网络的优化
7.4.4完成作业期望和实现事件的概率
习题7
第8章目标规划模型
8.1线性规划与目标规划
8.1.1线性规划建模与目标规划建模
8.1.2线性规划建模的局限性
8.2目标规划的数学模型
8.2.1目标规划的基本概念
8.2.2目标规划模型的建立
8.2.3目标规划的一般模型
8.2.4求解目标规划的序贯式算法
8.3目标规划模型的实例
8.4数据包络分析
8.4.1数据包络分析的基本概念
8.4.2C2R模型
8.4.3数据包络分析的求解
习题8
第9章对策论模型
9.1二人常数和对策模型
9.1.1二人零和对策
9.1.2二人常数和对策
9.2二人非常数和对策
9.2.1纯对策问题
9.2.2混合对策问题
9.3n人合作对策初步
习题9
第10章排队论模型
10.1排队服务系统的基本概念
10.1.1排队的例子及基本概念
10.1.2符号表示
10.1.3描述排队系统的主要数量指标
10.1.4与排队论模型有关的LINGO函数
10.2等待制排队模型
10.2.1等待制排队模型的基本参数
10.2.2等待制排队模型的计算实例
10.3损失制排队模型
10.3.1损失制排队模型的基本参数
10.3.2损失制排队模型计算实例
10.4混合制排队模型
10.4.1混合制排队模型的基本公式
10.4.2混合制排队模型的基本参数
10.4.3混合制排队模型计算实例
10.5闭合式排队模型
10.5.1闭合式排队模型的基本参数
10.5.2闭合式排队模型计算实例
10.6排队系统的最优化模型
10.6.1系统服务时间的确定
10.6.2系统服务台(员)的确定
习题10
第11章存储论模型
11.1存储论模型简介
11.1.1问题的引入
11.1.2存储论模型的基本概念
11.2经济订购批量存储模型
11.2.1基本的经济订购批量存储模型
11.2.2带有约束的经济订购批量存储模型
11.2.3允许缺货的经济订购批量存储模型
11.2.4带有约束允许缺货模型
11.2.5经济订购批量折扣模型
11.3经济生产批量存储模型
11.3.1基本的经济生产批量存储模型
11.3.2带有约束的经济生产批量存储模型
11.3.3允许缺货的经济生产批量存储模型
11.3.4带有约束的允许缺货模型
11.4单周期随机库存模型
11.4.1模型的基本假设
11.4.2模型的推导
11.4.3模型的求解
习题11
第12章数学建模竞赛中的部分优化问题
12.1一个飞行管理问题
12.1.1问题描述
12.1.2模型1及求解
12.1.3模型2及求解
12.2钢管订购和运输
12.2.1问题描述
12.2.2运费矩阵的计算模型
12.2.3运输量计算模型及求解
12.3露天矿生产的车辆安排
12.3.1问题描述
12.3.2运输计划模型及求解
12.4空洞探测
12.4.1问题描述
12.4.2优化模型及求解
习题12
参考文献