Lingo精选题目及答案
Lingo精选题目及答案
答题要求:将Lingo程序复制到Word文档中,并且附上最终结果。
1、简单线性规划求解
(目标函数)maxs.t.(约束条件)
2、整数规划求解
Maxz?40x1?90x2z?4x1?3x2?2x1?x2?10?x?x?8?12??x2?7??x1,x2?0
?9x1?7x2?56??7x1?20x2?70?x,x?0?12
3、0-1规划求解
Max f?x21?0.4x2?0.8x3?1.5x4
3x1?2x2?6x3?10x4?10x1,x2,x3,x4?0或1
4、非线性规划求解
minz?|x1|?2|x2|?3|x3|?4|x4|s.t.
??x1?x2?x3?x4?0??x1?x2?x3?3x4?1?1?x1?x2?2x3?3x4??2?
5、集合综合应用
产生一个集合y?x?5x?50,(x?1,2,...,10),
求y前6个数的和S1,后6个数的和S2,第2~8个数中的最小值S3,最大值S4。
2
6、综合题
要求列出具体的目标函数和约束条件,然后附上Lingo程序和最终结果。
6.1 指派问题
有四个工人,要指派他们分别完成4项工作,每人做各项工作所消耗的时间如下表: 工作 工人 甲 乙 丙 丁 15 19 26 19 18 23 17 21 21 22 16 23 24 18 19 17 A B C D 问指派哪个人去完成哪项工作,可使总的消耗时间为最小?
6.2 分配问题
某两个煤厂A1,A2每月进煤数量分别为60t和100t,联合供应3个居民区B1,B2,B3。3个居民区每月对煤的需求量依次分别为50t,70t,40t,煤厂A1离3个居民区B1,B2,B3的距离依次分别
为10km,5km,6km,煤厂A2离3个居民区B1,B2,B3的距离分别为4km,8km,12km。问如何分配供煤量使得运输量(即t·km)达到最小? 1、
model:
max=4*x1+3*x2; 2*x1+x2<10; x1+x2<8; x2<7; end 2、
model:
max=40*x1+90*x2; 9*x1+7*x2<56; 7*x1+20*x2<70; @gin(x1);@gin(x2); end
3、
model:
max=x1^2+0.4*x2+0.8*x3+1.5*x4; 3*x1+2*x2+6*x3+10*x4<10; @bin(x1); @bin(x2); @bin(x3); @binend
(x4);
4、
model:
max=@abs(x1)+2*@abs(x2)+3*@abs(x3)+4*@abs(x4); x1-x2-x3+x4=0; x1-x2+x3-3*x4=1; x1-x2-2*x3+3*x4=-1/2;
end
5、
model: sets:
jihe/1..10/:y;
ss/1..4/:S; endsets
!由于y和s中部分有负数,所以要先去掉这个约束; @for(jihe:@free(y)); @for(ss(i):@free(S));
!产生元素;
@for(jihe(x):y(x)=x^2-5*x-50); S(1)=@sum(jihe(i)|i#le#6:y(i)); S(2)=@sum(jihe(i)|i#ge#5:y(i));
S(3)=@min(jihe(i)|i#ge#2 #and# i#le#8:y(i)); S(4)=@max(jihe(i)|i#ge#2 #and# i#le#8:y(i)); end
6.1、
设:第i个工人做第j项工作用时t,标志变量f 定义如下:
指派第i个工人去做第j件工作?1 f??0其他ijijij?min ??fi?1j?144ij?tij
?j?1,2,3,4?
s.t. ?fi?14ij?1每份工作都有一人做
?fj?14ij?1 ?i?1,2,3,4? 每
人都只做一项工作
model: sets:
work/A B C D/;
worker/jia yi bing ding/; time(worker,work):t,f; endsets
!目标函数可以用[obj]标志出,也可以省略;
[obj] min=@sum(time(i,j):t(i,j)*f(i,j)); data:
!可以直接复制表格,但是在最后要有分号; t=
15 18 21 24