基于改进遗传算法的TSP问题研究

104微电子学与计算机2006年第23卷第10期基于改进遗传算法的TSP问题研究

周涛1?2

(1陕西理工学院数学系.陕西议中723000)

(2西北工业大学计算机学院,陕西西安710072)

摘要:通过对遗传算法和两P问题特研究,提出了离散赌轮选择算手EPMx交叉算子和Dmulation变异算子等.时遗传算法的各个算子进行了改进。利用改进的遗传算法有效的解凌了鸭P问题.实验验证其与传统的解班方式相比有更好的收敛特性.解的准确性更好。

关键词:搬行商问题,遗传算法,赢散睹转选择算于,EPMx交叉算子,D咖ta60n变异算子

中圈分娄号:TP3l文献标识码:A’文章蝈母:1000—7180(2006)10_0104-03

TheStudyofTSPBasedonImproVedGeneticAlgod恤m

ZHOU7ra010

(1mparLm蛐tof胁Illl日,shaanxiuIlive穗-哆斫Technolo野,H蚰矗咖g723000,china)

(2sch00l0fc岫puterscie眦e,No曲we虬emPoM即hnicunive坤峨】【i,柚710072,ch如)

Ab打act:IlltlIi8p印ebGeMncAl伊d吐皿孤d幅Pwere8tIldied,砧creteBetWheel0fselect叩e豫tohEPMXCr∞帅veroper鲥oLDmu僦ion矾l忸d叫叩eratorw盯eprop08ed'池chbI呷阿Ve吲i60nalthreeopemt0璐.TsP岬M∞lvedeI五cien山uBillgtllisa190dthm.h8me幽,like鹪∞nverge肿e,vef扯坩鹄a糟舯wdbyelp棚m明tconLr8吕ted’酊t}lnmdi6仰almethod.

K町删Ⅱ由:_IsP'GA,Di日c陀tebetwheel0f

select,删X凹啪oveLDmu诅tionmut靠明

l引言

