4图论组合优化实验解读.docx

上传人:b****5 文档编号:7178997 上传时间:2023-01-21 格式:DOCX 页数:31 大小:23.75KB
下载 相关 举报
4图论组合优化实验解读.docx_第1页
第1页 / 共31页
4图论组合优化实验解读.docx_第2页
第2页 / 共31页
4图论组合优化实验解读.docx_第3页
第3页 / 共31页
4图论组合优化实验解读.docx_第4页
第4页 / 共31页
4图论组合优化实验解读.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

4图论组合优化实验解读.docx

《4图论组合优化实验解读.docx》由会员分享,可在线阅读,更多相关《4图论组合优化实验解读.docx(31页珍藏版)》请在冰豆网上搜索。

4图论组合优化实验解读.docx

4图论组合优化实验解读

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

工程数学

 

Gxxxxxxxxxxxxxxx

 

E-mail:

xxxxxxxxxxxxxxxTel:

xxxxxxxxxx

 

4数学建模基础:

 

4.1.实验目的与要求

 

学会用图论(组合优化)的方法或思想建模

 

学会LINGO软件求解组合优化问题

 

成立相应的数学模型,并对计算结果进行剖析议论

 

4.2.基本实验

 

4.2.1.设施更新问题

 

某企业需要对一台已经使用了2年的机器确立此后4年(n=4)的最优更新策略。

企业要求,用了6

 

年的机器一定更新,购置一台新机器的价钱是100万元,表4.1给出了该问题的数据,请给出设施的更新

 

策略。

 

解:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

用图论知识来理解本题。

设用A,B表示决议年度,用数字表示机龄,所以,第1年决议的节点就

 

是A2,第2年只有两种可能,就是B3(第1年不更新)或B1(第1年更新),以此类推。

则得出Lingo的程序:

 

sets:

 

nodes/A2,B3,B1,C4,C2,C1,D5,D3,D2,D1,E6,

 

arcs(nodes,nodes)/

A2,B3

A2,B1

B3,C4

B3,C1

B1,C2

B1,C1

C4,D5

C4,D1

C2,D3

C2,D1

C1,D2

C1,D1

D5,E1

D5,E6

D3,E4

D3,E1

D2,E3

D2,E1

D1,E2D1,E1

E6,F

E4,F

E3,F

E2,F

E1,F

/:

c,x;

endsets

data

:

17.3–

5

30

50

60

80;

enddata

n=

@size(nodes);

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

max=@sum(arcs:

c*x);

 

@sum(arcs(i,j)|i#eq#1:

x(i,j))=1;

 

@for(nodes(i)|i#ne#1#and#i#ne#n:

 

@sum(arcs(i,j):

x(i,j))-@sum(arcs(j,i):

x(j,i))=0

 

);

 

@sum(arcs(j,i)|i#eq#n:

x(j,i))=1;

 

@for(arcs:

@bin(x));

 

则得出程序运转结果:

 

(取非零的x结果)

 

剖析结果:

A2-B3-C4-D5-E1-F,得悉设施应当是使用5年后再更新设施,为最优更新策略。

 

4.2.2.运输问题

 

有甲、乙和丙三个城市,每年分别需要煤炭320万吨、250万吨和350万吨,由A,B两个煤矿负责

 

供给。

已知煤矿年产量A为400万吨,B为450万吨,从两煤矿至各城市煤炭运价如表4.2所示。

因为需

 

求大于供给,经磋商均衡,甲城市在必需时可少供给0-30万吨,乙城市需求量须所有知足,丙城市需求量

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

许多于270万吨。

试求将甲、乙两矿煤炭所有分派出去,知足上述条件又使总运费最低的调运方案。

 

解:

 

sets:

 

From/A,B/:

Capacity;

 

To/C1,C2,C3/:

Demand;

 

Routes(From,To):

D,x;

 

endsets

 

!

Theobjective;

 

[OBJ]min=@sum(Routes:

D*x);

 

