求解旅行商问题的顺序交叉多子代遗传算法

文档序号:6637613阅读:2135来源:国知局
求解旅行商问题的顺序交叉多子代遗传算法
【专利摘要】本发明公开了一种求解旅行商问题的顺序交叉多子代遗传算法。首先依据生物进化理论和数学生态学理论,提出了一种求解旅行商问题的顺序交叉多子代遗传算法,并给出了基于顺序交叉的多子代的产生方法。顺序交叉多子代遗传算法所产生的子代个体数量明显增多,使得种群竞争更加激烈,从而增加了产生优秀个体的可能性,故可使遗传算法的性能得到更好的改善。TSPLIB中两个例子的计算结果表明,顺序交叉多子代遗传算法的运算速度明显提高,迭代次数明显减少,从而验证了本发明所给出的求解旅行商问题的顺序交叉多子代遗传算法的有效性。
【专利说明】求解旅行商问题的顺序交叉多子代遗传算法

【技术领域】
[0001] 本发明求解旅行商问题的顺序交叉多子代遗传算法,属于应用人工智能技术领 域。

【背景技术】
[0002] 旅行商问题(Travelling Salesman Problem,简称TSP)是近代组合优化领域、数 学领域中的著名问题之一。TSP问题的一般提法是:一个商人要到/7个城市去推销商品,/7 个城市中任意两个城市之间的距离是已知的,该旅行商从某一城市出发,寻找一条可经由 每个城市一次且仅一次,最后回到原出发城市,并使所走的路程最短的路线。TSP问题已经 被证明是一个典型的^难题。由于TSP问题具有形式简单、易于理解等优点,在电网规划、 网络优化、管道铺设和物流调度等方面有着广泛的应用。因此,求解TSP问题有着很高的实 际应用价值。自1932年K. Menger提出旅行商问题以来,该问题已经引起多个领域的许多 学者的兴趣,它是目前优化领域里研究的热点问题。1985年,Goldberg和Grefenstette首 次应用遗传算法求解TSP问题。此后,许多学者对求解TSP的遗传算法进行了改进,在一定 程度上克服了算法的早熟收敛问题,而且算法的收敛速度也有一定程度的提高。
[0003] 现有文献中的遗传算法每次迭代产生子代数量与父代相同,但在自然界中所有能 够生存和发展的种群,其父代产生子代的数量都远远多于父代个体的数量。基于这样的事 实,提出了基于顺序交叉的多子代遗传算法,并用其求解TSP问题。所谓的多子代遗传算法 是指交叉产生的子代个体数量多于父代个体数量的遗传算法。顺序交叉多子代遗传算法通 过顺序交叉产生的子代个体数量多于父代个体数量,使得种群内的竞争加剧。在种群内的 竞争过程中,优秀的个体具有较强的生命力,容易存活下来,而具有较低生存能力的个体则 被淘汰,从而使物种逐渐地向适应于生存环境的方向进化,进而产生更优良的物种。因此, 求解TSP问题的顺序交叉多子代遗传算法可提高算法的收敛速度。


【发明内容】

[0004] 针对现有运用遗传算法求解旅行商问题存在的问题,本发明对现有遗传算法进行 改进,提出了一种求解旅行商问题的顺序交叉多子代遗传算法。求解旅行商问题的顺序交 叉多子代遗传算法与现有求解旅行商问题的遗传算法相比,其显著特征在于:其一,进化策 略不同。顺序交叉多子代遗传算法的交叉概率为1。其二,交叉后产生的子代数量不同。顺 序交叉多子代遗传算法交叉产生的子代数量明显多于现有求解旅行商问题的遗传算法。这 种求解旅行商问题的顺序交叉多子代遗传算法产生优秀个体的可能性增加,因而可提高算 法的收敛速度。
[0005] 求解旅行商问题的顺序交叉多子代遗传算法,其特征在于,具体包括以下几个步 骤: 步骤一:顺序交叉多子代遗传算法的理论基础。
[0006] (1)生物学理论基础 现有文献中求解TSP问题的遗传算法,都是一对父代产生一对子代。而在生物进化的 过程中,通常一对父代繁殖的子代个数多于两个,这样的物种在进化过程中不但能够很好 的生存下来,而且能够使物种得到进化,从而得到更优良的物种;而一对父代繁殖的子代个 数小于等于两个的物种实际上是不存在的,即使存在这样的物种,在进化的过程中,由于疾 病、食物等因素的影响,最终也会灭绝。另外,当某一种群内部的子代个体数量多于父代时, 种群内个体的数量增加,促使种群内部的竞争加剧,由于种群内部的优秀个体具有较强的 生存能力,容易存活下来,而具有较低生存能力的个体则被淘汰,从而使物种逐渐地向适应 于生存环境的方向进化,进而产生更优良的物种。因此,自然界中的物种在进化过程中,子 代个体的数量应该多于父代个体的数量。
[0007] (2)数学生态学理论基础 为了说明生物灭种的概率,我们假设一个种群开始只有一个个体,在某一时间?其大 小将为0的概率是

