版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 优化建模优化建模与LINDO/LINGO软件第二章LINDO软件的基本使用方法原书相关信息谢金星, 薛毅编著, 清华大学, 2005年7月第1版./jxie/lindo 优化建模2.3整数线性规划的求解内容提要: LINDO求解整数线性规划概述 例2.6员工聘用问题(纯整数规划) 例2.7游泳队员的选拔问题(0-1规划) 例2.8汽车生产计划(混合整数规划) 备注LINDO求解整数线性规划概述 优化建模LINDO可用于求解线性纯整数规划或混合整数规划(IP),模型的输入与LP问题类似, 但需在END标志后定义整型变量。0/1
2、型的变量可由INTEGER(可简写为INT)命令来标识, 有以下两种可能的用法:INT vname INT n前者只将决策变量vname标识为0/1型,后者将当前模型中前n 个变量标识为0/1型(模型中变量顺序由模型中输入时出现的先后顺序决定, 该顺序可由输出结果中的变量顺序查证是否一致)。一般的整数变量可用命令GIN (是GENERAL INTEGER的意思),其使用方式及格式与INT 命令相似。 优化建模例2.6员工聘用问题首先在LINDO模型窗口输入模型 :MINX1 + X2 + X3 + X4 + X5 + X6 + X7 SUBJECT TOMON)X1+ X4 + X5 + X6
3、 + X7 =50 TUE)X1 + X2+ X5 + X6 + X7 =50 WED)X1 + X2 + X3+ X6 + X7 =50 THU)X1+ X2 + X3 + X4+X7 =50 FRI)X1 + X2 + X3 + X4 - X5=80 SAT)X2 + X3 + X4 - X5 + X6=90 SUN)X3 + X4 - X5 + X6 + X7 =90 ENDGIN7其中“GIN 7”表示7个变量都是一般整数变量。(仍然默认为取值是非负的) 优化建模“Best IP :94”表示当前得到的最好的整数解的目标函数值为94(人)。“IP Bound :93.5” 表示该整数规
4、划目标值的下界为93.5 (人)。“Branches :1”表示分枝数为1(即在第1个分枝中就找到了最优解)。我们前面说过,LINDO求解IP用的是分枝定界法。求解后状态窗口中与整数相关的三个域有了相关结果:显然,上面第二条“整数规划目标值的下界为93.5 (人)”表明至少要聘用93.5名员工,由于员工人数只能是整数,所以至少要聘用94(人)。 而第一条说明目前得到的解就是聘用94(人),所以已经是最优的了。 优化建模求解结果的报告窗口如下:LP OPTIMUM FOUND AT STEP8 OBJECTIVE VALUE =93.3333359SETX2 TO =4 AT1, BND=-94
5、.00TWIN= -93.5018NEW INTEGER SOLUTION OF94.0000000AT BRANCH1 PIVOT18BOUND ON OPTIMUM:93.50000 DELETEX2 AT LEVEL1ENUMERATION COMPLETE. BRANCHES=1 PIVOTS=18LAST INTEGER SOLUTION IS THE BEST FOUND RE-INSTALLING BEST SOLUTION.(接下页) 优化建模OBJECTIVE FUNCTION VALUE 1)94.00000VARIABLEVALUEREDUCED COSTX10.0000
6、001.000000X24.0000001.000000X340.0000001.000000X42.0000001.000000X534.0000001.000000X610.0000001.000000X74.0000001.000000ROWSLACK OR SURPLUSDUAL PRICESMON)0.0000000.000000TUE)2.0000000.000000WED)8.0000000.000000THU)0.0000000.000000FRI)0.0000000.000000SAT)0.0000000.000000SUN)0.0000000.000000NO. ITERA
7、TIONS=18BRANCHES=1 DETERM.=1.000E0 优化建模报告窗口中前两行告诉我们:在8次迭代后找到对应的线 性规划(LP)问题的最优解,最优值=93.3333359。LINDO求解IP用的是分枝定界法,紧接着几行显示的是分枝定界的信息,在第1个分枝中设定x2=4,并在该分枝中 找到了整数解,而且就是全局整数最优解,所以算法停止。旋转迭代(PIVOT)共18次。后面显示的是最后的最优解:x=(0,4,40,2,34,10,4).松弛和剩余变量(SLACK OR SURPLUS)仍然可以表示约束的松紧程度,但目前IP尚无相应完善的敏感性分析理论,因此REDUCED COST和
8、DUAL PRICES的结果在整数规划中意义不大。 优化建模例2.7游泳队员的选拔问题(0-1规划)在LINDO模型窗口中输入模型:MIN66.8x11+75.6x12+87 x13+58.6x14+57.2x21+66x22+66.4x23+53x24+78x31+67.8x32+84.6x33+59.4x34+70x41+74.2x42+69.6x43+57.2x44+67.4x51+71x52+83.8x53+62.4x54 SUBJECT TOx11+x12+x13+x14 21ENDx21+x22+x23+x24 =1x31+x32+x33+x34 21x41+x42+x43+x44
9、 =1x11+x21+x31+x41+x51 =1x12+x22+x32+x42+x52 =1x13+x23+x33+x43+x53 =1x14+x24+x34+x44+x54 =1其中“INT 20”表示20个变量都是0-1整数变量INT20 优化建模 求解得到结果为:x14 = x21 = x32 = x43 = 1, 其它变量为0, 成绩为253.2(秒)=413”2。即应当选派甲乙丙丁4人组成接力队,分别参加自由泳、蝶泳、仰泳、蛙泳的比赛。由于这个问题中有20个0-1变量,而最优解中肯定只有其中的4 个变量取非零值“1”,所以要在一大堆变量中去找少量的几个取非零值的变量,这是不太方便的
10、。有没有办法只把取非零值的变量显示出来呢?这是可以做到的:选择菜单命令“Reports | Solution (Alt+0)”(这个命令的功能是要把最优解显示出来),这时会 弹出一个选择对话框(图2-21),缺省的选项是“Nonzeros Only (只显示非零值)”。按下对话框中的“OK”按钮,则报告窗口中的只显示取非零值的变量,这样阅读起来就很方便了。请注意,这个功能并不仅仅在整数规划中可以使用,在其他模 型中也是可以使用的,不妨试试就知道了。 优化建模讨论若考虑到丁、戊最近的状态,c43 由原来的69.6变为75.2(秒),c54由原来的62.4变为57.5(秒), 试讨论对结果的影响。
11、这类似于线性规划中的敏感性分析, 但是可惜的是,对于整数规划模型,一般没有与线性规划相类似的理论,此时LINDO中所输出的敏感性分析结果通常是没有意义的, 因此不能利用这个输出的敏感性分析结果。于是我们只好用c43,c54 的新数据重新输入模型,用LINDO求解得到:x21 = x32 = x43 = x51 = 1, 其它变量为0,成绩为257.7(秒)=417”7。即应当选派乙丙丁戊 4人组成接力队,分别参加蝶泳、仰泳、蛙泳、自由泳的比赛。 优化建模例2.8 汽车生产计划(混合整数规划)一汽车厂生产小、中、大三种类型的汽车,已知各类型每 辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、
12、劳动时间的现有量如下表所示:小型中型大型现有量钢材(吨)1.535600劳动时间(小时)28025040060000利润(万元)234由于各种条件限制,如果生产某一类型汽车,则至少要 生产80辆。试制订月生产计划,使工厂的利润最大。模型建立与求解 优化建模设每月生产小、中、大型汽车的数量分别为x1, x2, x3,(由于生产是一个月一个月连续进行的,所以这里可以合理 地认为这个产量不一定非取整数不可,而是可以取实数)设工厂的月利润为z, 在题目所给参数均不随生产数量变化的假设下,立即可得线性规划模型:Maxz = 2x1 + 3x2 + 4x3st.1.5x1 + 3x2 + 5x3 6002
13、80x1 + 250x2 + 400x3 60000x1 , x2 , x3 0x1 My1 ,x1 80 y1 ,y1 0,1 优化建模但是,如果生产某一类型汽车,则至少要生产80辆,这个 约束怎么表达?可以引入0-1变量,化为整数规划。设y1只取0, 1两个值, 则“x1=0 或80”等价于x1 My1 ,x1 80 y1 ,y1 0,1其中M为相当大的正数,本例可取1000(x1不可能超过1000)。类似地有x2 x31 My2 ,My3 ,x2 x3 80 y2 ,80 y3 ,y2 0,1y3 0,1于是这个模型构成一个混合整数规划模型(既有一般的实数 变量x,又有0-1变量y),用
14、LINDO直接求解时,输入的最后(END语句后)只需要加上0-1变量y的限定语句。在LINDO模型窗口中输入模型: 优化建模1.5 x1 + 3 x2 + 5 x3 600280 x1 + 250 x2 +400 x3 60000x1 - 1000 y1 0x2 - 1000 y2 0x3 - 1000 y3 0x2 - 80 y2 0x3 - 80 y3 0end inty1 inty2 inty32 x1 + 3 x2 + 4 x3maxst求解得到输出如下 :OBJECTIVE FUNCTION VALUE 1)611.2000VARIABLEVALUEREDUCED COSTY11.0
15、00000108.800003Y21.0000000.000000Y30.0000000.000000X180.0000000.000000X2150.3999940.000000X30.0000000.800000ROWSLACK OR SURPLUSDUAL PRICES 2)28.7999990.0000003)0.0000000.0120004)920.0000000.0000005)849.5999760.0000006)0.0000000.0000007)0.000000-1.3600008)70.4000020.0000009)0.0000000.000000NO. ITERATIONS=25BRANCHES=1 DETERM.=1.000E0 优化建模即:只生产小型和中型汽车,产量分别为80辆和150辆(近似值), 可获得最大利润611.2万元。不妨试试把产量x也限定只取整数,结果会如何呢? 优化建模备注尽管LINDO 对整数规划问题很有威力, 但要想有效地使用,有时还是需要一定的技巧的。这是因为, 人们很容易将一个本质上很简单的问题列成一个不太好的输入模型, 从而有可能会导致一个冗长的分枝
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 欢庆年会模板
- 2026马年同心再出发:策马扬鞭启新程
- Tire树交互模型设计-洞察与解读
- 数字化印模技术-洞察与解读
- 物联网在酒店资产管理中的创新路径-洞察与解读
- 城市建设金融创新-洞察与解读
- VR家具展示效果评估-洞察与解读
- 心衰中医护理的推拿疗法
- 2025 九年级道德与法治下册宪法与其他法律关系解析课件
- 【7语期末】宣城市皖东南初中四校2025-2026学年七年级上学期1月期末联考语文试题
- 2026福建莆田市涵江区选聘区属一级国有企业高级管理人员2人笔试备考试题及答案解析
- 林业培训制度
- 2026年官方标准版离婚协议书
- 二十届中纪委五次全会知识测试题及答案解析
- 黑龙江大庆市2026届高三年级第二次教学质量检测化学(含答案)
- 公司品牌宣传年度推广计划
- 2025年贵州省高考化学试卷真题(含答案及解析)
- 2025年数字印刷技术应用项目可行性研究报告
- 蜜蜂授粉合同范本
- T/CEPPEA 5023-2023风光储充一体化充电站设计规范
- 2025新修订版《英语课程标准》学习心得体会
评论
0/150
提交评论