!

Thesupplyconstraints;@for(From(i):

[SUP]

@sum(To(j):

x(i,j))<=Capacity(i));

 

!

Thedemandconstraints;

 

@for(To(j):

[DEM]

 

@sum(From(i):

x(i,j))>=Demand(j));

 

!

Herearetheparameters;data:

Capacity=400,450;

 

Demand=320,250,380;

 

D=15,18,22,21,25,16;

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

Enddata

 

程序运转结果以下:

 

(1)

甲’

丙’

销量

A

15

15

19

22

22

400

B

21

21

25

16

16

450

C

M

0

M

M

0

70

运量

290

30

250

270

80

 

(2)

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

甲’

丙’

销量

A

15

15

18

22

22

400

-6

B

21

21

25

16

16

450

0

C

M

0

M

M

0

70

-16

产量

290

30

250

270

80

21

21

24

16

16

(3)

甲’

丙’

销量

A

15

15

19

22

22

400

B

21

21

25

16

16

450

C

M

0

M

M

0

70

运量

290

30

250

270

80

(4)

甲’

丙’

销量

A

15

15

18

22

22

400

-6

B

21

21

25

16

16

450

0

C

M

30

M

M

0

70

-16

产量

290

30

250

270

80

21

16

24

16

16

 

结论:

调整后最优方案的最低花费:

 

150*15+250*18+140*21+270*16+40*16+30*0+40*0=14650万元

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

4.2.3.生产计划与库存管理

 

(1)某企业生产一种除臭剂,它在1至4季度的生产成本、生产量及订货量表4.3所示。

假如除臭剂在

 

生产当季没有交货,保存在库房里除臭剂每盒每季度还需1元钱的储藏花费。

假如某个季度的货物供给量

 

不足,则同意缓期交货,缓期交货的罚金是每盒每季度3元。

请企业希望拟订一个成本最低(包含储藏花费

 

和罚金)的除臭剂的生产计划,问各季度应生产多少?

 

(2)假如产品不同意缓期交货,则企业考虑工人加班,已知加班生产出产品的成本要比原成本超出

20%,

且每季度加班最多生产

2万盒。

问:

在这类状况下,将怎样安排生产,使总成本最少

?

 

解:

 

(1)设第一季度、第二季度、第三季度、第四时度生产量分别为a、b、c、d,a1为第一季度后

 

节余量,b1为第二季度后节余量,c1为第三季度后节余量,d1为第四时度后的节余量。

 

每季度的生产的除臭剂应当小于等于最大产量,大于等于订货量,第一个季度认为的季度中

 

实质货物量应当等于上月的节余量加该月的产量,以此类推,能够得出;

 

LINGO的程序:

 

model:

 

min=5*a+5*b+6*c+6*d+ya1+b1+c1+d1;

 

a>=10;

 

a<=14;

 

a1=a-10;

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

b+a1>=14;

 

b<=15;

 

b1=b+a1-14;

 

c+b1>=20;

 

c<=15;

 

c1=c+b1-20;

 

d+c1>=8;

 

d<=13;

 

d1=d+c1-8;

 

end

 

程序运转结果以下:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

第一个季度应生产14万盒,第二季度应当生产15万盒,第三季度应当生产15万盒,第

 

四时度应当生产8万盒除臭剂。

最低花费为288万元。

 

(2)第1季度加班生产的产品为y1盒,

 

第2季度加班生产的产品为y2盒,

 

第3季度加班生产的产品为y3盒,

 

第4季度加班生产的产品为y3盒,

 

LINGO的程序:

 

Model:

 

min=8*a+9*y1+7*b+8*y2+7*c+8.2*y3+6*d+7.2*y4-78;

 

a+y1+b+y2+c+y3+d+y4=52;

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

a<=13;

 

a+y1>=10;

 

b<=15;

 

a+b+y1+y2>=24;

 

c<=15;

 

a+b+c+y1+y2+y3>=44;

 