旅行商问题(删是一个典型的组合优化问题。并且是一个NP难题.其可能的路径总数与城市数目n是成指数型增长的.所以一般很难精确地求出其最优解,因而寻找出有效的近似求解算法就具有重要的意义。

遗传算法是美国Michi娜n大学的J.Holland教授于1975年首先提出ll】。遗传算法的核心思想为自然选择,适者生存。遗传算法作为一种模拟生物进化的一种算法.提供了一种求解复杂系统优化问题的通用框架。它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性.具有自组织、自适应和自学习性。

2遗传算于的改进

2.1编码及适应度函数的构造

2.1.1编码

编码问题是遗传算法应用中的首要问题,也是设计遗传算法时的一个关键步骤。基本的编码方法收稿日期:2006一04_28

基金项目:陕西理工学院基金项目(YJG0524)可以分为三大类:二进制编码、浮点数编码(实数编码)、符号编码。几种方法的具体介绍和相互比较可以参考文献f11。

在解决1sP问题时.多采用了实数编码方式,具体实现方式是:用遍历城市的顺序作为编码方式。如:某染色体编码为1234567891.表示从城市1开始经过依次城市2,3,4…最后到城市1终止。城市与城市之间的路径长度用一个路径矩阵记录.如果是对称路径.则此矩阵是对称矩阵。此处讨论的是对称阵。第f个染色体的编码为:

置;吼啦…cwm

其中q表示第i个城市,唾≠q,哦E{1,2,….I\,1,0<i,j<?v.Ⅳ是城市数目。

2.1.2适应度函数的构造

在遗传算法进行搜索时只以适应度函数为依据.利用种群中每个个体的适应度值来进行搜索,一般而言.适应度函数是直接由目标函数变换而成的.有时也要根据问题的要求.对目标函数进行一定的适应度尺度变换(Fittnessscali雌)。对于’rsP问题而言.路径长度为:

 

2006年第23卷第10期微电子学与计算机105

如7增地=乞如f(墙,%I)+幽t(蛳,嘶)

I=】

其中d缸(儡,崎)表示城市%和城市q之间的距离。一般来说.适应度是越高越好.而在码P问题中.如果适应度是所经过的路径长度之和.路径长度是越小越好.为了使两P问题的适应度与一般遗传算法中的适应度一致.这里用路径长度的倒数表示适应度。但当路径非常大(例如:10000)。这样其适应度的最高数据位将在小数点后的第四位.这样不利于计算,为此要进行尺度变换。为确保适应度有两位整数.此处将适应度放大L倍(在本例中L=1000)。因此适应度函数的表达式为:

丘Mss:百r————L.——一×工

艺如l(啦,时1)+如t(口Ⅳ,Ⅱ1)

?;1

2.2选择算子的改进策珞与实现

一般选择算子设计使得个体被选中并遗传到下一代群体中的概率与该个体的适应度大小有关。适应度越大.被选中的概率越大.反之越小。经典的是用适应度成比例的概率方法。但是这里存在的问题是由于许多个体的适应度比侧很小儿乎没有机会复制个体,从面被过早地淘汰.这样整个群体的多样性就无法得到保证。这里采用一种新的赌轮选择算子一离散赌轮选择算子.有效地避免了这个问题。其具体措旌是:例如有个体s1,s2。s3,s4,其所占的适应度比例分别是2%.48%,49.2%。O.8%。在保持这个比例的情况下对这个取值范围放大1000倍.按照顺序在1—1000内分别占不同的区间.当随机函数产生l一1000以内的数时,即使是54。也有可能被选中,从而较好的保持了群体的多样性。如表1所示。

表1适应度的尺度变换表

染色体适应度比例占的数的个数在l。l∞O内占的区间S12%201—20

S248%4802l一5∞

S349.2%492501册

s408%8993—10002.3交叉算子的改进与实现

遗传算法中交叉算子主要是用来产生新的个体。其主要是指从选择算子产生的配对库中随机的取出两个染色体.然后按照某种方式相互交换其部分基因.从而形成两个新的个体。针对髑P问题.由于采用的编码方式是遍历城市的序列.因此在一个遍历城市的路径中出现一个城市多次.也就是说违背了聪P问题中每个城市只走一遍的规定.引人非法路径。为解决重复城市的问题.目前已经有各种各样的这类问题的处理方法.例如PMX部分匹配交叉、0X部分交叉、cX循环交叉。在这里对PMX交叉算子进行了更为深入的研究.提出了扩展的EPMX交叉算子。

2,3,lPMx交叉算子

PMx交叉算子是Goldber叠和unde于1985年提出的日。PMx交叉算子可以分两步实现.对于染色体A和8.首先要找到满足要求的两个交叉点,两个交叉点之间的区域称之为匹配区域.其长度为Len.匹配区域以外的区域称之为交叉区域。匹配区域必须满足下面条件之一:(1)基因相同,但基因的排列顺序可以相同。可以不同;(2)匹配区域中,投有一个基因是相同的。

2.3.2PMX交叉算子的不足

该算子对匹配区域中的基因有严格的要求。也就是说对匹配区域内部分基因相同,部分基因不同的情况无法实现交叉。在PMx交叉算子中,首先寻找这样的匹配区域是一件很费时的工作.不是任意两个染色体都是可以找到这样的匹配区域。即使能找到,有的染色体匹配区域多.而有的匹配区域就比较少。甚至可能因为找不到满足条件的匹配区域而导致整个群体停止进化:其次寻找匹配区域导致交叉位不具有随机性。下面结合例1来讨论:例1:A=1234567891B=1428956371

第一步:随机产生交叉位置。这里产生的是4和7(在A,口染色体中的匹配区域中。有相同的基因5,其它基因则不同)。

A=123f456I7891船142f895f637l

第二步:交换两点确定的交叉区域的基因,见下面A’.Bj

A’=142I456I637lB7:123l895I789l

第三步:根据交叉区域的对应规则.将交叉区域以外的基因用对应规则进行替换,即:8—4,9¨5.5—6替换结果如下A”.∥

A”=182I4561537l曰”=123l89517451

其结果为:在A”。∥。

观察上面的一对染色体.可以看到在匹配区域中基因“5”重复出现。之所以引起某基因重复的原因是:在匹配区域中.部分基因相同.部分基因则不同。

2.3.3EPMx交叉算子

针对PMx交叉算子的上述两个缺点.对PMx

 

106微电子学与计算机2006年第23卷第10期

算子进行改进.提出了扩展的PMx交叉算子EPMx.有效的解决了上述缺点,实现了在任意位嚣的单点交叉。下面结合例2来说明。

例2:A=1234567891口=142895637l

第一步:任意找到一个交叉位置.这里取crs∞B=6.这样将染色体分成前后两部分。前半部分就是匹配区域.后半部分称之为交叉区域。并将A。口染色体的匹配区域中的基因分别保留在o.6中,如下所示:

A=1234567891B=1428956371

8=123456=14289

第二步:利用匹配区域来寻找位置映射规则。从前向后扫描n.6两个字符串,把相同的字符向前移动.如果有多个相同的字符.移动以后其相对顺序不能改变.因为相对位置中蕴含着一种较好的基因结构.在交叉过程中要尽可能避免对这种结构的破坏。移动以后的n。6串结构如下:

∥=124356’=12489

这里相同的字符有1,2,4三个。首先扫描到的是字符1.所以字符1在首位.其次是第二个扫描到的相同字符是2.最后一个是第三个扫描到的相同字符是4。从第4个位置开始给出位置映射规则。其规则是:3++8,5¨9。

第三步:根据位置映射规则对交叉区域中的相应基因进行替换。

J4,=1234567351占,_142899687l

第四步:对交叉区域进行交叉操作。

A7名12345l9687l曰’名142896735l

从上面的过程可以很容易看到.这里提出的EPMx交叉算子.可以在任意两染色体的任意位置进行单点交叉操作。不受染色体和位簧的约束.具有很大的灵活性。

2.4D加岫60n变异算子及实现

变异算子的目的主要是来调整整个编码中的个别基因值,可以从局部逼近最优解.从而提高了遗传算法的全局搜索能力.同时保持了生物体的多样性,防止早熟现象的发生。髑P问题有个最基本的要求:即在同一路径中不能有重复的城市(除开始城市与终结城市)。一般的变异算子往往会导致非法路径的产生。为了能够实现变异,并且不引入非法路径.这里提出一种新的变异算子Dmut“0n,其实现原理如例3所示。

例3:A=l357468921

第一步:随机产生一变异位置如mutpos=5:

第二步:随机产生一基因(或称为城市编号)如raIIdgen=2;

第三步:保留原染色体变异位的基因AfⅡmt.pos]=4,并用随机产生的基因mndgen替换原染色体变异位的基因4.结果是:^=135726892l。

第四:在染色体^中除变异位mI咖B外的其他位置,找与随机产生的基因mdgen相问的基因,并用我们原来保留的原基因Afmutp08】=4进行替

换。如下:

A:l357268941

针对.IsP问题这里提出了一种新的变异算子Dlnutation,它不受变异位置的影响。有较好的灵活性。但他每进行一次变异就改变r两个位置的基因,这等于普通变异算子进行了丽次变异。因此.用这种变异算子进行变异时.所选的变异概率应低于普通变异概率.一般低于普通变异概率的两倍左右为佳。

3实验结果的讨论

根据上述理论.这里用c语言在PenHumⅣ上实现了12个城市的强P问题。由于这里程序的终止条件是用迭代次数控制的.所以最优个体未必最早出现在最后一代。用Mad8b6.1对大量实验数据进行了分析.对PMx交叉算子和PM】LGA进行了比较,遗传算法的执行情况如图1、图2所示。

圜l初始群体200

在图1、图2中.可以看到平均适应度基本呈上升趋势.最优个体适应度虽然出现振荡.但是总体呈上升趋势。最终都收敛。图1的收敛速度比图2的收敛速度来得快.并且其最大适应度不足90,远小于图2的最大适应度100.也就是说

(下转第110页)

 

1lO微电子学与计算机2006年第23卷第10期

验一和实验三中.由于任务多而资源少以至于有些用户的任务得不到满足只能被拒绝.这时被接收的任务在资源上的运行效率都很高:而实验二中.由于资源相对来说比较富余,资源负载较轻.空闹率较高.故此时的资源平均运行效率只有61.5%。5结束语

本文针对计算网格环境下以OoS为指导的任务调度,提出了一种有效的启发式算法。用户在提交任务的同时,指定其OoS需求及相应的效用函数,通过效用函数.可以计算用户任务在一定条件下完成所能获得的效用。还提出了一个综合考虑用户效用及任务完成时间的目标函数来指导启发式算法.通过该目标函数,算法在考虑用户Oos需求的同时兼顾了寻求较小任务完成时间的目标。另外.为了更好的

适应网格计算环境的动态性和自治性.在任务收集

的过程中.我们采用了重复收集的方法以获得更多的任务和资源信息。最终的实验结果表明.该算法能够较好的满足不同用户的需求并提升了系统利用

率.

(上接第l嘶页1

参考文献:

Fa“gpe“gDong,S卅imG.Aklscheduli“gaIg嘶lhlns

for

gnd

computi“g:statenfme

8n

and

ope“pI_0blems【D].

technlcaI

re呻n.S【:hool“comP“n“昏Quecn勺Unive商ty.

Kingston,Onta^o,J8nuary,2006

嘲xHe,xSun+G

h8zew8kiQosgujded

Min—Min

h眦ds如

for印dtask8chedll】i“g

们.Jo啪吕l

of∞mputer∞ience

8nd

technol0盯,sPec瑚issueon咖dcomputill昏201)3

