应用LINGOMATLAB软件求解线性规划.pptx
《应用LINGOMATLAB软件求解线性规划.pptx》由会员分享,可在线阅读,更多相关《应用LINGOMATLAB软件求解线性规划.pptx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一个LINGO程序一般会包含集合段、数据输入段、优化目标和约束段、初始段和数据预处理段等部分,每一部分有其独特的作用和语法规则,读者可以通过查阅相关的参考书或者LINGO的HELP文件详细了解,这里就不展开介绍了。LINGO的主要功能特色为:既能求解线性规划问题,也有较强的求解非线性规划问题的能力;输入模型简练直观;运算速度快、计算能力强;内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述大规模的优化模型;将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;并且能方便地与Excel、数据库等其他软件交换数据。第1页/共37页LINGO的语法规定:(1)求目标函数的
2、最大值或最小值分别用MAX=或MIN=来表示;(2)每个语句必须以分号“;”结束,每行可以有许多语句,语句可以跨行;(3)变量名称必须以字母(AZ)开头,由字母、数字(09)和下划线所组成,长度不超过32个字符,不区分大小写;(4)可以给语句加上标号,例如OBJMAX=200*X1+300*X2;(5)以惊叹号“!”开头,以分号“;”结束的语句是注释语句;(6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;(7)LINGO模型以语句“MODEL:”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略。第2页/共37页在LINGO的MODEL窗口内输入如下模型:mode
3、l:max=2*x1+3*x2;x1+2*x2=8;4*x1=16;4*x260;0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x53;0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x58;X1+x2+x3+x4+x552;例1.5.2 用LINGO求解例1.1.3食谱问题。解 例1.1.3食谱问题的数学模型为(1.1.6)第7页/共37页求解输出结果如下:Global optimal solution found at iteration:4Objective value:22.40000Variable Value Reduced CostX
4、1 0.000000 0.7000000X2 12.00000 0.000000X3 0.000000 0.6166667X4 30.00000 0.000000X5 10.00000 0.000000Row Slack or Surplus Dual Price1 22.40000 -1.0000002 0.000000 -0.58333333 4.100000 0.0000004 0.000000 -4.1666675 0.000000 0.8833333第8页/共37页因此,每周每个动物的配料为饲料A2、A4、A5分别为12、30和10,合计为52,可使得饲养成本达到最小,最小成本为22
5、.4元;不选用饲料和的原因是因为这两种饲料的价格太高了,没有竞争力。“Reduced Cost”分别等于0.7和0.617,说明当这两种饲料的价格分别降低0.7元和0.62元以上时,不仅选用这两种饲料而且使得饲养成本降低。从“Slack or Surplus”可以看出,蛋白质和维生素刚达到最低标准,矿物质超过最低标准4.1;从“Dual Price”可以得到降低标准蛋白质1单位可使饲养成本降低0.583元,降低标准维生素1单位可使饲养成本降低4.167元,但降低矿物质的标准不会降低饲养成本,如果动物的进食量减少,就必须选取精一些的饲料但要增加成本,大约进食量降低1可使得饲养成本增加0.88元。
6、第9页/共37页(1.5.1)1.5.2 应用MATLAB求解线性规划MATLAB(MATrix LABoratory)的基本含义是矩阵实验室,它是由美国MathWorks公司研制开发的一套高性能的集数值计算、信息处理、图形显示等于一体的可视化数学工具软件。它是建立在向量、数组和矩阵基础之上的,除了基本的数值计算、数据处理、图形显示等功能之外,还包含功能强大的多个“工具箱”,如优化工具箱(optimization toolbox)、统计工具箱、样条函数工具箱和数据拟合工具箱等都是优化计算的有力工具。在这里仅介绍用MATLAB6.5优化工具箱求解线性规划问题。一般线性规划问题的数学模型为第10页
7、/共37页其中C是目标函数的系数行向量(常数),X 是n维列向量(决策变量),A,A1是常数矩阵,b,b1是常数向量,lb,ub是n维列向量分别表示决策变量X的下界与上界。在Matlab优化工具箱(Optimization Toolbox)中,求解(1.5.1)的程序如下:x,fval,exitflag,output,lambda=linprog(c,A,b,Aeq,beq,lb,ub,x0,options)说明:(1)A是不等式约束的系数矩阵,b是相应的常数列向量,若没有不等式约束,则均用 代替;(2)Aeq是等式约束的系数矩阵,beq是相应的常数列向量,若没有等式约束,则均用代替;(3)如
8、果某个变量无下界,则用-inf表示;如果某个变量无上界,则用inf表示,若决策变量 无下界,则lb用代替;若决策变量 无上界,则ub用代替;(4)x0是线性规划的初始解,这种设计仅对中规模算法有效,通常可以缺省。第11页/共37页(5)输出 是最优解,fval是最优值。(6)输出exitflag描述了程序的运行情况,若其值大于零,表示程序收敛到最优解 ;若其值等于零,表示计算达到了最大次数;若其值小于零,表示问题无可行解,或程序运行失败。(7)输出output表示程序运行的某些信息,如迭代次数(iterations)、所用算法(algorithm)、共轭梯度(cgiterations)等。(8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 LINGOMATLAB 软件 求解 线性规划
限制150内