论文部分内容阅读
TSP问题(traveling salesman problem)是一个组合优化方面的问题。它的定义很简单,求解难度却相当的大,吸引了许多包括数学、运筹学、物理、生物和人工智能等各个领域的研究者,已经成为并将继续成为测试组合优化新算法的标准问题。从理论上讲,使用穷举法不但可以求解TSP问题,而且还可以求出该问题的最优解。但是对现有的计算机来说,使用常规的穷举法在如此庞大的搜索空间中寻求最优解,几乎是不可能的。所以,各种求TSP问题近似解的优化算法应运而生了,本文所用到的演化算法也在其中。 研究表明,演化算法具有内在的并行性,正是这一点决定了它具有大规模并行求解的可能性。而且,演化算法总是会趋向于过早收敛,而并行演化算法能在一定程度上避免过早收敛的发生,所以研究并行演化算法有其必要性。上述两点决定了创造并行演化算法成为演化算法研究中很重要的一环。本文首先根据现有的并行演化算法的框架,实现了一种基于分布式环境的分布式演化算法,并做了实验来测试该算法的性能。然后,又按照自己的理解着手对其进行改良:首先,使迁移的个体数随群体规模、迁移间隔等参数变化,而不再恒定为1;其次,把各个演化进程之间的同步通讯方式更改为半同步通讯方式。实验数据说明,改良后的算法具有更好的收敛性能。 在此之后,本文提出了一种单机运行的多线程演化算法。多线程演化算法也是并行演化算法的一种,但是这方面的研究还处于起步阶段,没有现成的理论和框架可供使用。应该看到,多线程演化算法运行在单机上,所以计算能力不足以同其它的并行演化算法相提并论;但是由于该算法中的多个线程拥有公共的内存空间,所以它和其它种类的并行演化算法相比具有通讯便利的优势。因此,编写该多线程演化算法时重点放在设计合理的通讯步骤上,在各个演化线程之间采用了大量的通讯。经实验测试,该多线程演化算法能够得到比上述分布式演化算法更好的解。 随即,本文又阐述了一种基于分布式系统的两级通讯的并行演化算法的设想。实现这一设想将是本人下一步的工作重点。