资源简介
C++利用蚁群算法,求解TSP问题。含代码,可用VC2010打开。
代码片段和文件信息
//#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 TSP\ALL_tsp\
文件 1296 2013-06-04 18:16 TSP\ALL_tsp\a280.opt.tour
文件 589 1995-04-27 23:09 TSP\ALL_tsp\a280.opt.tour.gz
文件 1331 1995-04-27 23:08 TSP\ALL_tsp\a280.tsp.gz
文件 9548 1994-04-28 18:43 TSP\ALL_tsp\ali535.tsp
文件 4202 1995-04-27 23:08 TSP\ALL_tsp\ali535.tsp.gz
文件 211 1995-04-27 23:09 TSP\ALL_tsp\att48.opt.tour.gz
文件 480 1995-04-27 23:08 TSP\ALL_tsp\att48.tsp.gz
文件 3617 1995-04-27 23:08 TSP\ALL_tsp\att532.tsp.gz
文件 181 1995-04-27 23:09 TSP\ALL_tsp\bayg29.opt.tour.gz
文件 1196 1995-04-27 23:08 TSP\ALL_tsp\bayg29.tsp.gz
文件 179 1995-04-27 23:09 TSP\ALL_tsp\bays29.opt.tour.gz
文件 1941 1995-04-27 23:08 TSP\ALL_tsp\bays29.tsp.gz
文件 192 1995-04-27 23:09 TSP\ALL_tsp\berlin52.opt.tour.gz
文件 472 1995-04-27 23:08 TSP\ALL_tsp\berlin52.tsp.gz
文件 991 1995-04-27 23:08 TSP\ALL_tsp\bier127.tsp.gz
文件 3947 1995-04-27 23:08 TSP\ALL_tsp\brazil58.tsp.gz
文件 92153 1995-04-27 23:08 TSP\ALL_tsp\brd14051.tsp.gz
文件 403 1995-04-27 23:09 TSP\ALL_tsp\brg180.opt.tour.gz
文件 4443 1995-04-27 23:08 TSP\ALL_tsp\brg180.tsp.gz
文件 307 1995-04-27 23:08 TSP\ALL_tsp\burma14.tsp.gz
文件 325 1995-04-27 23:09 TSP\ALL_tsp\ch130.opt.tour.gz
文件 2475 1995-04-27 23:08 TSP\ALL_tsp\ch130.tsp.gz
文件 366 1995-04-27 23:09 TSP\ALL_tsp\ch150.opt.tour.gz
文件 2847 1995-04-27 23:08 TSP\ALL_tsp\ch150.tsp.gz
文件 5705 1995-04-27 23:08 TSP\ALL_tsp\d1291.tsp.gz
文件 110191 1995-06-20 21:34 TSP\ALL_tsp\d15112.tsp.gz
文件 7922 1995-04-27 23:08 TSP\ALL_tsp\d1655.tsp.gz
文件 122371 1995-04-27 23:09 TSP\ALL_tsp\d18512.tsp.gz
文件 1215 1995-04-27 23:09 TSP\ALL_tsp\d198.tsp.gz
............此处省略174个文件信息
- 上一篇:C语言编的数据库管理系统DBMS
- 下一篇:虚拟三维场景opengl编程
相关资源
- 计算机图形学实验代码包括图形旋转
- C++屏幕截图源代码
- C++屏幕截图工具源代码
- Visual.C++数据库编程技术与 源代码
- MFC课程设计图书管理系统实验报告内
- VC++网络聊天室源代码和程序说明
- 编译技术实验(Pascal代码转汇编语言
- 奥比中光深度摄像头 C#+源代码
- c++P2P网络编程代码
- 语音识别STM_C语言代码
- 一个漂亮的登录界面源代码
- OV7725资料和源代码
- 操作系统课程设计 哲学家进餐问题完
- 哲学家进餐问题的C语言实现
- GIS拓扑自动生成代码
- 2010-2011华南理工大学操作系统课程设
- 校园导游系统c语言代码及课程设计文
- 坦克大战完整源代码
- c语言魂斗罗版本代码
- 飞机大战游戏代码c++
- C语言实现linux系统下的MP3播放器源代
- 用C++语言编写数学常用算法修订版光
- 《Visual C++ 6.0教程》源代码
- 数据结构c语言版清华大学严蔚敏pdf
- 传智播客_Qt 教程 +代码.7z
- 扩展卡尔曼滤波项目C++代码
- 数据结构,算法与应用 ---C++语言描述
- C++代码查看工具
- 2013-2014华南理工大学操作系统课程设
- 航空管理系统源代码c++
评论
共有 条评论