遗传算法求解TSP问题.docx

上传人:b****6 文档编号:5808280 上传时间:2023-01-01 格式:DOCX 页数:16 大小:89.73KB
下载 相关 举报
遗传算法求解TSP问题.docx_第1页
第1页 / 共16页
遗传算法求解TSP问题.docx_第2页
第2页 / 共16页
遗传算法求解TSP问题.docx_第3页
第3页 / 共16页
遗传算法求解TSP问题.docx_第4页
第4页 / 共16页
遗传算法求解TSP问题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

遗传算法求解TSP问题.docx

《遗传算法求解TSP问题.docx》由会员分享,可在线阅读,更多相关《遗传算法求解TSP问题.docx(16页珍藏版)》请在冰豆网上搜索。

遗传算法求解TSP问题.docx

遗传算法求解TSP问题

实验六遗传算法求解TSP问题

一、实验目的

熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传求解函数优化问题,理解求解TSP问题的流程并测试主要参数对结果的影响。

二、实验内容

1、参考实验系统给出的遗传算法核心代码,用遗传算法求解TSP的优化问题,分析遗传算法求解不同规模TSP问题的算法性能。

2、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。

3、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。

4、上交源代码。

三、遗传算法求解TSP问题的流程图

 

四、遗传算法求解不同规模的TSP问题的算法性能

(1)遗传算法执行方式说明:

适应度值计算方法:

当前路线的路径长度

个体选择概率分配万法:

适应度比例万法选择个体方法:

轮盘赌选择

交叉类型:

PMX交叉

变异类型:

两点互换变异

(2)实验模拟结果:

城市个数

时间(ms)

5

16925:

10

16630

15

18833

20「

22596:

25

24159

30

30289

35「

35239:

40

38608

45

40032

50

437571

55

47746

60

58143

65

59942

70

64361

75

71417

O

B

10T52025303540<5505fi6065?

075SJ

坡市勒蚤

7

G5J43

I叵盘豈瑕财

图1-1

(3)分析

由图1-1可知,遗传算法执行时间随着TSP问题规模的增大而增大,并且大致为线性增长。

五、不同参数下的计算结果对比

(1)种群规模对算法结果的影响

实验次数:

10最大迭代步数:

100

交叉概率:

0.85

变异概率:

0.15

表1-1

种群规模

适应度值

最优路径

10

25.264

4-5-8-7-6-3-1-0-9-2

20

26.3428

2-9-1-0-3-6-7-5-8-4

30

25.1652

1-3-6-7-5-8-4-2-9-0

50

25.1652

0-1-3-6-7-5-8-4-2-9

80

25.1652

9-0-1-3-6-7-5-8-4-2

100

25.1652

1-0-9-2-4-8-5-7-6-31

150

25.1652

5-8-4-2-9-0-1-3-6-7

200

25.1652

1-3-6-7-5-8-4-2-9-0

250

25.1652

3-1-0-9-2-4-8-5-7-6H

300

25.1652

5-8-4-2-9-0-1-3-6-7

如表1-1所示,显然最短路径为25.1652m最优路径为1-0-9-1-3-6-7-5-8-4-2或

3-1-0-9-248-5-7-6,注意到这是一圈,顺时针或者逆时针都可以。

当种群规模为10,20时,并没有找到最优解。

(2)交叉概率对算法结果的影响实验次数:

15

种群规模:

25

最大迭代步数:

100

变异概率:

0.15

实验结果:

表1-2

交叉概率

最好适应度

最差适应度

平均适应度

最优解

运行时间

0.001

28.0447

36.6567

32.6002

9-2-6-0-5-4-8-7-3-1

310

0.01

27.0935

34.9943

32.1495

7-8-3-1-9-2-6-0-5-4

260

0.1

28.0447

35.3033

31.9372

7-3-1-9-2-6-0-5-4-8

300

0.15

28.0447

34.1175

31.2183

0-5-4-8-7-3-1-9-2-6

270

0.2

28.7108

33.9512

30.9035

3-1-9-2-6-5-0-4-7-8

280

0.25

28.0447

35.1623

30.7456

1-3-7-8-4-5-0-6-2-9

260

0.3

27.0935

31.9941

29.9428:

8-3-1-9-2-6-0-5-4-7

290

0.35

27.0935

32.8085

30.9945

9-1-3-8-7-4-5-0-6-2

270

0.4

27.0935

32.5313

30.1534

1-3-8-7-4-5-0-6-2-9

279

0.45

