- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
旅行商问题演化算法在NOW 的并行算法设计
李永锋 李元香
(武汉大学软件工程国家重点实验室 湖北 武汉 430072)
E-mail:llyyff78@
摘 要 本文首先介绍了当前求解TSP问题最好的演化算法之一:GT算法。文中重点设计了在
NOW上求解旅行商问题GT算法的并行算法,详细描述了设计思路,设计策略。还给出了相当详
细的并行算法描述。文中设计的并行算法已经在NOW上的PVM平台上实现。
关键词 NOW ,演化计算,旅行商问题,并行计算
1 引言
旅行商问题,即TSP(Traveling Salesman Problem),是NP-难(NP-hard)问题。与VLSL
制造,输油管道铺设,电路布线等重大规模应用相关。旅行商问题是一个研究很广泛的NP难度
问题。这个问题的定义是相当简单,但它是一个最具有挑战性的搜索问题。
GT算法是目前解决旅行商问题最快的演化算法之一。但是受制于单台计算机的计算能力,
求解问题的规模和速度十分有限。比如说,计算一次10000个城市的问题需要两天多。并行计算
是其根本出路。在当前,工作站机群NOW(Network of Workstations)是实现并行计算的一种主
流技术。我们算法的设计是基于NOW这种并行机系统的。
2 .GT顺序算法的详细描述如下:
(其中rand()产生[0,1)的浮点随机数,eval(S)是S的路经长,eval(S)eval(Si)如果S
好于Si时取真值,否则取假值。)
随机初始化群体P
while(不满足结束条件)do
{
每一个个体Si∈P do
{
S=Si
从S中随机选择一个城市c
repeat
{
if(rand()p)
从S剩下的城市中随机选择一个城市c
else
{
从P中随机选择一个个体
作者简介:李永锋,硕士研究生,主要研究方向为并行计算,演化计算。李元香,博士生导师,
主要研究方向为并行计算,演化计算。
1
将c赋值为被选择的个体中城市c的下一个城市
}
if (在个体S中城市c的前一个或者后一个城市是c)
离开repeat循环
倒置个体S中从城市c的下一个城市到城市c的部分
c=c
}
if(eval(S)eval(Si))
Si=S
}
}
3 .并行方案的选择
为了并行化,问题的分解可以有两种形式。一种是域分解,即将这个问题区域分解为若干个
较小的问题区域,然后对其并行求解;一种是功能分解,即将问题分解为若干个子问题,然后
对其并行求解。
在这个问题上,域分解可以这样设计:让每个处理器独立地运行于个体的一个隔离子种群上,
通过迁移与其他处理器周期地共享它的那些最好个体。功能分解可以这样设计:让每个处理器
在一个公共的种群上完成算法中的每一步的一部分选择,交叉和突变。
域分解也能有效的并行化算法,但它对于加速整个计算几乎不起什么作用!与将种群信息
分布到所有处理器所需时间加上通信交换所需时间相比,整个计算时间主要依赖于计算各种演
化操作的相对时间。因此整个过程的加速比将所实际通信的限制。
基于这些考虑,我们选择域分解的并行方案为宜。
4 .程序模式的设计
一般情况下,相应于域分解和功能分解两种形式,编程模式对应于 SPMD(单程序多数据流)
和 MPMD(多程序多数据流)两种。
SPMD 形式的程序的两种方式:主机/节点 (Host/Node )式和无主机 (Hostless )式。虽然在
这个算法中,如果有一个主机程序是有用的:申请和释放处理器,加载节点
文档评论(0)