巡回旅行商问题(Traveling Salesman Problem,TSP),也称为货郎担问题。该问题可简单描述为走遍n个城市的最短路。几十年来,出现了很多近似优化算法。如近邻法、贪心算法、最近插入法、最远插入法、模拟退火算法以及遗传算法。 问题1 设有一个售货员从10个城市中的某一个城市的出发, ...
分类:
其他好文 时间:
2020-02-01 19:29:17
阅读次数:
156
遗传算法 (GA) 算法最主要的就是我们要想明白什么是他的 DNA 和怎么样对个体进行评估 (他们的 Fitness). Fitness和DNA 这次的编码 DNA 方式又不一样, 我们可以尝试对每一个城市有一个 ID, 那经历的城市顺序就是按 ID 排序咯. 比如说商人要经过3个城市, 我们就有 ...
分类:
编程语言 时间:
2020-01-29 17:38:20
阅读次数:
128
状态压缩是一种很精妙的高效存储方式,常用于DP。旅行商问题和其变种都可以用状压DP求解 ...
分类:
其他好文 时间:
2020-01-19 12:26:40
阅读次数:
105
状态压缩是一种很精妙的设计,利用计算机二进制的特性,用整数存储状态。在此基础上的DP可以用来解决旅行商问题和很多它的变种问题 ...
分类:
其他好文 时间:
2020-01-18 12:59:09
阅读次数:
111
参考《算法设计技巧与分析》 近似算法为求近似解的算法 度量标准:相对性能界 ,RA=A(I)/OPT(I) (最小化问题)或 RA(I)=OPT(I)/A(I)(最大化问题),越接近一越好 代表的算法有背包问题,装箱问题(FF 首次适应,BF最佳适应,FFD递减首次适应,BFD),欧几里得旅行商问题 ...
分类:
编程语言 时间:
2020-01-12 20:17:16
阅读次数:
144
CPleX是一个神秘的求解器, 听说久了就想用, 但是直接用有些困难, 尤其入门困难. 对初学者来说Leapms是一个好的通道.
在Leapms内有一个cplex命令, 直接敲入cplex+回车就可以调用Cplex求解. 然而网上下载的Leapms没有这个功能.
但是这难不倒本尊, 因为leapm... ...
分类:
其他好文 时间:
2019-11-12 23:14:24
阅读次数:
236
一、题目 二、思路 1、dfs 实验要求用多种思路完成,所以一开始就沿用了上一个实验马走棋盘的思路,添加了邻接矩阵来记录有向网的权值。总体思路还是DFS遍历搜索。 过程剪枝: 1、因为要求为最短路径,而一般情况总会存在多条可行路径,在判断过程中需要走过每一条路径才能知道该路径的长度,但如果已知一条可 ...
分类:
其他好文 时间:
2019-09-23 22:09:32
阅读次数:
92
有一位旅行商,我们暂且称呼他为彪哥。 他需要前往5个城市,所以想要计算出旅程最短的路线。 对于每种路线组合,他都计算出总旅程,再挑选旅程最短的路线。 那么,算法效率的问题来了。 5个城市有120个不同的排列方式,因此需要执行120次操作。 6个城市有720个不同的排列方式,因此需要执行720次操作。 ...
分类:
编程语言 时间:
2019-07-04 00:13:26
阅读次数:
120
遗传算法求解TSP源码及解析 1.算法效果 图 1?1算法效果1 图 1?2算法效果2 2.原理说明 TSP问题是指假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。本文使 ...
分类:
编程语言 时间:
2019-04-01 17:14:24
阅读次数:
203
昨天想练习一下状态压缩,百度搜索看到有博客讨论POJ 3311,一看就是简单的旅行商问题,于是快速上手写了状态压缩,死活样例都没过。。。 画图模拟一遍原来多个城市可以重复走,然后就放弃思考了。。。 刚刚把这个无聊的问题解决了,简单的Floyd+状压。 所谓Floyd算法,我在暑训的博客里提过,复杂度 ...
分类:
其他好文 时间:
2019-03-29 01:13:33
阅读次数:
151