TSP问题的概述.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TSP问题的概述

TSP问题的概述   旅行商问题,即TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。   TSP问题的由来   TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点。   TSP由美国RAND公司于1948年引入,该公司的声誉以及线形规划这一新方法的出现使得TSP成为一个知名且流行的问题。   TSP在中国的研究   同样的问题,在中国还有另一个描述方法:一个邮递员从邮局出发,到所辖街道投邮件,最后返回邮局,如果他必须走遍所辖的每条街道至少一次,那么他应该如何选择投递路线,使所走的路程最短?这个描述之所以称为中国邮递员问题(Chinese Postman Problem CPP)因为是我国学者管梅古教授于1962年提出的这个问题并且给出了一个解法。人工智能上的旅行商问题,以下给出的是算法,只是理解算法之用。   for detail contact me QQ: 座机电话号码2   /****************算法总框架*****************************/   int i; gs.search_init adaptee.list_place.getSelectedIndex ,adaptee.list_fun.getSelectedIndex ;   do i gs.search_step ; while i 0 ;   /***************searchinit**************************/   public void search_init int startindex,int strategy this.strategy strategy;   AStar.graph G;   G.setSize AStar.len ; start.index startindex;   Vertex s new Vertex ; s.index start.index;   s.parent -1;   n null;   s.value f s.index ; //s的估价函数值   G.add s ;   start.parentpos -1;   start.value s.value;   open.add start ;   step 0; /***************searchstep**************************/   public int search_step Open m ;   Vertex old_m;   int i,j; int f; int parentpos;   if open.next null return -1;//查找失败   //扩展的步骤数增加   step++;   //Open 表非空 //Open 表中移出第一个   n open.removeFirst ;   //n放入 CLOSE 中 ,返回放入的位置   parentpos close.Add n.index, n.parentpos ;   if n.index start.indexstep! 1 //结束状态   return 1;   //扩展n结点   i n.index;   for j 0;j len;j++ if i! jvalue[j]! -1 //对于所有n的后继结点 m j if j start.indexisAll n //所有城市已访问过,且回到出发城市 f f j ; //计算此时的f值   old_m G.getVertex j ;   if old_m! null if old_m.value f||old_m.value 0 G.add j,i,f ; //j m i n ,G中添加j m ,父节点为i n ,估价函数值为f   G.addSub i,j ; //i n 的后继中添加j m m new Open j,parentpos,f ; //Open表中添加m j open.add m ;   continue; if !isExist n,j //m j 不在n i 的祖先中 不扩张n的祖先结点 f f j ; //计算f值   //取得旧的m j 中value最小的,G中的节电保存了从出发城市到此地最

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档