d<=13;

 

End

 

Lingo程序运转结果:

 

Lingo运转结果可得:

 

安排生产:

第一季度正常生产13万盒,不加班生产;第二季度正常生产15万,加班生产1万

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

盒;第三季度正常生产15万,不加班生产;第四时度生产8万盒,不加班生产。

总成本最少为

 

292万元。

 

4.2.4.指派问题

 

某企业需要把4项工作派给4名工人,每名工人达成每项工作的花费如表4.4所示,此中甲不可以达成

 

工作C,丙不可以达成工作D。

 

(1)确立每名工人达成工作的最优方案;

 

(2)假定有此外一名工人(戊)能达成这4项工作,达成每项工作相应花费分别为60、45、30和80元。

 

能否用这名新工人(戊)替代本来的某位工人?

 

(3)假定企业有了第5项工作(E),4名工人(甲、乙、丙、丁)达成工作E的花费分别为20、10、20

 

和80元。

这项新工作E比原有的四项工作(A,B,C,D)的某一项优先吗?

 

解:

 

依据题意剖析方案。

 

利用lingo的程序(不行能任务设成999,求min)

 

sets:

 

Flight/1..4/;

 

Assign(Flight,Flight):

c,x;

 

endsets

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

data:

c=50

50

999

20

70

40

20

30

90

30

50

999

70

20

60

70

;

enddata

 

min=@sum(Assign:

c*x);

 

@for(Flight(i):

 

@sum(Flight(j):

x(i,j))=1;

 

@sum(Flight(j):

x(j,i))=1;

 

);

 

Lingo程序运转得:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

最优方案:

甲达成工作D,乙达成C,丙达成B,丁达成A。

总花费为140元

 

(2)依据题意增添一个工人(戊),设替代丙方案(且丁达成B任务)。

 

Lingo的程序:

 

sets:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

Flight/1..5/;

 

Assign(Flight,Flight):

c,x;

 

endsets

data:

c=50

50

999

20999

70

40

20

30999

90

30

50

999999

70

20

60

70

999

60

45

30

80

999;

enddata

 

min=@sum(Assign:

c*x);

 

@for(Flight(i):

 

@sum(Flight(j):

x(i,j))=1;

 

@sum(Flight(j):

x(j,i))=1;

 

);

 

Lingo程序运转得:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

结论:

1119-999=120,花费减少120元。

甲达成D,乙达成C,丙达成5(去掉),丁达成

 

B,戊达成A。

 

(3)Lingo的程序:

 

sets:

Flight/1..5/;

Assign(Flight,Flight):

c,x;

endsets

data:

c=50

50

99920

20

70

40

20

30

10

90

30

50

999

20

70

20

60

70

80

999999999999

999

;

enddata

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

min=@sum(Assign:

c*x);

 

@for(Flight(i):

 

@sum(Flight(j):

x(i,j))=1;

 

@sum(Flight(j):

x(j,i))=1;

 

);

 

Lingo程序运转得:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

结论:

1079-999=80,甲达成D,乙达成C,丙达成E,丁达成B,即E比A优先

 

4.2.5.旅游商问题

 

张三住在A市,他在A,B,C,D,E和F市都有保险代理业务.因为业务关系,他每个月都需要接见这些城

 

市作一次。

表4.5给出了每个城市之间的距离,试剖析他依据什么的次序接见这些城市使得总旅游的距离

 

最短?

 

(1)用启迪式算法求解;

(2)用LINGO软件求解。

 

解:

 

(1)用启迪式算法求解

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

由题意得悉,以下几条最为便利的路径:

A-〉B-〉C-〉D-〉E-〉F-〉A

行程

=588+129+483+1288+440+825=3753

公里;

A-〉B-〉C-〉D-〉F-〉E-〉A

行程

=588+129+483+1100+440+1096=3836

公里;

A-〉B-〉C-〉E-〉F-〉D-〉A

行程

