收藏 分享(赏)

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

上传人:精品资料 文档编号:10227708 上传时间:2019-10-22 格式:PPT 页数:22 大小:763.50KB
下载 相关 举报
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第1页
第1页 / 共22页
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第2页
第2页 / 共22页
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第3页
第3页 / 共22页
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第4页
第4页 / 共22页
实验二、利用Lingo求解整数规划及非线性规划问题.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

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

2、Lingo 程序:,一、用Lingo 求解规划问题,例 2 用Lingo软件求解整数规划问题,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软件求解非线性规划问题,min=(x1-1)2+(x2-2)2; x2-x1=1; x1+x2=2;,Lingo 程序:,注意:,Lingo 默认变量的取值从0到正无穷大,变量定界函数可以改变默认状态.,free(x): 取消对变量x的限制(即x可取任意实数值),例 4 求函数 的最

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

4、th,English,total; endsets,(2) 数据赋值,例4,data: enddata,data: Math=80,85,90,70; English=75,80,72,60; enddata,格式:,(1) 集合的定义,例4,sets: students/John, Jill, Rose, Mike/:Math,English,total; endsets,(3) 集合的循环函数,集合的循环函数可以使所有的元素重复完成一些操作.,maxM=max(students(i):Math);,maxE=max(students(i):English);,averageM=sum(st

5、udents(i):Math)/4;,for(students(i):total(i)=Math(i)+English(i);,例4,!数学的最高分;,!英语的最高分;,!数学的平均分;,!每个学生数学与英语分数之和.,(4) 衍生集合的定义.,包括如下参数:,1) 衍生集合的名称.,3) 衍生集合包含的元素(可选).,4) 集合中元素的所有属性(可选).,例5,link,2) 衍生集合的父集合名称.,sets: ren/A,B,C,D/: rent; job/15/: jobt; link(ren,job): time; endsets,ren,job,time,注: 若没有指明元素列表,

6、LINGO将用父集合元素的所有组合作为衍生集合的元素.,(5) Lingo 内部的数学函数及其返回值,abs(x): 返回x的绝对值,sin(x): 返回x的正弦值,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, 所需时间列表如下,三、Lingo 循环编程举例,例5

7、,sets: ren/A,B,C,D,E/:rent; job/15/:jobt; link(ren,job):time; endsets,data: 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; enddata,S=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);,!定义集合;,!数据赋值;,!所有工作时间求和;,!求每个人的最短工作时间

8、;,!求每份工作最短的用时;,三、Lingo 循环编程举例,三、Lingo 循环编程举例,sets: bliang/1,2/:x,a; yshu/1,2,3/:b; xshu(yshu,bliang):c; endsets,data: a=72,64; b=50,480,100; c=1,112,83,0; enddata,max=sum(bliang(i):a(i)*x(i);,for(yshu(j):sum(bliang(i):x(i)*c(j,i)=b(j);,!定义集合;,!数据赋值;,!目标函数;,!约束条件;,例5,用Lingo循环编程语句求解线性规划模型,例6、指派问题,公司在各

9、地有4项业务,选定了4位业务员去处理。由于业务能力、经验和其它情况不同,4业务员去处理4项业务的费用(单位:元)各不相同,见下表:,应当怎样分派任务,才能使总的费用最小?,业务员,这是一个最优指派问题。引入如下变量:,设矩阵a(4,4)为指派矩阵,其中a(i,j)为第i个业务员做第j项业 务的业务费。则可以建立如下模型:,MODEL: SETS: person/A,B,C,D/; task/14/; assign(person,task):a,x; ENDSETS DATA: a=1100,800,1000,700,600,500,300,800, 400,800,1000,900, 1100

10、,1000,500,700; ENDDATA min=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); END,LINGO程序如下:,上机作业题,1、某游泳队拟选用甲, 乙, 丙, 丁 四名游泳运动员组成一个 4100 m 混合泳接力队, 参加今年的锦标赛. 他们的 100 m 自由泳, 蛙泳, 蝶泳, 仰泳的成绩如表所示,甲, 乙, 丙, 丁 四名队员各自游什么姿势 , 才最有可能取得好成绩?,上机作业题,2、某旅馆每日至少需要下列数量的服务员每班服务 员从开始上班到下班连续工作八小时,为满足每班所需要的最少服务员数,这个旅馆至少需要多少服务员。,上机作业题,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报