基于遗传算法求解TSP问题实验报告.doc

基于遗传算法求解TSP问题实验报告.doc

ID:59518921

大小:234.50 KB

页数:7页

时间:2020-11-05

基于遗传算法求解TSP问题实验报告.doc_第1页
基于遗传算法求解TSP问题实验报告.doc_第2页
基于遗传算法求解TSP问题实验报告.doc_第3页
基于遗传算法求解TSP问题实验报告.doc_第4页
基于遗传算法求解TSP问题实验报告.doc_第5页
资源描述:

《基于遗传算法求解TSP问题实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.基于遗传算法求解TSP问题班级,学号,摘要:巡回旅行商问题(TSP)是一个组合优化方面的问题,从理论上讲,使用穷举法不但可以求解TSP问题,而且还可以得到最优解。但是,利用穷举法所耗费的时间巨大的,当问题的规模很大时,穷举法的执行效率较低,不能满足及时的需要。遗传算法是计算机科学人工智能领域中用于解决最优化的一种搜索启发式算法,是进化算法的一种。该算法通过模拟生物学交叉、变异等方式,是当前向最优解的方向进化,因此使用于TSP问题的求解。关键词:人工智能;TSP问题;遗传算法本组成员:林志青,会雯,昊罡本人分工:掌握遗传算法的基本原理,编写遗传算法中部分匹配

2、交叉、循环交叉和循序交叉的具体实现过程。1引言旅行商问题,即TSP问题,是一个最优解的求解问题。假设有n个城市,并且每个城市之间的距离已知,则如何只走一遍并获得最短路径为该问题的具体解释。对于TSP问题的解决,有穷举法、分支限界法等求解方式,该文章主要介绍遗传算法求解过程。遗传算法简称GA,在本质上是一种求解问题的高效并行全局搜索方法。遗传算法从任意一个初始化的群体出发,通过随机选择、交叉和变异等遗传操作,使群体一代一代的进化到搜索空间中越来越好的区域,直至抵达最优解。在遗传算法中,交叉操作为主要操作之一,包括部分匹配交叉、循环交叉和顺序交叉等。2算法原理与

3、系统设计执行遗传算法,根据需要设定相应的交叉因子、变异因子和迭代次数,并选择相应的交叉算法,当程序图形显示并运算时会得到当前的最优解,判断是否获得最终的最优解,若已得到所需结果,则停止运行,否则继续执行。具体流程图如下所示:..部分匹配交叉(PMX):先随机生成两个交叉点,定义这两点间的区域为匹配区域,并交换两个父代的匹配区域。如下图所示:父代A:872 

4、 130 

5、 9546 父代B:983 

6、 567 

7、 1420 交换后变为: temp A: 872 

8、 567 

9、 9546 temp B: 983 

10、 130 

11、 1420 对于 temp A、te

12、mpB中匹配区域以外出现的数码重复,要依据匹配区域的位置逐一进行替换。匹配关系:1<——>5 3<——>6 7<——>0 子代A:802 

13、 567 

14、 9143 子代B:986 

15、 130 

16、 5427 顺序交叉法(OX):从父代A随机选一个编码子串,放到子代A的对应位置;子代A空余的位置从父代B中按B的顺序选取(与己有编码不重复)。同理可得子代B,如下所示:父代A: 872 

17、 139 

18、 0546 父代B: 983 

19、 567 

20、 1420 交叉过程:对于父代A,选择139进行遗传到下一代,其余部分从父代B中按照顺序随机选取,且不能和1、3、9数字相同

21、,放到子代的对应位置,得到下一代。..交叉后: 子代A: 856 

22、 139 

23、 7420 子代B: 821 

24、 567 

25、 3904 循环交叉法(CX):根据父代中的相应位置的基因得到相应的循环因子,该循环因子为子代的一部分,其余的因子从另一个父代中查找,找到不同于循环因子的基因并放到子代的对应位置,形成新的子代。父代A:1 2 3 4 5 6 7 8 9 父代B:5 4 6 9 2 3 7 8 1 交叉过程:随机选择一个城市,如1,找到在父代B中对应的城市为5,再再返回到父代A中的城市5,对应的父代B中的城市为2,依次查找,直达最终的城市为1为止。因此父

26、代A的循环因子为1à5à2à4à9à1,另一子代的处理过程相似。交叉后:用循环的基因构成子代A,顺序与父代A一样 1 2 4 5 9 ,用父代B剩余的基因填满子代A: 1 2 6 4 5 3 7 8 9 3系统实现部分匹配交叉://先随机产生两个交叉点,定义这两点间的区域为匹配区域,并用交换两个父代的匹配区域。doublerand=Math.random();if(rand

27、th.random()*cityNum);if(m>n){inttemp=m;m=n;n=temp;}inttempA[]=newint[n-m];inttempB[]=newint[n-m];for(inte=m;e

28、empB中匹配区域以外出现的数码重复,要依据匹配区域

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。