=588+129+1638+440+1100+334=4229

公里;

A-〉B-〉C-〉E-〉D-〉F-〉A

行程

=588+129+1638+1288+1100+825=5568

公里;

A-〉B-〉D-〉C-〉E-〉F-〉A

行程

=588+448+483+1638+440+825=4422

公里;

A-〉B-〉D-〉C-〉F-〉E-〉A

行程

=588+448+483+1346+440+1096=4401

公里;

A-〉B-〉D-〉E-〉C-〉F-〉A

行程

=588+448+1288+1638+1364+825=6151

公里;

A-〉B-〉D-〉E-〉F-〉C-〉A

行程

=588+448+1288+440+1364+542=4670

公里;

A-〉B-〉D-〉F-〉C-〉E-〉A

行程

=588+448+1100+1346+1638+1096=6234

公里;

A-〉B-〉D-〉F-〉E-〉C-〉A

行程

=588+448+1100+440+1638+542=4756

公里;

 

A-〉C-〉B-〉D-〉E-〉F-〉A

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

行程=542+129+448+1288+440+825=3672公里;

 

A-〉C-〉B-〉D-〉F-〉E-〉A

 

行程=542+129+448+1100+440+1096=3755公里;

 

A-〉C-〉B-〉E-〉D-〉F-〉A

 

行程=542+129+1675+1288+1100+825=5559公里;

 

A-〉C-〉B-〉E-〉F-〉D-〉A

 

行程=542+129+1675+440+1100+825=4711公里;

 

A-〉C-〉B-〉F-〉D-〉E-〉A

 

行程=542+129+1410+1100+1288+1096=5565公里;

 

A-〉C-〉B-〉F-〉E-〉D-〉A

 

行程=542+129+1410+440+1288+334=4143公里;

 

A-〉C-〉D-〉B-〉E-〉F-〉A

 

行程=542+483+448+1675+440+825=4413公里;

 

A-〉C-〉D-〉B-〉F-〉E-〉A

 

行程=542+483+448+1410+440+1096=4419公里;

 

A-〉C-〉D-〉E-〉B-〉F-〉A

 

行程=542+483+1288+1675+1410+825=6223公里;

 

(2)用LINGO软件求解

 

LINGO的程序:

 

sets:

 

city/A,B,C,D,E,F/:

u;

 

link(city,city):

w,x;

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

endsets

 

data:

 

w=0,588,542,334,1096,825

 

588,0,129,448,1675,1410

 

542,129,0,483,1638,1346

 

334,448,483,0,1288,1100

 

1096,1675,1638,1288,0,440

 

825,1410,1346,1100,440,0;

 

enddata

 

n=@size(city);

 

min=@sum(link:

w*x);

 

@for(city(k):

 

@sum(city(i)|i#ne#k:

x(i,k))=1;

 

@sum(city(j)|j#ne#k:

x(k,j))=1;

 

);

 

@for(link(i,j)|

 

i#gt#1#and#j#gt#1#and#i#ne#j:

 

u(i)-u(j)+n*x(i,j)<=n-1;

 

);

 

@for(link:

@bin(x));

 

程序运转结果以下:

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

从答案可知:

最短距离为A→C→B→D→E→F→A最短距离3672。

 

4.2.6.最优连线问题

 

求5题中6个城市(A,B,C,D,E,F)的最优连线,城市之间的距离如表4.5所示。

 

解:

 

sets:

city/A

B

C

DE

F/:

u;

link(city,city):

w,x;

endsets

data:

!

to:

A

B

C

D

E

F;

w=

0

588

542

334

1096

825

!

fromA;

588

0

129

448

1675

1410

!

fromB;

542

129

0

483

1638

1346

!

fromC;

334

448

483

0

1288

1100

!

fromD;

工程数学4.图论(组合优化)实验Gxxxxxxxxxxxxxxxxxxxxx

 

10961675

1638

12880

440!

fromE;

8251

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

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1