C++利用蚁群算法,求解TSP问题。含代码,可用VC2010打开。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-06-13 22:54 TSP
目录 0 2013-06-13 22:54 TSPALL_tsp
文件 1296 2013-06-04 18:16 TSPALL_tspa280.opt.tour
文件 589 1995-04-27 23:09 TSPALL_tspa280.opt.tour.gz
文件 1331 1995-04-27 23:08 TSPALL_tspa280.tsp.gz
文件 9548 1994-04-28 18:43 TSPALL_tspali535.tsp
文件 4202 1995-04-27 23:08 TSPALL_tspali535.tsp.gz
文件 211 1995-04-27 23:09 TSPALL_tspatt48.opt.tour.gz
文件 480 1995-04-27 23:08 TSPALL_tspatt48.tsp.gz
文件 3617 1995-04-27 23:08 TSPALL_tspatt532.tsp.gz
文件 181 1995-04-27 23:09 TSPALL_tspayg29.opt.tour.gz
文件 1196 1995-04-27 23:08 TSPALL_tspayg29.tsp.gz
文件 179 1995-04-27 23:09 TSPALL_tspays29.opt.tour.gz
文件 1941 1995-04-27 23:08 TSPALL_tspays29.tsp.gz
文件 192 1995-04-27 23:09 TSPALL_tsperlin52.opt.tour.gz
文件 472 1995-04-27 23:08 TSPALL_tsperlin52.tsp.gz
文件 991 1995-04-27 23:08 TSPALL_tspier127.tsp.gz
文件 3947 1995-04-27 23:08 TSPALL_tsprazil58.tsp.gz
文件 92153 1995-04-27 23:08 TSPALL_tsprd14051.tsp.gz
文件 403 1995-04-27 23:09 TSPALL_tsprg180.opt.tour.gz
文件 4443 1995-04-27 23:08 TSPALL_tsprg180.tsp.gz
文件 307 1995-04-27 23:08 TSPALL_tspurma14.tsp.gz
文件 325 1995-04-27 23:09 TSPALL_tspch130.opt.tour.gz
文件 2475 1995-04-27 23:08 TSPALL_tspch130.tsp.gz
文件 366 1995-04-27 23:09 TSPALL_tspch150.opt.tour.gz
文件 2847 1995-04-27 23:08 TSPALL_tspch150.tsp.gz
文件 5705 1995-04-27 23:08 TSPALL_tspd1291.tsp.gz
文件 110191 1995-06-20 21:34 TSPALL_tspd15112.tsp.gz
文件 7922 1995-04-27 23:08 TSPALL_tspd1655.tsp.gz
文件 122371 1995-04-27 23:09 TSPALL_tspd18512.tsp.gz
文件 1215 1995-04-27 23:09 TSPALL_tspd198.tsp.gz
............此处省略174个文件信息
//#include“ComHeadFile.h“
#include“Graph.h“
Graph::Graph()
{
vexnum=arcnum=0;
for(int i=0;i for(int j=0;j arcs[i][j].value=0;
for(int i=0;i visited[i]=0;
}
int Graph::FindNum(string c) //根据名字找到节点编号
{
int num;
for(num=0;num {
if(c==vex[num])
break;
}
if(num else return -1;
}
void Graph::CreatGraph()
{
int xy; //临时坐标
ifstream inFile(“graph.txt“);
string c;
vexnum=0;
arcnum=0;
if(inFile.fail()) {cout<<“Fail to open file“<
inFile.seekg(0Lios::beg);
getline(inFilec);
if(c==“DG“) kind=DG;
else if(c==“AG“) kind=AG;
else if(c==“DN“) kind=DN;
else if(c==“AN“) kind=AN;
inFile>>vexnum;
inFile>>arcnum;
for(int i=0;i {
inFile>>x;
inFile>>y;
if(kind==DG||kind==AG) arcs[x][y].value=1;
else inFile>>arcs[x][y].value;
if (kind==DG||kind==DN)
{
arcs[y][x].value=arcs[x][y].value;
arcs[x][y].Pass=arcs[y][x].Pass=0;
arcs[x][y].Element=arcs[y][x].Element=ORGINAL_ELEMENT;
}
}
inFile.get();
for(int i=0;i {
getline(inFilec);
vex[i]=c;
}
inFile.close();
}
void Graph::PrintGraph()
{
cout<<“Graph Kind:“< cout<<“Vex Num“< cout<<“Arc Num“<
for(int i=0;i {
for(int j=0;j {
cout< }
cout< }
for(int i=0;i {
cout<<“No “< }
}
void Graph::InsertVex(string c) //插入节点
{
}
void Graph::DeleteVex(int v) //删除结点
{
}
//void Graph::InsertArc(int vint wint i=1) //增加弧v->w 无向则同时增加w->v 无权则权值为1
//void Graph::DeleteArc(int vint w)
void Graph::DFSTraverse(int v)
{
stack dfs;
dfs.push(v);
while(dfs.size())
{
int tmp=dfs.top();
if(!visited[tmp])
{
visit(thistmp);
visited[tmp]=1;
}
dfs.pop();
for(int i=vexnum-1;i>=0;i--)
{
if(arcs[tmp][i].value)
if(!visited[i])
{
dfs.push(i);
}
}
}
for(int i=0;i visited[i]=0;
}
void Graph::BFSTraverse(int v)
{
queue bfs;
bfs.push(v);
visited[v]=1;
while(bfs.size())
{
int tmp=bfs.front();
visit(thistmp);
bfs.pop();
for(int i=0;i {
if(arcs[tmp][i].value)
if(!visited[i])
{
bfs.push(i);
visited[i]=1;
}
}
}
for(int i=0;i visited[i]=0;
}
void Graph::ShortestPath_DIJ(int v/*int *pathint *distance*/)
{
int pathNow=v; //现在走到哪里去了==
bool *done=new bool[vexnum]; //标记是否找到
int *path=new int[vexnum];
int *distance=new int[vexnum];
for(int i=0;i {
path[i]=v;
done[i]=0;
distance[i]=(arcs[v][i].value==0)?INT_MAX:arcs[v][i].value;
}
distance[v]=0;
done[v
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-06-13 22:54 TSP
目录 0 2013-06-13 22:54 TSPALL_tsp
文件 1296 2013-06-04 18:16 TSPALL_tspa280.opt.tour
文件 589 1995-04-27 23:09 TSPALL_tspa280.opt.tour.gz
文件 1331 1995-04-27 23:08 TSPALL_tspa280.tsp.gz
文件 9548 1994-04-28 18:43 TSPALL_tspali535.tsp
文件 4202 1995-04-27 23:08 TSPALL_tspali535.tsp.gz
文件 211 1995-04-27 23:09 TSPALL_tspatt48.opt.tour.gz
文件 480 1995-04-27 23:08 TSPALL_tspatt48.tsp.gz
文件 3617 1995-04-27 23:08 TSPALL_tspatt532.tsp.gz
文件 181 1995-04-27 23:09 TSPALL_tspayg29.opt.tour.gz
文件 1196 1995-04-27 23:08 TSPALL_tspayg29.tsp.gz
文件 179 1995-04-27 23:09 TSPALL_tspays29.opt.tour.gz
文件 1941 1995-04-27 23:08 TSPALL_tspays29.tsp.gz
文件 192 1995-04-27 23:09 TSPALL_tsperlin52.opt.tour.gz
文件 472 1995-04-27 23:08 TSPALL_tsperlin52.tsp.gz
文件 991 1995-04-27 23:08 TSPALL_tspier127.tsp.gz
文件 3947 1995-04-27 23:08 TSPALL_tsprazil58.tsp.gz
文件 92153 1995-04-27 23:08 TSPALL_tsprd14051.tsp.gz
文件 403 1995-04-27 23:09 TSPALL_tsprg180.opt.tour.gz
文件 4443 1995-04-27 23:08 TSPALL_tsprg180.tsp.gz
文件 307 1995-04-27 23:08 TSPALL_tspurma14.tsp.gz
文件 325 1995-04-27 23:09 TSPALL_tspch130.opt.tour.gz
文件 2475 1995-04-27 23:08 TSPALL_tspch130.tsp.gz
文件 366 1995-04-27 23:09 TSPALL_tspch150.opt.tour.gz
文件 2847 1995-04-27 23:08 TSPALL_tspch150.tsp.gz
文件 5705 1995-04-27 23:08 TSPALL_tspd1291.tsp.gz
文件 110191 1995-06-20 21:34 TSPALL_tspd15112.tsp.gz
文件 7922 1995-04-27 23:08 TSPALL_tspd1655.tsp.gz
文件 122371 1995-04-27 23:09 TSPALL_tspd18512.tsp.gz
文件 1215 1995-04-27 23:09 TSPALL_tspd198.tsp.gz
............此处省略174个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)