【权利要求】
1. 求解旅行商问题的顺序交叉多子代遗传算法,其特征在于: 与现有求解旅行商问题的遗传算法的进化策略不同,求解旅行商问题的顺序交叉多子 代遗传算法的进化策略为: 首先,产生种群规模为n的初始种群,W初始种群作为父代,并将种群中的所有个体按 路线长度从小到大进行排序,根据排序的结果计算种群中每一个个体的适应度,然后进行 选择、交叉,并从交叉产生的化个子代个体和n个父代个体中保留^个精英个体,然后将交 叉产生的2/7个子代个体按变异概率/7。进行变异,变异后得到的个体数为2/7化,再加上交叉 后没有变异的那一部分个体与从父代和交叉产生的个体中选出的^个精英个体,此时种群 中共有化个子代个体,可在2/7 个个体中选取最优的y个作为精英个体,选取最优 的/7个个体作为子代;判断是否满足给定的迭代终止条件,若满足迭代终止条件,则停止计 算;若不满足迭代终止条件,则把子代当成父代;重复上述步骤,直至满足迭代终止条件为 止。
2. 根据权利要求1所述的求解旅行商问题的顺序交叉多子代遗传算法,其特征在于给 出了一种基于顺序交叉的多子代产生方法;该种多子代的产生方法为: 设被选择配对的父代个体为^和公 ^=3 4 6 8 1 2 9 7 5 《=271953648 根据均匀随机分布产生两个交叉点,用"I"表示交叉点所在的位置,具体情况如下: A=34 6 I 8 12 9 17 5 公=2 7 1 I 9 5 3 6 14 8 首先,两个交叉点之间的中间段保持不变,得到 G=* * * I 8 1 2 9 I * * G=* ** 19536 I** 然后,记取父代个体i?从第二个交叉点开始城市码的排列顺序,当到达i?的最后时, 返回i?的开始继续记录代表城市的数字,直至到达第二个交叉点结束,该样便得到了父代 个体公从第二个交叉点开始的城市排列顺序为4-8-2-7-1-9-5-3-6 ;对于父代个体^而 言,已有城市码有8-1-2-9,将它们从父代个体公的城市码排列顺序中去掉,得到排列顺序 4-7-5-3-6,再将该个顺序复制给父代个体儿复制的起点也是从第二个交叉点开始,W此决 定子代个体1对应位置的未知码*,得到的子个体1为: G=5 3 6 18 1 2 9 14 7 同样,可W产生子个体2为: G=8 1 2 19 5 3 6 17 4 其次,两个父代个体中第二个交叉点后面的城市码不变,将中间部分移到最前面,该样 变化后^和i?两个父代个体中城市码的排列顺序为 ^^=8-1-2-9-3-4-6-7-5 公公=9-5-3-6-2-7-1-4-8 然后,将心中4-8的城市码去掉,将做中7-5的城市码去掉,得到1-2-9-3-6-7-5和 9-3-6-2-1-4-8,再将 7-5 加到 9-3-6-2-1-4-8 的尾部,将 4-8 加到 1-2-9-3-6-7-5 的尾部, 得到两个子个体为: G=9 3 6 I 2 1 4 8 I 7 5 G=1 2 9 I 3 6 7 5 I 4 8 该样父代个体^和i?经过顺序交叉后,产生了四个子代个体; 当初始种群的规模为n时,通过顺序交叉就可W得到化个子代个体。
【文档编号】G06Q10/04GK104463328SQ201410740661
【公开日】2015年3月25日 申请日期:2014年12月9日 优先权日:2014年12月9日
【发明者】王吉权, 田占伟, 王福林, 何梦莹 申请人:东北农业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1