大规模旅行商TSP问题解决方案(基于分层规划,整数规划)

本文提出一种解决大规模旅行商问题(TSP)的分层规划方法,通过层层聚类将问题分解,利用整数规划求解底层城市群的精确路径,并结合局部优化策略,适用于大规模数据集。实验表明,该方法在tsplib数据集上的表现接近10%的精确解损失。
摘要由CSDN通过智能技术生成

此实验的代码的github
同步至我的阿里云博客(https://yq.aliyun.com/users/1320894660843258)

#分层规划的旅行商问题解决方案
/上周在无意间跟室友讨论到TSP问题时,我觉得应该把这个问题整合一下,并给出自己的解决方案,同时代码公布在github,有人做成其他版本的与其他人探讨共同进步。
无特别说明情况下,聚类指的是kmeans聚类
/

##摘要
本文采用分层规划的思想,层层聚类,直至最底层单个城市群数量满足一定阈值,然后利用整数规划求最底层城市群的精确解,单层之间的城市群路径规划同样采用整数规划求精确解,这里的城市群路径规划指的是城市群的聚类中心之间的路径规划,最高层为闭合路径的TSP问题,以下单层包括底层都为确定起点终点的不闭合TSP问题,这里的不闭合TSP问题的起点终点贪心的由上一级城市群聚类中心求出的路径来确定哪两个城市群相邻,并由此计算此相邻城市群的最近子城市群对。

求出近似路径后再进行局部的随机优化。

/简单的讲,类比在全球寻找一条可以走遍所有城市的最短路,每个城市只能访问一次,我们先找大范围的路径,如亚洲->非洲->欧洲->北美洲->南美洲->大洋洲->亚洲,然后在往下分层,比如非洲,先计算非洲与它的前驱亚洲后继欧洲之间最近的国家对,比如是埃及-伊朗,利比亚-意大利,这样确定了进入非洲的起点埃及,终点利比亚,在非洲国家之间解决走完所有国家且仅访

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于并行人工免疫算法大规模TSP问题求解-基于并行人工免疫算法大规模TSP问题求解.pdf 摘 要:  为求解大规模TSP 问题,提出了并行人工免疫系统的塔式主从模型 ,和基于TMSM的并行免疫记忆克隆选择算法 . TMSM是粗粒度的两层并行人工免疫模型,其设计体现了分布式的免疫响应和免疫记忆机制. PIMCSA 用疫苗的迁移代替了抗体的迁移,兼顾了种群多样性的保持和算法的收敛速度. 与其他算法相比,PIMCSA 在求解精度和运行时间上都更具优势,而且问题规模越大优势越明显. TMSM很好地体现了免疫系统的特性,PIMCSA 是适合求解大规模复杂优化问题的并行人工免疫算法,具有良好的可扩展性. 关键词:  TSP; 并行人工免疫系统; 克隆选择; 免疫记忆 1  引言 旅行问题 是经典的组合优化问题,具有很强的工程背景和广泛的应用价值. TSP 问题可以形式化描述为:已知N 个城市C = { C1 , C2 , ⋯, CN} , 以及任意两城市之间的距离d , 求一条经过C 中所有城市一次且仅一次的闭合路径Cx = { Cx , Cx , ⋯,Cx } 使得总行程最小 .对于大规模TSP 问题,人们倾向于用有限的时间找到可接受的近似解. 求解TSP 问题的近似算法分为环路构造算法和环路改进算法两类. 环路构造算法从某个非法解出发,逐步改变路径,直到得到一个合法路径为止.这类算法包括:最近邻算法,贪心算法,Clarke2Wright 算法,Christofides 算法等[1] . 环路改进算法则在给定初始合法解之后,使用某种策略寻找质量更好的解. 这类算法包括:局部搜索策略 ,禁忌搜索[1] ,模拟退火[1] ,遗传算法[3] ,蚁群算法[4] ,粒子群算法[5] ,多级算法[6 ,7] ,免疫算法[8]等. TSP 问题的解空间随着问题规模的增大而迅速膨胀,面对大规模TSP 问题庞大的搜索空间,单个计算机的计算能力已经远不能满足搜索算法对时间的要求. 并行算法求解大规模TSP 问题越来越受到研究者的关注,出现了并行蚁群算法[9 ,10]研究的一些成果,目前尚处于起步阶段. 本文工作尝试设计并行的免疫算法来解决这一复杂问题. ....... 后面主要是新提出的算法性能分析和仿真及结论,本文是2008年底新发表的,估计网上现在还不能下载,我是从学校论文数据库中下载的,以供需要者共享资源.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值