回 帖 发 新 帖 刷新版面

主题:动态规划

如果要在旅行商问题的最小周游路线求出?要怎么做呢?是不是一定要用到递归呢?要怎么样递归?

回复列表 (共7个回复)

沙发

递归是最典型的做法
也是一种变相的穷举过程
我原来用taboo search为够想写了一个算法,用来解决tsp,最后算法没完全实现,因为真的太复杂了,当时又用的是完全不熟的java

tsp里你的路线图是二维数组表示邻接矩阵吗?
如果是的话考虑如下函数
int travel(route *now,int this,int next)
读入顺序表当前走过的城市,now是本站出发点,next是本站目的地
route可以如下定义:
typedef struct{
  int path[N+1];//N是城市数
  int nowpast;//当前走过的城市数
  int distance;//当前走过的距离
}
travel的过程本来想帮你写出来的,可是想了半天思路乱的。总之travel要么返回下一个目的地的坐标,要么返回一个标志值

板凳

就说在TSP函数里还得在调用一个求路径的函数?

3 楼

递归也可以转化成循环吧

4 楼

不能用循环吧
否则的话城市数变化你就不能解决了

5 楼

还是不太明白。。

6 楼

我说的travel本身就是tsp函数
靠递归实现

7 楼

哦。。谢谢~!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册