【3】

s融umarVe“ug叩a1.Rajkum丑r

B“yya.AdeBdline

and

budget

collshi珊d

scheduli“g且190d出m

for

escience

8ppb。ations

on

data鲥d日[A].IcA3PP2∞5:60—72

Hais如gWu,Bi册yRavindmn,Emu出8

Je眦en:0nthe

jointu曲‘yaccⅢaImodel【A】.I阳Ps2004

15】丁箐,陈国良,顾钧.计算网格环境下一个统一的资源映

射策略U】.软件学报,2002,13(7):1303一1306

作者简介:

颇桐男,(1982一),硕士。研究方向为分布式计算、网格计算、计算机网络。

拳巍女,(1967一),副教授。研究方向为网络体系结构、自

主计算。

李云春男.(1941一).讲师。研究方向为计算机网络、自主计算。

了鸭P问题。与没有改进前的算子经实验比较.具

有保持群体多样性,有效的延缓了早熟现象的发生,能够寻找到的更优的路径的特点。参考文献:

fl】王小平,曾立明.遗传算法一理论.应用与软件实觋fM].

西安:西安交通大学出版社.2000

【2】任庆生,曾进等.交叉算子的极限一致性m.计算机学

报,2002,25(12):1405—1410

[3]粱艳春.冯大鹏等遗传算法求解旅行商问题时的基因

