欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    算法设计大作业—求解Tsps问题(共3页).docx

    • 资源ID:13888159       资源大小:15.63KB        全文页数:3页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    算法设计大作业—求解Tsps问题(共3页).docx

    精选优质文档-倾情为你奉上基于贪心算法求解TSP问题 一、TSP问题TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。TSP问题是一个组合优化问题。该问题可以被证明具有NPC计算复杂性。TSP问题可以分为两类,一类是对称TSP问题(Symmetric TSP),另一类是非对称问题(Asymmetric TSP)。所有的TSP问题都可以用一个图(Graph)来描述:V=c1, c2, , ci, , cn,i = 1,2, , n,是所有城市的集合.ci表示第i个城市,n为城市的数目;E=(r, s): r,s V是所有城市之间连接的集合;C = crs: r,s V是所有城市之间连接的成本度量(一般为城市之间的距离);如果crs = csr, 那么该TSP问题为对称的,否则为非对称的。一个TSP问题可以表达为:求解遍历图G = (V, E, C),所有的节点一次并且回到起始节点,使得连接这些节点的路径成本最低。二、贪心算法贪心算法,又名贪婪算法,是一种常用的求解最优化问题的简单、迅速的算法。贪心算法总是做出在当前看来最好的选择,它所做的每一个在当前状态下某种意义上是最好的选择即贪心选择,并希望通过每次所作的贪心选择导致最终得到问题最优解。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。1、贪心算法的基本思路从问题的某一个初始解触发逐步逼近给定的目标,以尽可能快地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。大致步骤如下:1)建立数学模型来描述问题;2)把求解的问题分成若干个子问题3)对每一个子问题求解,得到子问题的局部最优解4)把子问题的局部最优解合成原问题的一个解2、贪心算法的实现框架贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择,而贪心策略适用的前提是:局部最优策略能导致产生全局最优解。    从问题的某一初始解出发;    while (能朝给定总目标前进一步)              利用可行的决策,求出可行解的一个解元素;        由所有解元素组合成问题的一个可行解;3、贪心算法存在的问题1)不能保证求得的最后解是最佳的;2)不能用来求最大最小解问题;3)只能在某些特定条件约束的情况下使用,例如贪心策略必须具备无后效性等。4、典型的贪心算法使用领域马踏棋盘、背包、装箱等三、贪心算法求解TSP问题贪心策略:在当前节点下遍历所有能到达的下一节点,选择距离最近的节点作为下一节点。基本思路是,从一节点出发遍历所有能到达的下一节点,选择距离最近的节点作为下一节点,然后把当前节点标记已走过,下一节点作为当前节点,重复贪心策略,以此类推直至所有节点都标记为已走节点结束。贪心法的方法是在每个节点中找到与其他节点的最小距离,并且有顺序,比如从第1节点出发,到其他节点的最小节点为3,在从第3节点到不包含节点1的最小节点距离为节点5,以此继续下去,找到路线1-3-5-4-2-1回路。四、C+算法如下:#include <iostream.h>#define N 5void copy(int ANN,int BNN)for(int i=0;i<N;i+)for(int j=0;j<N;j+) Aij=Bij;int main()int a55=1000,3,1,5,8,3,1000,6,7,9,1,6,1000,4,2,5,7,4,1000,3,8,9,2,3,1000;int ANN;copy(A,a);/int a55=1000,3,1,5,8,3,1000,6,17,9,1,6,1000,4,2,5,17,4,1000,3,8,9,2,3,1000;int b5=0;int n=sizeof(b)/sizeof(int);int i=1,j,k;while(i<n)int visit=0;int min=1000;for(j=0;j<n;j+)ajbi-1=-1;for(j=0;j<n;j+)if(min>abi-1j&&abi-1j>0)visit=j;min=abi-1j;abi-1j=-1;bi+=visit;for(j=0;j<n;j+)for(k=0;k<n;k+)cout<<ajk<<"t"cout<<endl;cout<<endl;cout<<"贪心法路线为:"<<endl;for(i=0;i<n;i+)cout<<bi+1<<" ->"<<"t"cout<<b0+1<<endl;cout<<"贪心法路线长度为:"int sum=0;for(i=0;i<n-1;i+)sum=sum+Abibi+1;cout<<sum+Abn-1b0<<endl;输出结果:算法分析 时间复杂度:对于节点数为n的tsp问题,用贪心算法,时间复杂度为O(n2)专心-专注-专业

    注意事项

    本文(算法设计大作业—求解Tsps问题(共3页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开