温州大学城市学院实验二用Lingo求解规划模型变量定界函数:@bin(x):限制x为0或1.@gin(x):限制x为整数.温州大学城市学院例1用Lingo软件求解0-1规划问题12341234123412341234max253440242411,,,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*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.zxxxxxxxxmin=(x1-1)^2+(x2-2)^2;x2-x1=1;x1+x2=2;Lingo程序:温州大学城市学院注意:Lingo默认变量的取值从0到正无穷大,变量定界函数可以改变默认状态.@free(x):取消对变量x的限制(即x可取任意实数值)例4求函数的最小值.2222zxy温州大学城市学院解:编写Lingo程序如下:min=(x+2)^2+(y-2)^2;@free(x);例4求函数的最小值.2222zxy求得结果:x=-2,y=2温州大学城市学院二、Lingo循环编程语句(1)集合的定义包括如下参数:1)集合的名称.命名规则:以字母开头,后面是字母或下划线.字母不区分大小写.2)集合包含的元素(可选).3)集合中元素的所有属性(可选).例4Math,English,totalsets:endsetsstudentsJohn,Jill,Rose,Mikesets:students/John,Jill,Rose,Mike/:Math,English,total;endsets温州大学城市学院(2)数据赋值例4data:enddatadata:Math=80,85,90,70;English=75,80,72,60;enddata格式:(1)集合的定义例4sets:students/John,Jill,Rose,Mike/:Math,English,total;endsets温州大学城市学院(3)集合的循环函数集合的循环函数可以使所有的元素重复完成一些操作.函数函数功能@for形成集合所有元素需满足的约束条件@sum计算集合中元素所在表达式的和@min计算集合中元素所在表达式的最小值@max计算集合中元素所在表达式的最大值maxM=@max(students(i):Math);maxE=@max(students(i):English);averageM=@sum(students(i):Math)/4;@for(students(i):total(i)=Math(i)+English(i));例4!数学的最高分;!英语的最高分;!数学的平均分;!每个学生数学与英语分数之和.温州大学城市学院(4)衍生集合的定义.包括如下参数:1)衍生集合的名称.3)衍生集合包含的元素(可选).4)集合中元素的所有属性(可选).例5link2)衍生集合的父集合名称.sets:ren/A,B,C,D/:rent;job/1..5/:jobt;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的正弦值@cos(x):返回x的余弦值@tan(x):返回x的正切值@log(x):返回x的自然对数值@exp(x):返回ex的值@sqr(x):返回x的平方值.该函数可以用表达式x^2代替@sqrt(x):返回x的正的平方根.可以用表达式x^(1/2)代替温州大学城市学院三、Lingo循环编程举例例5现有五名工人甲,乙,丙,丁,戊,完成五项工作A,B,C,D,E,所需时间列表如下工作时间(小时)工人ABCDE甲10.521.754乙2131.53.5丙1.751.52.513丁2.521.50.54戊11.5223(2)求每份工作最短的用时.(1)求每个人的最短工作时间;问题:温州大学城市学院三、Lingo循环编程举例例5sets:ren/A,B,C,D,E/:rent;job/1..5/:jobt;link(ren,job):time;endsetsdata:time=1,0.5,2,1.75,42,1,3,1.5,3.51.75,1.5,2.5,1,32.5,2,1.5,0.5,41,1.5,2,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循环编程语句求解线性规划模型12max7264zxx121211250,128480,3100,0,0.xxxxxxx温州大学城市学院三、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,112,83,0;enddatamax=@sum(bliang(i):a(i)*x(i));@for(yshu(j):@sum(bliang(i):x(i)*c(j,i))=b(j));!定义集合;!数据赋值;!目标函数;!约束条件;12max7264zxx121211250,128480,3100,0,0.xxxxxxx例5用Lingo循环编程语句求解线性规划模型温州大学城市学院例6:人员选拔问题3571.92队员号码身高/m1位置1.881.851.80中锋前锋前锋后卫4681.90队员号码身高/m2位置1.861.831.78中锋前锋后卫后卫同时,要求出场阵容必须满足以下条件:(1)中锋只能有一个上场;(2)至少有一名后卫;(3)如果1号队员和4号队员都上场,则6号队员不能上场;(4)2号队员和6号队员必须至少保留一个不出场.如何确定符合要求的出场阵容?温州大学城市学院1267814626811121501,1,2,,8iiixxxxxxxxxxxxi或12345678max1.921.901.881.861.851.831.801.78fxxxxxxxx温州大学城市学院温州大学城市学院上机作业题1、建立数学模型,2、用lingo循环语句编写程序.要求:温州大学城市学院上机作业题某城市的巡逻大队要求每天的各个时间段都有一定数量的警员值班,以便随时处理突发事件,每人连续工作6h,中间不休息.如表所示是一天8个班次所需值班警员的人数情况统计:现在在不考虑时间段中警员上班和下班的情况下,巡逻大队至少需要多少警员才能满足值班需要?人员安排问题班次时间段人数班次时间段人数16:00~9:0070518:00~21:008029:00~12:0080621:00~24:00100312:00~15:0065724:00~3:00120415:00~18:009083:00~6:0090设第i个班次开始上班的警员数为xi.温州大学城市学院1870;xx目标函数:约束条件:12345678minzxxxxxxxx0,1,2,,8ixi且为整数,1280;xx2365;xx3490;xx4580;xx56100;xx67120;xx7890;xx温州大学城市学院温州大学城市学院上机作业题分配问题某游泳队拟选用甲,乙,丙,丁四名游泳运动员组成一个4×100m混合泳接力队,参加今年的锦标赛.他们的100m自由泳,蛙泳,蝶泳,仰泳的成绩如表所示乙丙丁56成绩自由泳/s甲63575574蛙泳/s69777661蝶泳/s65636263仰泳/s716762甲,乙,丙,丁四名队员各自游什么姿势,才最有可能取得好成绩?温州大学城市学院约束条件11121314212223243132333441424344min56746163636965715777636755766262fxxxxxxxxxxxxxxxx11121314212223243132333441424344112131411222324213233343142434441;1;1;1;1;1;1;1;01,,1,2,3,4.ijxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxij或