实验二、利用Lingo求解整数规划及非线性规划问题.ppt

上传人:寂**** 文档编号:24206027 上传时间:2022-07-03 格式:PPT 页数:22 大小:763.50KB
返回 下载 相关 举报
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第1页
第1页 / 共22页
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《实验二、利用Lingo求解整数规划及非线性规划问题.ppt》由会员分享,可在线阅读,更多相关《实验二、利用Lingo求解整数规划及非线性规划问题.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验目的实验目的:1、掌握线性整数规划模型在、掌握线性整数规划模型在lingo中的求解,并能达到中的求解,并能达到灵活运用。灵活运用。 2、学会用、学会用Lingo对非线性规划问题进行求解。对非线性规划问题进行求解。 实验二实验二 利用利用Lingo求解整数规划及非线性规划问题求解整数规划及非线性规划问题变量定界函数变量定界函数:bin(x): 限制限制 x 为为 0 或或 1.gin(x): 限制限制 x 为整数为整数.实验二实验二 利用利用Lingo求解整数规划及非线性规划问题求解整数规划及非线性规划问题例例 1 用用Lingo软件求解软件求解0-1规划问题规划问题123412341234

2、12341234max253440242411,01zxxxxxxxxxxxxxxxxxxxx 或或max=2*x1+5*x2+3*x3+4*x4;-4*x1+x2+x3+x4=0;-2*x1+4*x2+2*x3+4*x4=1;x1+x2-x3+x4=1;bin(x1);bin(x2);bin(x3);bin(x4);Lingo 程序程序:一、用一、用Lingo 求解规划问题求解规划问题例例 2 用用Lingo软件求解整数规划问题软件求解整数规划问题123123123123min25340242220,1,2,3izxxxxxxxxxxxxxi 且取整数且取整数min=2*x1+5*x2+3*

3、x3;-4*x1-x2+x3=0;-2*x1+4*x2-2*x3=2;x1-x2+x3=2;gin(x1);gin(x2);gin(x3);Lingo 程序程序:例例 3 用用Lingo软件求解非线性规划问题软件求解非线性规划问题 2212211212min121,2,0,0.zxxxxxxxx min=(x1-1)2+(x2-2)2;x2-x1=1;x1+x2=2;Lingo 程序程序:注意注意:Lingo 默认默认变量变量的取值从的取值从0到到正无穷大正无穷大,变量定界函数变量定界函数可以改变默认状态可以改变默认状态.free(x): 取消对变量取消对变量x的限制的限制(即即x可取任意实数

4、值可取任意实数值)例例 4 求函数求函数 的最小值的最小值. 2222zxy解解: 编写编写Lingo 程序如下程序如下: min=(x+2)2+(y-2)2;free(x);例例 4 求函数求函数 的最小值的最小值. 2222zxy求得结果求得结果: x=-2, y=2二、二、Lingo 循环编程语句循环编程语句(1) 集合集合的定义的定义包括如下参数包括如下参数:1) 集合集合的名称的名称.命名规则命名规则: 以以字母开头字母开头, 后面是后面是字母字母或或下划线下划线.字母不区分大小写字母不区分大小写.2) 集合集合包含的元素包含的元素(可选可选).3) 集合集合中元素的所有属性中元素的

5、所有属性(可选可选).例例4 Math,English,totalsets:endsetsstudentsJohn, Jill, Rose, Mikesets:students/John, Jill, Rose, Mike/:Math,English,total;endsets(2) 数据赋值数据赋值例例4 data:enddatadata:Math=80,85,90,70;English=75,80,72,60;enddata格式格式:(1) 集合集合的定义的定义例例4 sets:students/John, Jill, Rose, Mike/:Math,English,total;ends

6、ets(3) 集合集合的的循环函数循环函数集合集合的的循环函数循环函数可以使所有的元素重复完成一些操作可以使所有的元素重复完成一些操作.函数函数函数功能函数功能for形成集合形成集合所有元素所有元素需满足的约束条件需满足的约束条件sum计算集合中元素所在表达式的计算集合中元素所在表达式的和和min计算集合中元素所在表达式的计算集合中元素所在表达式的最小值最小值max计算集合中元素所在表达式的计算集合中元素所在表达式的最大值最大值maxM=max(students(i):Math);maxE=max(students(i):English);averageM=sum(students(i):Ma

7、th)/4;for(students(i):total(i)=Math(i)+English(i);例例4 !数学的最高分数学的最高分;!英语的最高分英语的最高分;!数学的平均分数学的平均分;!每个学生数学与英语分数之和每个学生数学与英语分数之和.(4) 衍生集合衍生集合的定义的定义. 包括如下参数包括如下参数:1) 衍生集合衍生集合的名称的名称.3) 衍生集合衍生集合包含的元素包含的元素(可选可选).4) 集合集合中元素的所有属性中元素的所有属性(可选可选).例例5 link2) 衍生集合衍生集合的父集合名称的父集合名称.sets:ren/A,B,C,D/: rent;job/1.5/: j

8、obt;link(ren,job): time;endsetsrenjobtime注注: 若没有指明元素列若没有指明元素列表表, LINGO将用父集合将用父集合元素的所有组合作为衍元素的所有组合作为衍生集合的元素生集合的元素.(A,1), (A,2),(A,3),(A,4)(A,5)(B,1), (B,2),(B,3),(B,4)(B,5)(C,1), (C,2),(C,3),(C,4)(C,5)(D,1), (D,2),(D,3),(D,4)(D,5)(5) Lingo 内部的数学函数及其返回值内部的数学函数及其返回值abs(x): 返回返回x的绝对值的绝对值sin(x): 返回返回x的正弦

