什么是旅行商问题

  旅行商问题(Traveling Saleman Problem,TSP)是VRP的特例,由于Gaery[1]已证明TSP问题是NP难题,因此,VRP也属于NP难题。

  旅行商问题(TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。最早的旅行商问题的数学规划是由Dantzig(1959)等人提出。

  TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。

  TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n个点的所有排列的集合,大小为(n-1)。可以形象地把解空间看成是一个无穷大的丘陵地带,各山峰或山谷的高度即是问题的极值。求解TSP,则是在此不能穷尽的丘陵地带中攀登以达到山顶或谷底的过程。

旅行商问题的历史

  旅行商问题字面上的理解是:有一个推销员,要到n个城市推销商品,他要找出一个包含所有n个城市的具有最短路程的环路。

  TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点。

  TSP由美国RAND公司于1948年引入,该公司的声誉以及线性规划这一新方法的出现使得TSP成为一个知名且流行的问题。

旅行商问题的解法

  旅行推销员的问题,我们称之为巡行(Tour),此种问题属于NP-Complete的问题,所以旅行商问题大多集中在启发式解法。Bodin(1983)等人将旅行推销员问题的启发式解法分成三种:

  1、途程建构法(Tour Construction Procedures)

  从距离矩阵中产生一个近似最佳解的途径,有以下几种解法:

  1)最近邻点法(Nearest Neighbor Procedure):一开始以寻找离场站最近的需求点为起始路线的第一个顾客,此后寻找离最后加入路线的顾客最近的需求点,直到最后。

  2)节省法(Clark and Wright Saving):以服务每一个节点为起始解,根据三角不等式两边之和大于第三边之性质,其起始状况为每服务一个顾客后便回场站,而后计算路线间合并节省量,将节省量以降序排序而依次合并路线,直到最后。

  3)插入法(Insertion procedures):如最近插入法、最省插入法、随意插入法、最远插入法、最大角度插入法等。

  2、途程改善法(Tour Improvement Procedure)

  先给定一个可行途程,然后进行改善,一直到不能改善为止。有以下几种解法:

  1)K-Opt(2/3 Opt):把尚未加入路径的K条节线暂时取代目前路径中K条节线,并计算其成本(或距离),如果成本降低(距离减少),则取代之,直到无法改善为止,K通常为2或3。

  2)Or-Opt:在相同路径上相邻的需求点,将之和本身或其它路径交换且仍保持路径方向性,并计算其成本(或距离),如果成本降低(距离减少),则取代之,直到无法改善为止。

  3、合成启发法(Composite Procedure)

  先由途程建构法产生起始途程,然后再使用途程改善法去寻求最佳解,又称为两段解法(two phase method)。有以下几种解法:

  1)起始解求解+2-Opt:以途程建构法建立一个起始的解,再用2-Opt的方式改善途程,直到不能改善为止。

  2)起始解求解+3-Opt:以途程建构法建立一个起始的解,再用3-Opt的方式改善途程,直到不能改善为止。

转载于:https://www.cnblogs.com/sprite_bx/archive/2010/03/25/1694887.html

旅行商问题(Traveling Saleman Problem,TSP)相关推荐

  1. 旅行商问题(Traveling Salesman Problem,TSP)的+Leapms线性规划模型及c++调用

    知识点 旅行商问题的线性规划模型 旅行商问题的+Leapms模型及CPLEX求解 C++调用+Leapms 旅行商问题 旅行商问题是一个重要的NP-难问题.一个旅行商人目前在城市1,他必须对其余n-1 ...

  2. 旅行商问题(travelling salesman problem, TSP) 解题报告

    旅行商问题是个熟知的问题.这次是因为coursera上面选的算法课而写代码实现.这里做个简单总结. 测试程序: 25 20833.3333 17100.0000 20900.0000 17066.66 ...

  3. 多目标应用:多目标蜣螂优化算法求解多旅行商问题(Multiple Traveling Salesman Problem, MTSP)

    一.多旅行商问题 多旅行商问题(Multiple Traveling Salesman Problem, MTSP)是著名的旅行商问题(Traveling Salesman Problem, TSP) ...

  4. 旅行商问题(Travelling salesman problem, TSP)

    旅行商问题建模与证明 – 个人学习记录

  5. VRP文献赏读02:Optimization Approaches for the Traveling Salesman Problem with Drone

    目录 摘要赏读 符号描述 问题假设 三类节点 操作Operator 理论分析 今天分享一篇2018年发表在TS上的关于TSPD的研究论文,论文信息如下:

  6. 遗传算法求解TSP旅行商问题

    旅行商问题 旅行商问题(traveling salesman problem,TSP)可描述为:已知N个城市之间的相互距离,现有一个商人必须遍访这N个城市,并且每个城市只能访问一次,最后又必须返回出发 ...

  7. 【WPA TSP】狼群算法求解旅行商问题【含Matlab源码 211期】

    ⛄一.TSP简介 旅行商问题(traveling salesman problem,TSP)是一种常见的路径优化问题,其目的是为了求得一条经过所有城市的最短路径.现实生活中,很多问题都被抽象为TSP进 ...

  8. 【TSP问题】基于灰狼算法求解旅行商问题matlab源码

    1 算法介绍 1.1 TSP介绍 "旅行商问题"(Traveling Salesman Problem,TSP)可简单描述为:一位销售商从n个城市中的某一城市出发,不重复地走完其余 ...

  9. 【一】TSP、VRP、VRP模型介绍

    一. TSP问题数学模型 编辑 TSP,即Traveling Salesman Problem,也就是旅行商问题,又译为旅行推销员问题.货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求 ...

最新文章

  1. 分布式版本控制系统 Git 教程
  2. 2012年12月4期手机网页开发
  3. 什么?搞不定Kafka重复消费?
  4. RN 与原生通信(Android篇)
  5. python装饰器作用-python装饰器有什么用
  6. 网络版ATM项目的实现——客户端
  7. STM32工作笔记0056---认识DB9接口
  8. sqlite 中出现的database table is locked 解决办法
  9. GDAL读取jpg文件中GPS坐标信息
  10. css不继承上级样式_这个笔记《CSS基本概念》,让菜鸟轻松学会给网页穿外衣
  11. 方差分析软件_手把手教你用Graphpad做单因素方差分析
  12. html语言标记滚动字幕,网页滚动文字的制作HTML代码
  13. MySql 语法(完整版)
  14. python爬虫英文单词_利用PYTHON 爬虫爬出自己的英语单词库
  15. 微软开发的www服务器程序是,WebDeploy 微软开发的IIS6同步应用程序
  16. 企业微信应用授权/静默登录
  17. mysql数据库状态如何监控数据库_MySQL数据库之zabbix3.2监控MYSQL状态
  18. openGL-设计交互平面图形(旋转、平移、缩放)
  19. 【学习】loss图和accuracy
  20. 华氏度摄氏度温度转换

热门文章

  1. ctrl+f5 强刷新
  2. tcp/ip详解--封装
  3. muduo之mutex和condition
  4. 深度学习之线性回归模型
  5. 修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
  6. Java 基础 之 关系运算符
  7. 0201-开始使用Spring Cloud实战微服务准备工作
  8. 使用virtualbox nat方式中的端口映射使用ssh服务
  9. java开发_数字转换汉语中人民币的大写_完整版
  10. 记一次与用户的亲密接触