资源简介
(TSP中的回溯算法)
算法描述
旅行售货员问题的解空间是一棵排列树。在递归算法中,当i=n时,当前扩展结点是排列树的叶结点的父结点。此时算法检测图G是否存在一条从顶点x[n-1]到顶点x[n]的边和一条从顶点x[n]到顶点1的边。如果这两条边都存在,则找到一条旅行售货员回路,此时,算法还需判断这条回路的费用是否优于当前已找到的最优回路的距离V。如果是,则必须更新当前最优值bestV和当前最优解bestx。
代码片段和文件信息
#include “setting.h“
int x[34];
int v;
int bestV;
int bestX[34];
int n = 34;
int** dist;
void backtrack (int tint** dist) {
void swap(int a[] int i int j);
if (t > n - 1) {
v += dist[0][x[n - 1]];
if (v < bestV) {
bestV = v;
for (int i = 0; i < n; i++)
bestX[i] = x[i];
}
printf(“%d\n“v);
v -= dist[0][x[n - 1]];
return;
}
for (int i = t; i < n; i++) {
swap(x i t);
v += dist[x[t - 1]][x[t]];
// 剪枝函数
if (v < bestV)
backtrack(t + 1dist);
v -= dist[x[t - 1]][x[t]];
swap(x i t);
}
}
void swap(int a[] int i int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
void getdist(int** dist){
int i;
for ( i = 0;i x[i] = i;
bestX[i] = i;
}
v = 0;
bestV = 99999;
backtrack (1dist);
printf(“%d\n“bestV);
for (i = 0; i < n; i++)
printf(“%d\n“bestX[i]);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5022 2009-09-09 23:36 TSP回溯法\Debug\getdist.obj
文件 1933 2009-09-09 23:37 TSP回溯法\Debug\main.obj
文件 9162 2009-09-09 23:14 TSP回溯法\Debug\operation.cpp.obj
文件 9154 2009-09-09 23:36 TSP回溯法\Debug\operation.obj
文件 184381 2009-09-09 23:37 TSP回溯法\Debug\TSP回溯法.exe
文件 190948 2009-09-09 23:37 TSP回溯法\Debug\TSP回溯法.ilk
文件 43520 2009-09-09 23:34 TSP回溯法\Debug\TSP回溯法.opt
文件 226128 2009-09-09 23:36 TSP回溯法\Debug\TSP回溯法.pch
文件 467968 2009-09-09 23:37 TSP回溯法\Debug\TSP回溯法.pdb
文件 41984 2002-05-22 08:25 TSP回溯法\Debug\vc60.idb
文件 53248 2009-09-09 23:37 TSP回溯法\Debug\vc60.pdb
文件 5844 2009-09-05 15:17 TSP回溯法\distance.txt
文件 916 2009-09-09 23:36 TSP回溯法\getdist.cpp
文件 116 2009-09-09 23:37 TSP回溯法\main.cpp
文件 1933 2009-09-09 23:33 TSP回溯法\operation.cpp
文件 106 2009-09-09 23:36 TSP回溯法\setting.h
文件 4501 2009-09-09 23:24 TSP回溯法\TSP回溯法.dsp
文件 526 2009-09-09 23:07 TSP回溯法\TSP回溯法.dsw
文件 58368 2002-05-22 08:36 TSP回溯法\TSP回溯法.ncb
文件 49664 2002-05-22 08:36 TSP回溯法\TSP回溯法.opt
文件 252 2002-05-22 08:24 TSP回溯法\TSP回溯法.plg
目录 0 2002-05-22 08:15 TSP回溯法\Debug
目录 0 2002-05-22 08:36 TSP回溯法
----------- --------- ---------- ----- ----
1355674 23
- 上一篇:libcoap-4.0.1
- 下一篇:avr IAR 控制步进电机正反快慢转
相关资源
- 上海理工大学《数据结构》期末试题
- 杭电数据结构马踏棋盘实验报告
- 利用哈夫曼编码进行通信可以大大提
- 数据结构运动会分数统计实验报告
- 操作系统+算法导论+计算机网络知识
- 运动会分数统计设计报告
- 数据结构实验报告3-栈与队列-中缀表
- 数据结构实验报告1-线性表-两个有序
- 中缀表达式转后缀表达式并求值
- 数据结构第九章 查找作业及答案100分
- 第十章 排序作业及答案数据结构
- 数据结构课程设计 表达式求值
- 数据结构哈夫曼编码报告
- 数据结构课程设计——地铁建设问题
- 广工anyview数据结构答案
- 数据结构课程设计校园导游系统
- 数据结构课程设计-校园导游
- 顺序表表示集合,实现集合的交、并
- 5、校园导游程序源程序+文档+说明+总
- 《数据结构及算法经典》源代码.
- DT数据结构代码 DTlib.rar
- 数据结构动画演示
- 利用Qt实现的N皇后算法
- 东北大学数据结构实验1打印机fifo
- 拓扑排序------打印输出计算机本科专
- 数据结构上机实验_栈和队列的应用
- 大学课程中相关一些算法题
- 数据结构哈希表设计与实现课程设计
- 航空订票模拟系统 数据结构课程设计
- 数据结构大作业(家谱管理系统)
评论
共有 条评论