片断保序口】.系统工程理论与实践,2000[4】

¨tkeJD,AnlmpmvedsoIu60n

t0

tI|e蛔veling

saleBmall图2EPMx初始群体200problemwilht}Iousandsofnot|es.AcMcommun1984.27:

EPM)(_GA相对于PM)【-GA延缓了早熟,找到r1227—1236

更短的路径。[5】c。ldbe曙DE.Genetjc出嘶山Trl8

in

seawh。opti“zatioⅡ

and

m们hineleaming[M】.MA:Addi蝴1We91ey,1989

4结束语

这里由于对赌轮选择算子进行了合理的优化、作者简介:

星兰黑奎三萋警登五黧:。册:缎竺苎氛霎习罢:蠹嚣蠢≯碱加艄艄别、算子实现了变异.在这些改进的基础上较好的解决

…’+

一……一………

 

基于改进遗传算法的TSP问题研究

作者:周涛, ZHOU Tao

作者单位:陕西理工学院,数学系,陕西,汉中,723000;西北工业大学,计算机学院,陕西,西安,710072

刊名:

微电子学与计算机

英文刊名:MICROELECTRONICS & COMPUTER

年,卷(期):2006,23(10)

被引用次数:15次

参考文献(5条)

1.王小平;曹立明遗传算法--理论、应用与软件实现 2000

2.任庆生;曾进交叉算子的极限一致性[期刊论文]-计算机学报 2002(12)

3.梁艳春;冯大鹏遗传算法求解旅行商问题时的基因片断保序[期刊论文]-系统工程理论与实践 2000(4)

4.LitkeJ D An improved solution to the traveling salesman problem with thousands of nodes[外文期刊] 1984

5.Goldberg D E Genetic algorithms in search,optimization and machine learning 1989

本文读者也读过(10条)

1.李华中.杨景花.LI Hua-zhong.YANG Jing-hua遗传算法在TSP问题中的应用[期刊论文]-电脑知识与技术2010,6(3)

2.郑继东.胡斌.徐华山.陆勇敢.赵新国焦作煤矿区环境问题及对策[期刊论文]-能源环境保护2003,17(6)

3.王莉.章春梅面向TSP问题的免疫遗传算法研究[期刊论文]-科技资讯2009(31)

4.王会.WANG Hui基于自适应评价函数的遗传算法求解TSP问题[期刊论文]-电脑知识与技术2008,2(12)

5.李金城.滕红丽.LI Jin-cheng.TENG Hong-li改进免疫算法在旅行商问题中的应用[期刊论文]-常熟理工学院学报2008,22(4)

6.周涛.傅忠谦.周佩玲.张建荣.张德学基于遗传算法的大规模流量工程问题求解[期刊论文]-计算机应用2003,23(6)

7.周聪.郑金华.ZHOU Cong.ZHENG Jin-hua一种改进的TSP启发交叉算子[期刊论文]-计算机工程与应用

2008,44(9)

8.刘立平.王建华.Liu Liping.Wang Jianhua遗传算法在TSP问题中的应用及改进[期刊论文]-电脑学习2009(6)

9.李绍中.LI Shao-zhong基于自适应选择算子遗传算法的TSP问题优化[期刊论文]-韶关学院学报2009,30(12)

10.纪怀猛.蔡海滨.Ji Huaimeng.Cai Haibin一种基于改进遗传算法的TSP问题求解方法[期刊论文]-计算机与数字工程2009,37(4)

引证文献(15条)

1.李俊青.王玉亭.潘全科.李元振混合离散和声搜索算法求解旅行商问题[期刊论文]-微电子学与计算机 2009(3)

2.严勇一种求解航线优化问题的改进蚁群-遗传算法[期刊论文]-微电子学与计算机 2009(2)

3.李晨晖.杜友福.张兴旺.刘俊遗传算法TSP问题的实现及免疫优化[期刊论文]-电脑知识与技术(学术交流)2007(4)

4.陈蕾.陆金桂.魏红.王迷迷基于无线射频定位系统的网络拓扑优化[期刊论文]-微电子学与计算机 2009(12)

5.纪怀猛.蔡海滨一种基于改进遗传算法的TSP问题求解方法[期刊论文]-计算机与数字工程 2009(4)

6.陈妍峰.田有先一种改进并行遗传算法解决TSP[期刊论文]-计算机工程与应用 2008(27)

7.宋丽娟.宋志国绿色运输的路径优化问题分析[期刊论文]-中国管理信息化 2008(6)

8.刘振波.方志刚.徐洁智能导游系统最短路径的遗传算法实现[期刊论文]-计算机工程与应用 2008(30)

9.王建忠.唐红TSP问题的一种快速求解算法[期刊论文]-微电子学与计算机 2011(1)

10.师文庆振镜扫描式激光点焊技术中扫描路径的优化[期刊论文]-应用激光 2008(4)

11.张晓如.高尚求解旅行商问题的蚁群遗传混合算法[期刊论文]-微电子学与计算机 2009(4)

12.罗旭.肖俊.李辉鹏遗传算法求解巡回旅行商问题的最优参数组合[期刊论文]-武汉理工大学学报(信息与管理工程版) 2010(3)

13.范展.梁国龙.林旺生.刘凯求解TSP问题的自适应邻域搜索法及其扩展构[期刊论文]-计算机工程与应用

2008(12)

14.徐江乐.肖志涛.赵京华基于遗传算法的改进智能优化蚁群算法[期刊论文]-微电子学与计算机 2011(8)

15.师文庆.杨永强.黄延禄激光无铅钎焊速度的影响因素[期刊论文]-强激光与粒子束 2010(7)

本文链接:https://www.360docs.net/doc/80656890.html,/Periodical_wdzxyjsj200610034.aspx

相关文档
最新文档