《LINGO实习报告》word版 本文关键词:实习报告,LINGO,word
《LINGO实习报告》word版 本文简介:Lingo实习报告姓名:张永桥班级:信息计算101801班学号:201018030131LINGO实习报告1.直接用LINGO来解如下二次规划问题:程序:max=98*x1+277*x2-x1^2-2*x2^2-0.3*x1*x2;x1+x2<=100;x1<=2*x2;@gin(x1);@gin(
《LINGO实习报告》word版 本文内容:
Lingo实习报告
姓名:张永桥
班级:信息计算101801班
学号:201018030131
LINGO实习报告
1.
直接用LINGO来解如下二次规划问题:
程序:
max=98*x1+277*x2-x1^2-2*x2^2-0.3*x1*x2;
x1+x2<=100;
x1<=2*x2;
@gin(x1);@gin(x2);
2.
例
SAILCO公司需要决定下四个季度的帆船生产量。下四个季度的帆船需求量分别是40条,60条,75条,25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条船的生产费用为400美元。如果加班生产,每条船的生产费用为450美元。每个季度末,每条船的库存费用为20美元。假定生产提前期为0,初始库存为10条船。如何安排生产可使总费用最小?
程序:sets:
quarters/1,2,3,4/:dem,rp,op,inv;
endsets
[email protected](quarters:400*rp+450*op+20*inv);
@for(quarters(i):rp(i)<40);
@for(quarters(i)|i#gt#1:
inv(i)=inv(i-1)+rp(i)+op(i)-dem(i););
inv(1)=10+rp(1)+op(1)+-dem(1);
data:
dem=40,60,75,25;
enddata
运行结果:
Global
optimal
solution
found.
Objective
value:
145750.0
Infeasibilities:
0.000000
Total
solver
iterations:
4
Variable
Value
Reduced
Cost
XQ(
1)
40.00000
0.000000
XQ(
2)
60.00000
0.000000
XQ(
3)
75.00000
0.000000
XQ(
4)
25.00000
0.000000
XQ(
5)
30.00000
0.000000
XQ(
6)
65.00000
0.000000
XQ(
7)
50.00000
0.000000
XQ(
8)
20.00000
0.000000
ZC(
1)
40.00000
0.000000
ZC(
2)
40.00000
0.000000
ZC(
3)
40.00000
0.000000
ZC(
4)
40.00000
0.000000
ZC(
5)
40.00000
0.000000
ZC(
6)
40.00000
0.000000
ZC(
7)
40.00000
0.000000
ZC(
8)
20.00000
0.000000
JB(
1)
0.000000
20.00000
JB(
2)
10.00000
0.000000
JB(
3)
35.00000
0.000000
JB(
4)
0.000000
40.00000
JB(
5)
0.000000
20.00000
JB(
6)
0.000000
0.000000
JB(
7)
10.00000
0.000000
JB(
8)
0.000000
50.00000
KC(
1)
10.00000
0.000000
KC(
2)
0.000000
20.00000
KC(
3)
0.000000
60.00000
KC(
4)
15.00000
0.000000
KC(
5)
25.00000
0.000000
KC(
6)
0.000000
20.00000
KC(
7)
0.000000
70.00000
KC(
8)
0.000000
420.0000
Row
Slack
or
Surplus
Dual
Price
1
145750.0
-1.000000
2
0.000000
30.00000
3
0.000000
50.00000
4
0.000000
50.00000
5
0.000000
10.00000
6
0.000000
30.00000
7
0.000000
50.00000
8
0.000000
50.00000
9
20.00000
0.000000
10
0.000000
430.0000
11
0.000000
450.0000
12
0.000000
450.0000
13
0.000000
410.0000
14
0.000000
430.0000
15
0.000000
450.0000
16
0.000000
450.0000
17
0.000000
400.0000
3.例3.4
建筑工地的位置(用平面坐标a,b表示,距离单位:公里)及水泥日用量d(吨)下表给出。有两个临时料场位于P
(5,1),Q
(2,7),日储量各有20吨。从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。两个新的料场应建在何处,节省的吨公里数有多大?
123456
a1.258.750.55.7537.25
b1.250.754.7556.57.75
d3547611
程序:model:
sets:
gdjh/16/:a,b,d;
lcjh/1,2/:x,y,e;
gdlcjh(gdjh,lcjh):c;
endsets
data:
a=1.25,8.75,0.5,5.75,3,7.25;
b=1.25,0.75,4.75,5,6.5,7.75;
d=3,5,4,7,6,11;
x,y=5,1,2,7;e=20,20;
enddata
[email protected](gdlcjh(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^0.5);
@for(gdjh(i):@sum(lcjh(j):c(i,j))=d(i));
@for(lcjh(j):@sum(gdjh(i):c(i,j))<=e(j));
end
运行结果:
Global
optimal
solution
found.
Objective
value:
136.2275
Infeasibilities:
0.000000
Total
solver
iterations:
1
Variable
Value
Reduced
Cost
A(
1)
1.250000
0.000000
A(
2)
8.750000
0.000000
A(
3)
0.5000000
0.000000
A(
4)
5.750000
0.000000
A(
5)
3.000000
0.000000
A(
6)
7.250000
0.000000
B(
1)
1.250000
0.000000
B(
2)
0.7500000
0.000000
B(
3)
4.750000
0.000000
B(
4)
5.000000
0.000000
B(
5)
6.500000
0.000000
B(
6)
7.750000
0.000000
D(
1)
3.000000
0.000000
D(
2)
5.000000
0.000000
D(
3)
4.000000
0.000000
D(
4)
7.000000
0.000000
D(
5)
6.000000
0.000000
D(
6)
11.00000
0.000000
X(
1)
5.000000
0.000000
X(
2)
2.000000
0.000000
Y(
1)
1.000000
0.000000
Y(
2)
7.000000
0.000000
E(
1)
20.00000
0.000000
E(
2)
20.00000
0.000000
C(
1,1)
3.000000
0.000000
C(
1,2)
0.000000
3.852207
C(
2,1)
5.000000
0.000000
C(
2,2)
0.000000
7.252685
C(
3,1)
0.000000
1.341700
C(
3,2)
4.000000
0.000000
C(
4,1)
7.000000
0.000000
C(
4,2)
0.000000
1.992119
C(
5,1)
0.000000
2.922492
C(
5,2)
6.000000
0.000000
C(
6,1)
1.000000
0.000000
C(
6,2)
10.00000
0.000000
Row
Slack
or
Surplus
Dual
Price
1
136.2275
-1.000000
2
0.000000
-3.758324
3
0.000000
-3.758324
4
0.000000
-4.515987
5
0.000000
-4.069705
6
0.000000
-2.929858
7
0.000000
-7.115125
8
4.000000
0.000000
9
0.000000
1.811824
4.例
(最短路问题)
在纵横交错的公路网中,货车司机希望找到一条从一个城市到另一个城市的最短路.
下图表示的是公路网,节点表示货车可以停靠的城市,弧上的权表示两个城市之间的距离(百公里).
那么,货车从城市S出发到达城市T,如何选择行驶路线,使所经过的路程最短?
S
T
A1
A2
A3
B1
B2
C1
C2
6
3
3
6
6
5
8
7
4
6
7
8
9
5
6
程序:model:
sets:
city/s,a1,a2,a3,b1,b2,c1,c2,t/:l;
gljh(city,city)/s,a1
s,a2
s,a3
a1,b1
a1,b2
a2,b1
a2,b2
a3,b1
a3,b2
b1,c1
b1,c2
b2,c1
b2,c2
c1,t
c2,t/:d;
endsets
data:
l=0,,,,,,,,;
d=6,3,3,6,5,8,6,7,4,6,7,8,9,5,6;
enddata
@for(city(i)|i#gt#1:l(i)[email protected](gljh(j,i):l(j)+d(j,i)));
end
运行结果:Feasible
solution
found.
Total
solver
iterations:
0
Variable
Value
L(
S)
0.000000
L(
A1)
6.000000
L(
A2)
3.000000
L(
A3)
3.000000
L(
B1)
10.00000
L(
B2)
7.000000
L(
C1)
15.00000
L(
C2)
16.00000
L(
T)
20.00000
D(
S,A1)
6.000000
D(
S,A2)
3.000000
D(
S,A3)
3.000000
D(
A1,B1)
6.000000
D(
A1,B2)
5.000000
D(
A2,B1)
8.000000
D(
A2,B2)
6.000000
D(
A3,B1)
7.000000
D(
A3,B2)
4.000000
D(
B1,C1)
6.000000
D(
B1,C2)
7.000000
D(
B2,C1)
8.000000
D(
B2,C2)
9.000000
D(
C1,T)
5.000000
D(
C2,T)
6.000000
Row
Slack
or
Surplus
1
0.000000
2
0.000000
3
0.000000
4
0.000000
5
0.000000
6
0.000000
7
0.000000
8
0.000000
5.例
某班8名同学准备分成4个调查队(每队两人)前往4个地区进行社会调查。这8名同学两两之间组队的效率如下表所示(由于对称性,只列出了严格上三角部分),问如何组队可以使总效率最高?
学生S1S2S3S4S5S6S7S8
S1-9342156
S2--173521
S3---44292
S4----1552
S5-----876
S6------23
S7-------4
程序:model:
sets:
xsjh/18/;
xljh(xsjh,xsjh)|
endsets
data:
xl=9,3,4,2,1,5,6,1,7,3,5,2,1,4,4,2,9,2,1,5,5,2,8,7,6,2,3,4;
enddata
[email protected](xljh(i,j):xl(i,j)*y(i,j));
@for(xsjh(k):
@sum(xljh(i,j)|(i#eq#k)#or#(j#eq#k):y(i,j))=1);
@for(xljh(i,j):@bin(y(i,j)));
end
运行程序:Global
optimal
solution
found.
Objective
value:
30.00000
Objective
bound:
30.00000
Infeasibilities:
0.000000
Extended
solver
steps:
0
Total
solver
iterations:
0
Variable
Value
Reduced
Cost
XL(
1,2)
9.000000
0.000000
XL(
1,3)
3.000000
0.000000
XL(
1,4)
4.000000
0.000000
XL(
1,5)
2.000000
0.000000
XL(
1,6)
1.000000
0.000000
XL(
1,7)
5.000000
0.000000
XL(
1,8)
6.000000
0.000000
XL(
2,3)
1.000000
0.000000
XL(
2,4)
7.000000
0.000000
XL(
2,5)
3.000000
0.000000
XL(
2,6)
5.000000
0.000000
XL(
2,7)
2.000000
0.000000
XL(
2,8)
1.000000
0.000000
XL(
3,4)
4.000000
0.000000
XL(
3,5)
4.000000
0.000000
XL(
3,6)
2.000000
0.000000
XL(
3,7)
9.000000
0.000000
XL(
3,8)
2.000000
0.000000
XL(
4,5)
1.000000
0.000000
XL(
4,6)
5.000000
0.000000
XL(
4,7)
5.000000
0.000000
XL(
4,8)
2.000000
0.000000
XL(
5,6)
8.000000
0.000000
XL(
5,7)
7.000000
0.000000
XL(
5,8)
6.000000
0.000000
XL(
6,7)
2.000000
0.000000
XL(
6,8)
3.000000
0.000000
XL(
7,8)
4.000000
0.000000
Y(
1,2)
0.000000
-9.000000
Y(
1,3)
0.000000
-3.000000
Y(
1,4)
0.000000
-4.000000
Y(
1,5)
0.000000
-2.000000
Y(
1,6)
0.000000
-1.000000
Y(
1,7)
0.000000
-5.000000
Y(
1,8)
1.000000
-6.000000
Y(
2,3)
0.000000
-1.000000
Y(
2,4)
1.000000
-7.000000
Y(
2,5)
0.000000
-3.000000
Y(
2,6)
0.000000
-5.000000
Y(
2,7)
0.000000
-2.000000
Y(
2,8)
0.000000
-1.000000
Y(
3,4)
0.000000
-4.000000
Y(
3,5)
0.000000
-4.000000
Y(
3,6)
0.000000
-2.000000
Y(
3,7)
1.000000
-9.000000
Y(
3,8)
0.000000
-2.000000
Y(
4,5)
0.000000
-1.000000
Y(
4,6)
0.000000
-5.000000
Y(
4,7)
0.000000
-5.000000
Y(
4,8)
0.000000
-2.000000
Y(
5,6)
1.000000
-8.000000
Y(
5,7)
0.000000
-7.000000
Y(
5,8)
0.000000
-6.000000
Y(
6,7)
0.000000
-2.000000
Y(
6,8)
0.000000
-3.000000
Y(
7,8)
0.000000
-4.000000
Row
Slack
or
Surplus
Dual
Price
1
30.00000
1.000000
2
0.000000
0.000000
3
0.000000
0.000000
4
0.000000
0.000000
5
0.000000
0.000000
6
0.000000
0.000000
7
0.000000
0.000000
8
0.000000
0.000000
9
0.000000
0.000000
9