9、值的正弦值cos(x): 返回返回x的余弦值的余弦值tan(x): 返回返回x的正切值的正切值log(x): 返回返回x的自然对数值的自然对数值exp(x): 返回返回ex的值的值sqr(x): 返回返回x的平方值的平方值. 该函数可以用表达式该函数可以用表达式x2代替代替sqrt(x): 返回返回x的正的平方根的正的平方根. 可以用表达式可以用表达式x(1/2)代替代替三、三、Lingo 循环编程举例循环编程举例例例5 现有五名工人甲现有五名工人甲, 乙乙, 丙丙, 丁丁, 戊戊, 完成五项完成五项工作工作A, B, C, D, E, 所需时间列表如下所需时间列表如下 工作工作 时间时间(小

10、时小时)工人工人ABCDE甲甲10.521.754乙乙2131.53.5丙丙1.751.52.513丁丁2.521.50.54戊戊11.5223(2) 求每份工作最短的用时求每份工作最短的用时.(1) 求每个人的最短工作时间求每个人的最短工作时间;问题问题:三、三、Lingo 循环编程举例循环编程举例例例5 sets:ren/A,B,C,D,E/:rent;job/1.5/:jobt;link(ren,job):time;endsetsdata:time=1,0.5,2,1.75,4 2,1,3,1.5,3.5 1.75,1.5,2.5,1,3 2.5,2,1.5,0.5,4 1,1.5,2,

11、2,3;enddataS=sum(link(i,j):time(i,j);for(ren(i):rent=min(job(j):time(i,j);for(job(j):jobt=min(ren(i):time(i,j);!定义集合定义集合;!数据赋值数据赋值;!所有工作时间求和所有工作时间求和;!求每个人的最短工作时间求每个人的最短工作时间;!求每份工作最短的用时求每份工作最短的用时;三、三、Lingo 循环编程举例循环编程举例例例5 用用Lingo循环编程语句求解线性规划模型循环编程语句求解线性规划模型12max7264zxx 121211250,128480,3100,0,0.xxxxx

12、xx 三、三、Lingo 循环编程举例循环编程举例sets:bliang/1,2/:x,a;yshu/1,2,3/:b;xshu(yshu,bliang):c;endsetsdata:a=72,64;b=50,480,100;c=1,1 12,8 3,0;enddatamax=sum(bliang(i):a(i)*x(i);for(yshu(j):sum(bliang(i):x(i)*c(j,i)=b(j);!定义集合定义集合;!数据赋值数据赋值;!目标函数目标函数;!约束条件约束条件;12max7264zxx 121211250,128480,3100,0,0.xxxxxxx 例例5 用用L

13、ingo循环编程循环编程语句求解线性规划语句求解线性规划模型模型例例6、指派问题、指派问题公司在各地有公司在各地有4项业务,选定了项业务,选定了4位业务员去处理。由于位业务员去处理。由于业务能力、经验和其它情况不同,业务能力、经验和其它情况不同,4业务员去处理业务员去处理4项业项业务的费用(单位:元)各不相同,见下表:务的费用(单位:元)各不相同,见下表: 应当怎样分派任务,才能使总的费用最小?应当怎样分派任务,才能使总的费用最小? 业务1234111008001000700260050030080034008001000900411001000500700业务员业务员4141minijiji

14、jxaZ4 , 3 , 2 , 1,104 , 3 , 2 , 114 , 3 , 2 , 11. .4141jixixjxtsijjijiij或这是一个最优指派问题。引入如下变量: 项业务个人做第若不分派第项业务个人做第若分派第jijixij01设矩阵a(4,4)为指派矩阵,其中a(i,j)为第i个业务员做第j项业务的业务费。则可以建立如下模型:MODEL:SETS:person/A,B,C,D/;task/1.4/;assign(person,task):a,x;ENDSETSDATA:a=1100,800,1000,700, 600,500,300,800,400,800,1000,90

15、0,1100,1000,500,700;ENDDATAmin=sum(assign:a*x);for(person(i):sum(task(j):x(i,j)=1);for(task(j):sum(person(i):x(i,j)=1);for(assign(i,j):bin(x(i,j);ENDLINGO程序如下: 1、某游泳队拟选用甲、某游泳队拟选用甲, 乙乙, 丙丙, 丁丁 四名游泳运动员组成四名游泳运动员组成一个一个 4100 m 混合泳接力队混合泳接力队, 参加今年的锦标赛参加今年的锦标赛. 他们他们的的 100 m 自由泳自由泳, 蛙泳蛙泳, 蝶泳蝶泳, 仰泳的成绩如表所示仰泳的成

16、绩如表所示乙乙丙丙丁丁56成绩成绩自由泳自由泳 / s甲甲63575574蛙泳蛙泳 / s69777661蝶泳蝶泳 / s65636263仰泳仰泳 / s716762 甲甲, 乙乙, 丙丙, 丁丁 四名队员各自游什么姿势四名队员各自游什么姿势 , 才最有可能取得好成绩才最有可能取得好成绩?2、某旅馆每日至少需要下列数量的服务员每班服务、某旅馆每日至少需要下列数量的服务员每班服务 员从开始上班到下班连续工作八小时,为满足每班所需要员从开始上班到下班连续工作八小时,为满足每班所需要的最少服务员数,这个旅馆至少需要多少服务员。的最少服务员数,这个旅馆至少需要多少服务员。 班次班次时间段时间段人数人数班次班次时间段时间段人数人数106:0010:0080418:0022:0070210:0014:0090522:0002:0040314:0018:0085602:0006:0030

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