实验二利用Lingo求解整数规划及非线性规划问题_精品文档PPT课件下载推荐.ppt
《实验二利用Lingo求解整数规划及非线性规划问题_精品文档PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《实验二利用Lingo求解整数规划及非线性规划问题_精品文档PPT课件下载推荐.ppt(22页珍藏版)》请在冰豆网上搜索。
bin(x4);
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);
例例3用用Lingo软件求解非线性规划问题软件求解非线性规划问题min=(x1-1)2+(x2-2)2;
x2-x1=1;
x1+x2=2;
注意注意:
Lingo默认默认变量变量的取值从的取值从0到到正无穷大正无穷大,变量定界函数变量定界函数可以改变默认状态可以改变默认状态.free(x):
取消对变量取消对变量x的限制的限制(即即x可取任意实数值可取任意实数值)例例4求函数求函数的最小值的最小值.解解:
编写编写Lingo程序如下程序如下:
min=(x+2)2+(y-2)2;
free(x);
例例4求函数求函数的最小值的最小值.求得结果求得结果:
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:
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的平方值的平方值.该函数可以用表达式该函数可以用表达式x2代替代替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/:
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):
for(job(j):
jobt=min(ren(i):
定义集合定义集合;
数据赋值数据赋值;
所有工作时间求和所有工作时间求和;
求每个人的最短工作时间求每个人的最短工作时间;
求每份工作最短的用时求每份工作最短的用时;
三、三、Lingo循环编程举例循环编程举例例例5用用Lingo循环编程语句求解线性规划模型循环编程语句求解线性规划模型三、三、Lingo循环编程举例循环编程举例sets:
bliang/1,2/:
x,a;
yshu/1,2,3/:
b;
xshu(yshu,bliang):
c;
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);
目标函数目标函数;
约束条件约束条件;
例例5用用Lingo循环编程循环编程语句求解线性规划语句求解线性规划模型模型例例6、指派问题、指派问题公司在各地有公司在各地有4项业务,选定了项业务,选定了4位业务员去处理。
由于位业务员去处理。
由于业务能力、经验和其它情况不同,业务能力、经验和其它情况不同,4业务员去处理业务员去处理4项业项业务的费用(单位:
元)各不相同,见下表:
务的费用(单位:
应当怎样分派任务,才能使总的费用最小?
业务1234111008001000700260050030080034008001000900411001000500700业务员业务员这是一个最优指派问题。
引入如下变量:
设矩阵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,900,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):
for(assign(i,j):
bin(x(i,j);
ENDLINGO程序如下:
上机作业题上机作业题1、某游泳队拟选用甲、某游泳队拟选用甲,乙乙,丙丙,丁丁四名游泳运动员组成四名游泳运动员组成一个一个4100m混合泳接力队混合泳接力队,参加今年的锦标赛参加今年的锦标赛.他们他们的的100m自由泳自由泳,蛙泳蛙泳,蝶泳蝶泳,仰泳的成绩如表所示仰泳的成绩如表所示乙乙丙丙丁丁56成绩成绩自由泳自由泳/s甲甲63575574蛙泳蛙泳/s69777661蝶泳蝶泳/s65636263仰泳仰泳/s716762甲甲,乙乙,丙丙,丁丁四名队员各自游什么姿势四名队员各自游什么姿势,才最有可能取得好成绩才最有可能取得好成绩?
上机作业题上机作业题2、某旅馆每日至少需要下列数量的服务员每班服务、某旅馆每日至少需要下列数量的服务员每班服务员从开始上班到下班连续工作八小时,为满足每班所需要员从开始上班到下班连续工作八小时,为满足每班所需要的最少服务员数,这个旅馆至少需要多少服务员。
的最少服务员数,这个旅馆至少需要多少服务员。
班次班次时间段段人数人数班次班次时间段段人数人数106:
0010:
0080418:
0022:
0070210:
0014:
0090522:
0002:
0040314:
0018:
0085602:
0006:
0030上机作业题上机作业题