資源簡介
(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?=?v;
for?(int?i?=?0;?i? bestX[i]?=?x[i];
}
printf(“%d\n“v);
v?-=?dist[0][x[n?-?1]];
return;
}
for?(int?i?=?t;?i?
swap(x?i?t);
v?+=?dist[x[t?-?1]][x[t]];
//?剪枝函數
if?(v? 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? 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 控制步進電機正反快慢轉
評論
共有 條評論