27.0935

33.2014

30.1757

8-3-1-9-2-6-0-5-4-7

456

0.5

28.0934

33.6307

30.9026:

5-0-2-6-9-1-3-8-7-4

663

0.55

27.0935

33.5233

29.1304

1-9-2-6-0-5-4-7-8-3

520

0.6

27.0935

33.2512

30.7836

3-1-9-2-6-0-5-4-7-8

546

0.65

28.0447

33.7003

30.9371

5-4-8-7-3-1-9-2-6-0

596

0.7

27.0935

32.0927

29.9502

9-1-3-8-7-4-5-0-6-2

571

0.75

28.0447

32.4488

30.3699

0-5-4-8-7-3-1-9-2-6

559

0.8

27.0935

32.1551

29.9382

7-4-5-0-6-2-9-1-3-8

358:

0.85

27.0935

34.5399

30.3594

5-0-6-2-9-1-3-8-7-4

360

0.9

27.0935

32.6273

30.69

6-0-5-4-7-8-3-1-9-2

375

0.95

27.0935

32.4672

29.919

6-2-9-1-3-8-7-4-5-0

476

(注:

红色表示非最优解)

在该情况下,交叉概率过低将使搜索陷入迟钝状态,得不到最优解。

(3)变异概率对算法结果的影响实验次数:

10

种群规模:

25

最大迭代步数:

100

交叉概率:

0.85

实验结果:

表1-3

变异概率

最好适应度

最差适应度

平均适应度

最优解

运行时间

0.001

29.4717

34.732

32.4911

0-6-2-1-9-3-8-7-4-5

245

0.01

29.0446

34.6591

32.3714

8-4-5-0-2-6-9-1-3-7

274

0.1

28.0934

34.011

30.9417

5-0-2-6-9-1-3-8-7-4

250

0.15

27.0935

32.093

30.2568

6-0-5-4-7-8-3-1-9-2

246

0.2

27.0935

32.2349

30.3144

8-7-4-5-0-6-2-9-1-3

282

0.25

27.0935

32.718

30.1572

4-5-0-6-2-9-1-3-8-7

245

0.3

27.0935

32.4488

30.2854

0-5-4-7-8-3-1-9-2-6

252

0.35

27.0935

33.3167

30.7748

1-3-8-7-4-5-0-6-2-9

266

0.4

29.0446

34.3705

31.3041

2-0-5-4-8-7-3-1-9-6

362

0.45

27.0935

31.374

29.6816

2-6-0-5-4-7-8-3-1-9

438

0.5

27.0935

32.3752

30.2211

2-9-1-3-8-7-4-5-0-6

431

0.55

27.0935

33.3819

30.6623

1-3-8-7-4-5-0-6-2-9

492

0.6

28.0934

33.2512

30.36

1-3-8-7-4-5-0-2-6-9

417

0.65

27.0935

32.7491

30.0201

3-1-9-2-6-0-5-4-7-8

434

0.7

28.7108

32.4238

30.785

1-3-8-7-4-0-5-6-2-9

432

0.75

27.0935

31.8928

30.2451

1-9-2-6-0-5-4-7-8-3

475

0.8

28.0934

31.6135

30.3471

9-1-3-8-7-4-5-0-2-6

327

0.85

29.662

33.2392

31.1585

2-9-1-3-7-8-4-0-5-6

314

0.9

28.0447

32.0387

30.4152

0-5-4-8-7-3-1-9-2-6

396

0.95

28.0447

31.3036

30.0067

9-1-3-7-8-4-5-0-6-2

436

又表1-3可知,当变异概率过大或过低都将导致无法得到最优解。

注:

(2)(3)的实验数据与

(1)的实验数据不同,详见附录。

六、不同变异策略和个体选择概率分配策略对算法结果的影响

(1)两点互换变异与插入变异的比较:

试验次数(CASNUM):

10

城市数(POINTCNT):

10

种群规模(POPSIZE):

100

最大迭代步数(GENERATIONS):

100

交叉概率(PC):

0.85

变异概率(PM):

0.15

选择个体方法:

轮盘赌选择

交叉类型:

PMX交叉

个体选择概率分配方法:

适应度比例方法

a.变异类型:

两点互换变异

表1-4两点互换变异程序结果

骨口.序号

最好适应度

最差适应度

平均适应度

最优解

运行时间

1

28.0934

30.4229

29.0891

6-2-0-5-4-7-8-3-1-9

1199

2

27.0935

31.1417

