一、问题描述如图所示,一个旅行商从A点出发,需要不重复地走遍5个城市ABCDE,最后回到A。每个城市之间的花费(即权值)如图所示,现在要求找出一条总花费最小的路径,即权值和为最小的路径。二、 算法说明1. 算法一: 登山法(贪心法) 即在每一个城市出发前比较接下来所能走的城市花费(权值),找出权.....
分类:
其他好文 时间:
2015-10-31 17:08:24
阅读次数:
416
DescriptionJohn Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane and starts visiting beautiful places. To save money,...
分类:
其他好文 时间:
2015-09-21 14:08:30
阅读次数:
226
题目链接:Hie with the Pie解题思路:Floyd + 状态压缩DP题意是有N个城市(1~N)和一个PIZZA店(0),要求一条回路,从0出发,又回到0,而且距离最短也就是TSP(旅行商)问题,首先不难想到用FLOYD先求出任意2点的距离dis[i][j]接着枚举所有状态,用11位二进制...
分类:
其他好文 时间:
2015-08-27 14:52:18
阅读次数:
232
前几天写了个模拟退火算法的程序,然后又陆陆续续看了很多群智能算法,发现很多旅行商问题都采用蚁群算法来求解,于是开始写蚁群算法的模板。网上关于蚁群算法的理论很多就不再这里赘述了,下面直接上代码和进行简单的比较。 c代码:1 #ifndef _CITY_H2 #define _CITY_H3 stru....
分类:
编程语言 时间:
2015-08-21 15:21:15
阅读次数:
443
前几天在做孔群加工问题,各种假设到最后就是求解旅行商问题了,因为原本就有matlab代码模板所以当时就改了城市坐标直接用了,发现运行速度惨不忍睹,最后用上了两个队友的电脑一起跑。这次模拟结束后在想用c语言来实现的话应该可以提高不少效率。关于模拟退火和旅行商问题的介绍我就不赘述了,网上各路大神说的都....
分类:
编程语言 时间:
2015-08-19 00:10:08
阅读次数:
251
题意 给了一个n*m的网格 然后一台挖掘机从(0,0) 这个位置出发,收集完全部的石头回到(0,0)挖掘机可以有无限的载重用旅行商处理 dp[k][i] 表示在这个集合中最后到达i的最小距离,用集合上的dp, dp[S|(1#include #include #include #include us...
分类:
其他好文 时间:
2015-08-02 00:46:07
阅读次数:
126
一个N*M的迷宫,每个点有代价,代价为-1时表示不能走到,迷宫中有k个宝藏,求取走所有宝藏所需要的最小代价,只能进入迷宫一次
计算出所有宝藏之间的最短距离及从该宝藏出迷宫的最短距离,然后做状压DP即可
#include "stdio.h"
#include "string.h"
#include "queue"
using namespace std;
struct node
{
i...
分类:
其他好文 时间:
2015-07-25 16:56:14
阅读次数:
164
由于跳转一次需要400,大于在扇道内转一圈,所以应尽可能少的跳转扇道,就转换成了双调旅行商问题,
即从0区开始访问到最大的区域,再返回0区,所有中间点需走到一次
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "algorithm"
using namespace std;
struct node
{
...
分类:
其他好文 时间:
2015-07-24 22:45:35
阅读次数:
198
给出n个点,按X坐标升序给出,从1号点走到N号点再返回1号点所需的最小距离,要求所有点至少被走到一次
要求1->n的路上所经过的点X坐标升序
n->1路上所经过的点X坐标降序
具体详解参考:http://blog.csdn.net/xiajun07061225/article/details/8092247
#include "stdio.h"
#include "stri...
分类:
其他好文 时间:
2015-07-24 20:49:22
阅读次数:
128