Lingo精选题目及答案 ln.docx
- 文档编号:396926
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:18
- 大小:126.85KB
Lingo精选题目及答案 ln.docx
《Lingo精选题目及答案 ln.docx》由会员分享,可在线阅读,更多相关《Lingo精选题目及答案 ln.docx(18页珍藏版)》请在冰豆网上搜索。
Lingo精选题目及答案ln
Lingo精选题目及答案
Lingo精选题目及答案
答题要求:
将Lingo程序复制到Word文档中,并且附上最终结果。
1、简单线性规划求解
(目标函数)
s.t.(约束条件)
2、整数规划求解
3、0-1规划求解
Max
4、非线性规划求解
s.t.
5、集合综合应用
产生一个集合
,(
),
求y前6个数的和S1,后6个数的和S2,第2~8个数中的最小值S3,最大值S4。
6、综合题
要求列出具体的目标函数和约束条件,然后附上Lingo程序和最终结果。
6.1指派问题
有四个工人,要指派他们分别完成4项工作,每人做各项工作所消耗的时间如下表:
工作
工人
甲
15
18
21
24
乙
19
23
22
18
丙
26
17
16
19
丁
19
21
23
17
问指派哪个人去完成哪项工作,可使总的消耗时间为最小?
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);@bin(x4);
end
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项工作用时
,标志变量
定义如下:
s.t.
每份工作都有一人做
每人都只做一项工作
model:
sets:
work/ABCD/;
worker/jiayibingding/;
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
19
23
22
18
26
17
16
19
19
21
23
17
;enddata
!
每份工作都有一人做;
@for(work(j):
@sum(time(i,j):
f(i,j))=1);
!
每人都只做一项工作;
@for(worker(i):
@sum(time(i,j):
f(i,j))=1);
!
让f取0-1值,此条件可以省略;
!
@for(time(i,j):
@bin(f(i,j)));
end
6.2
设:
煤厂进煤量
,居民区需求量为
,煤厂
距居民区
的距离为
,煤厂
供给居民区
的煤量为
那么可以列出如下优化方程式
s.t
model:
sets:
supply/1,2/:
s;
demand/1,2,3/:
d;
link(supply,demand):
road,sd;
endsets
data:
road=1056
4812;
d=507040;
s=60100;
enddata
[obj]min=@sum(link(i,j):
road(i,j)*sd(i,j));
@for(demand(i):
@sum(supply(j):
sd(j,i))=d(i));
@for(supply(i):
@sum(demand(j):
sd(i,j))
end
1.线性规划模型。
某战略轰炸机群奉命摧毁敌人军事目标。
已知该目标有四个要害部位,只要摧毁其中之一即可达到目的。
为完成此项任务的汽油消耗量限制为48000升、重型炸弹48枚、轻型炸弹32枚。
飞机携带重型炸弹时每升汽油可飞行2千米,带轻型炸弹时每升汽油可飞行3千米。
又知每架飞机每次只能装载一枚炸弹,每出发轰炸一次除来回路程汽油消耗(空载时每升汽油可飞行4千米)外,起飞和降落每次各消耗100升。
表1相关数据
要害部位
离机场距离
(千米)
摧毁可能性
每枚重型弹
每枚轻型弹
1
2
3
4
450
480
540
600
0.10
0.20
0.15
0.25
0.08
0.16
0.12
0.20
为了使摧毁敌方军事目标的可能性最大,应如何确定飞机轰炸的方案。
2、资源配置模型。
某工厂有原料钢管:
每根19米,用户需求4米50根,6米20根,8米15根。
如何下料钢管剩余总余量最小?
由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。
表1不同切割的模式
模式
4米钢管根数
6米钢管根数
8米钢管根数
余料(米)
1
4
0
0
3
2
3
1
0
1
3
2
0
1
3
4
1
2
0
3
5
1
1
1
1
6
0
3
0
1
7
0
0
2
3
3、图论模型(动态规划)。
求出下图所示的最小费用和最大流量,以及在最小费用下的最大流量。
其中(x,y)中x表示容量,y表示费用。
图1网络图
题目解答
1.线性规划模型。
解:
设用了x枚重型炸弹,用了y枚轻型炸弹,攻击的是第i个部位,再设一标志变量f定义如下:
目标函数为:
model:
sets:
pd/1..4/:
Ph,Pl,d,f;
endsets
data:
d=450,480,540,600;
Ph=0.1,0.2,0.15,0.25;
Pl=0.08,0.16,0.12,0.2;
enddata
max=@sum(pd(i):
(x*Ph(i)+y*Pl(i))*f(i));
@for(pd(i):
x*(d(i)/2+d(i)/4+200)+y*(d(i)/3+d(i)/4)+200<48000);
x<48;y<32;
@for(pd(i):
@bin(f(i)));
@sum(pd(i):
f(i))=1;
!
验证用油量;
!
l=x*(d(4)/2+d(4)/4+200)+y*(d(4)/3+d(4)/4)+200;
end
2、资源配置模型。
某工厂有原料钢管:
每根19米,用户需求4米50根,6米20根,8米15根。
如何下料钢管剩余总余量最小?
由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。
表1不同切割的模式
模式
4米钢管根数
6米钢管根数
8米钢管根数
余料(米)
1
4
0
0
3
2
3
1
0
1
3
2
0
1
3
4
1
2
0
3
5
1
1
1
1
6
0
3
0
1
7
0
0
2
3
设:
模式
的供应量为
,对于第i种模式,切割的4米钢管根数,6米钢管根数,8米钢管根数,分别为
,余料为
,每种钢管的需求量分别为
,再设一标志变量f定义如下:
目标函数:
i=1,2,…,7
model:
sets:
mode/1..7/:
m,s,f;
demand/1..3/:
d;
md(mode,demand):
t;
endsets
data:
s=3133113;
d=502015;
t=
4
0
0
3
1
0
2
0
1
1
2
0
1
1
1
0
3
0
0
0
2
;
enddata
[obj]min=@sum(mode(i):
f(i)*s(i)*m(i));
@for(demand(j):
@sum(mode(i):
f(i)*m(i)*t(i,j))=d(j));
@for(mode(i):
@bin(f(i)));
@sum(mode(i):
f(i))<3;
end
3、图论模型(动态规划)。
求出下图所示的最小费用和最大流量,以及在最小费用下的最大流量和最大流量下的最小费用。
其中(x,y)中x表示容量,y表示费用。
图1网络图
1)求最小费用,解法一:
稀疏矩阵0-1规划法
假设图中有n个原点,现需要求从定点1到n的最短路。
设决策变量为
,当
,说明弧(i,j)位于定点1至定点n的路上;否则
,其数学规划表达式为
约束条件,源点只有一条路指出去,终点只有一条路指进来,其余各点指进去的和指出去的相等,表达式如下,
model:
sets:
node/1..6/;
road(node,node)/12,13,24,25,
34,35,46,56/:
w,f;
endsets
data:
w=21534300;
enddata
n=@size(node);
[obj]min=@sum(road(i,j):
w(i,j)*f(i,j));
@for(node(i)|i#ne#1#and#i#ne#n:
@sum(road(i,j):
f(i,j))=@sum(road(j,i):
f(j,i)));
@sum(road(i,j)|i#eq#1:
f(i,j))=1;
!
下面这个条件可以省略,这个条件包含在上面的条件了,
因为如果满足上面所以的条件指向终点的路只有且只有一条;
@sum(road(j,i)|i#eq#n:
f(j,i))=1;
end
解法二:
求源点到任意点的最小费用,动态规划法。
求1→6的最小费用,只要求1→4+4→6和1→5+5→6中的最小费用,以同样的方法向上推,求1→4的最小费用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lingo精选题目及答案 ln Lingo 精选 题目 答案