28.9841

4-5-0-6-2-9-1-3-8-7

1678

3

27.0935

30.4228

29.0604

0-5-4-7-8-3-1-9-2-6

1940

4

27.0935

30.3703

28.8787

1-3-8-7-4-5-0-6-2-9

1756

5

27.0935

31.0619

29.0755

3-1-9-2-6-0-5-4-7-8

1885

6

27.0935

31.1589

29.3942

2-6-0-5-4-7-8-3-1-9

1936

7

28.0447

31.0619

29.7648

6-2-9-1-3-7-8-4-5-0

1772

8

29.0446

31.3475

29.8415

4-5-0-2-6-9-1-3-7-8

1980

9

27.0935

30.6143

29.059

0-6-2-9-1-3-8-7-4-5

1940

10

27.0935

30.5585

29.0811

9-2-6-0-5-4-7-8-3-1

1872

11

27.0935

31.0171

29.4264

0-5-4-7-8-3-1-9-2-6

1517

12

27.0935

31.3036

29.2414

1-9-2-6-0-5-4-7-8-3

1541

13

27.0935

32.0255

29.0789

0-6-2-9-1-3-8-7-4-5

1517

14

P27.0935

31.516

P28.8906

0-6-2-9-1-3-8-7-4-5

1345

15

27.0935

30.4228

29.0226

6-0-5-4-7-8-3-1-9-2

1377

16

27.0935

30.4081

28.9081

0-6-2-9-1-3-8-7-4-5

1853

17

27.0935

30.4081

29.3316

7-8-3-1-9-2-6-0-5-4

1522

18

27.0935

30.0203

28.5243

1-3-8-7-4-5-0-6-2-9

1601

19

28.0447

31.1404

29.567

2-9-1-3-7-8-4-5-0-6

1609

20

27.0935

31.1417

29.5359

7-4-5-0-6-2-9-1-3-8

1311

平均值

27.3361

30.8782

29.1877

1657

b.变异类型:

插入变异

表1-5插入变异程序结果

骨口.序号

最好适应度

最差适应度

平均适应度

最优解

运行时间

1

27.0935

31.4753

28.8453

2-6-0-5-4-7-8-3-1-9

1388

2

27.0935

29.662

28.9168

5-0-6-2-9-1-3-8-7-4

1355

3

27.0935

29.6631

28.902

1-9-2-6-0-5-4-7-8-3

1637

4

28.0447

30.5241

29.5119

4-5-0-6-2-9-1-3-7-8

1164

5

27.0935

31.0575

29.4682

2-6-0-5-4-7-8-3-1-9

1245

6

27.0935

29.662

28.5546

2-6-0-5-4-7-8-3-1-9

1222

7

28.0447

30.8205

29.748

3-1-9-2-6-0-5-4-8-7

1148

8

27.0935

30.5241

29.3907

1-9-2-6-0-5-4-7-8-3

1742

9

27.0935

30.423

:

28.6878

0-6-2-9-1-3-8-7-4-5

2064

10

27.0935

30.4081

28.72

5-0-6-2-9-1-3-8-7-4

1518

11

27.0935

31.374

29.3282

4-5-0-6-2-9-1-3-8-7

1240

12

27.0935

30.523

28.5544

1-3-8-7-4-5-0-6-2-9

1204

13

27.0935

30.8205

29.0508

0-6-2-9-1-3-8-7-4-5

1734

14

27.0935

31.1177

29.5905

0-5-4-7-8-3-1-9-2-6

1532

15

27.0935

30.523

29.1904

4-5-0-6-2-9-1-3-8-7

1483

16

27.0935

30.4081

28.8061

5-0-6-2-9-1-3-8-7-4

1282

17

27.0935

31.7639

29.4591

6-0-5-4-7-8-3-1-9-2

1485

18

27.0935

31.1589

29.1614

4-5-0-6-2-9-1-3-8-7

1601

19

27.0935

30.4081

28.5974

2-6-0-5-4-7-8-3-1-9

1507

20

27.0935

[30.6143

[28.8036

3-1-9-2-6-0-5-4-7-8

1234

平均值

27.18862

30.6465

29.0643

1439

分析:

两点互换变异20次模拟中,4次得到非最优解;而插入变异只有2次;插入变异的最好适应度平均值比两点互换变异小0.14755,最差适应度平均值和总的

适应度平均值都比两点互换下,并且在Release下,运行时间前者比后者快

218.3ms。

可见在该条件下(交叉概率,变异概率,种群规模等),插入变异比两点互换变异的算法效果要好。

(2)个体选择分配策略

试验次数(CASNUM):

10

城市数(POINTCNT):

10

种群规模(POPSIZE):

100

最大迭代步数(GENERATIONS):

100

交叉概率(PC):

0.85

变异概率(PM):

0.15

选择个体方法:

轮盘赌选择

交叉类型:

PMX交叉

变异类型:

两点互换变异

a.个体选择概率分配方法:

适应度比例方法

同表1-4

b.个体选择概率分配方法:

非线性排序方式

表1-6非线性排序方式程序结果

骨口.序号

最好适应度

最差适应度

平均适应度

最优解

运行时间

1

27.0935

32.1721

30.0904

1-9-2-6-0-5-4-7-8-3

824

2

28.0447

31.297

29.9979

4-5-0-6-2-9-1-3-7-8

865

3

28.0934

32.1683

30.5601

2-0-5-4-7-8-3-1-9-6

895

4

27.0935

32.0973

30.3472

3-1-9-2-6-0-5-4-7-8

1067

5

27.0935

31.516

29.8531

4-5-0-6-2-9-1-3-8-7

887

6

27.0935

31.408

29.4637

5-0-6-2-9-1-3-8-7-4

727

7

27.0935

31.3742

29.9476

3-1-9-2-6-0-5-4-7-8

651

8

29.5231

31.8009

30.5543

0-5-4-7-8-1-3-9-2-6

901

9

27.0935

32.7147

30.391

0-5-4-7-8-3-1-9-2-6

749

10

29.5231

31.5688

30.2385

9-3-1-8-7-4-5-0-6-2

840

11

28.0447

31.7639

30.2617

3-7-8-4-5-0-6-2-9-1

1044

12

28.0447

31.6308

30.3267

1-3-7-8-4-5-0-6-2-9

732

13

27.0935

31.5688

29.4332

0-5-4-7-8-3-1-9-2-6

737

14

28.0934

31.1576

29.9646

4-5-0-2-6-9-1-3-8-7

672

15

28.0447

31.6626

29.7761

5-0-6-2-9-1-3-7-8-4

823

16

28.0934

31.5591

30.3473

2-0-5-4-7-8-3-1-9-6

732

17

27.0935

31.618

29.5988

7-8-3-1-9-2-6-0-5-4

697

18

27.0935

32.718

29.7033

1-3-8-7-4-5-0-6-2-9

672

19

28.0934

32.6801

30.2011

3-1-9-6-2-0-5-4-7-8

756

20:

28.7108

31.374

30.1589

4-0-5-6-2-9-1-3-8-7

1031

平均值

27.807545

31.79251

30.060775

815.1

分析:

个体选择概率分配方式采用非线性排序方式时,程序运行结果非常糟糕。

20

次模拟中竟然有11次无法找到最优解。

运行时间也很慢。

可见在该条件下(交叉概率,变异概率,种群规模等),个体选择概率分配方式不宜采用非线性排序方式,简单的适应度比例方法的效果明显更好。

七、实验心得与体会

通过本实验,更加深入体会了参数设置对算法结果的影响。

同一个算法,参数值不同,获得的结果可能会完全不同。

遗传算法是一种智能优化算法,它能较好的近似求解TSP问题,在问题规模比较大的时候,遗传算法的优势就明显体现出来,当然不能完全保证能得到最优解。

遗传算法的实现有些关键点,一是串的编码方式,本质就是冋题编码,串长度及编码形式对算法收敛影响极大;二是适应函数的确定,这是选择的基础,应具体问题具体分析,没有大一统的方法;三是自身参数的设定,其中重要的是种群规模,最大迭代次数,交叉概率和变异概率,通过实验我们可以看到种群规模、最大迭代次数对问题求解的精度有很大影响,交叉概率和变异概率的设定对问题的收敛速度和求解精度也都有极大的影响,但在不同条件下,这种影响表现的程度有很大的不同。

具体参数的设定应根据具体的领域问题。

八:

附录:

种群规模对算法的影响实验数据:

x

o

1.1

3.5

3

7

8

4

4.5

9

2

y

1.1

3

2

4

5.1

8

4

4.5

9

2

变异概率与交叉概率对算法的影响:

x

9

1.1

3.5

3.5

7

8

4

4.5

3

2

y

1.1

3

1

4

5.1

3

1

8.5

9

1

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

当前位置:首页 > 初中教育 > 理化生

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

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