收藏 分享(赏)

人工智能及其应用-推销员旅行问题.doc

上传人:HR专家 文档编号:11609330 上传时间:2020-08-25 格式:DOC 页数:5 大小:33.50KB
下载 相关 举报
人工智能及其应用-推销员旅行问题.doc_第1页
第1页 / 共5页
人工智能及其应用-推销员旅行问题.doc_第2页
第2页 / 共5页
人工智能及其应用-推销员旅行问题.doc_第3页
第3页 / 共5页
人工智能及其应用-推销员旅行问题.doc_第4页
第4页 / 共5页
人工智能及其应用-推销员旅行问题.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、人工智能及其应用-推销员旅行问题一、问题描述:一个推销员计划出访推销产品。从一个城市(如A)出发,访问每个城市一次,且最多一次,然后返回城市A,要求寻找最短路线,如图所示。ACBDE7101071369106105二、把图形建立成加权图形的邻接数组.如下1(A)2(B)3(C)4(D)5(E)1(A)07610132(B)0710103(C)0594(D)065(E)0三、程序如下:(在程序中,将设为一个极大值999)#define Max 999 /定义最大数#define VertexNum 6 /定义顶点数,A顶点重复2次#define EdgeNum 9 /定义邻接边数int Grap

2、hVertexNumVertexNum; /图形邻接数组int EdgeEdgeNum3= /输入数据 1,2,7,1,3,6,1,4,10,1,5,13, 2,3,7,2,4,5,2,5,10, 3,4,5,3,5,9, ;int VisitedVertexNum; /查找记录int DistanceVertexNum; /距离总和void Dijkstra(int Begin)int MinEdge; /最小边 int Vertex; /最小边的顶点 int i,j; int Edges; /边数 Edges=1; /初始边数 VisitedBegin=1; /初始顶点for(i=1;iV

3、ertexNum;i+) /计算初始距离之和 Distancei=GraphBegini; DistanceBegin=0; /起始顶点的距离为0 printf(Vertice); for(i=1;iVertexNum;i+) /输出顶点数据 printf(%5d,i); printf(n); printf(Step %d:,Edges); for(i=1;iVertexNum;i+) printf(%5d,Distancei); /输出距离总和数据 printf(n); while(Edges(VertexNum-1) /当边数少于顶点数执行 Edges+; MinEdge=Max; /将最

4、小边设到最大值 for(j=1;jDistancej) Vertex=j;/找出最小边的顶点MinEdge=Distancej; /找出最小边的距离总和 VisitedVertex=1; /将最小边的顶点设为已查找 printf(Step %d:,Edges); for(j=1;jVertexNum;j+) /找出未查找顶点的最小距离总和 if(Visitedj=0&(DistanceVertex+GraphVertexjDistancej) Distancej=DistanceVertex+GraphVertexj; printf(%5d,Distancej); printf(n); voi

5、d Print_M_Graph() /输出邻接数组数据 int i,j; printf(Vertice); for(i=1;iVertexNum;i+) printf(%5d,i); printf(n); for(i=1;iVertexNum;i+) printf(%5d ,i); for(j=1;jVertexNum;j+) printf(%5d,Graphij); printf(n); /以邻接数组建立图形 void Create_M_Graph(int Vertice1,int Vertice2,int Weight) GraphVertice1Vertice2=Weight; /主程序

6、 void main() int BeginVertex=1; int i,j; for(i=0;iVertexNum;i+) /清除查找记录 Visitedi=0; for(i=0;iVertexNum;i+) /清除数组数据 for(j=0;jVertexNum;j+) Graphij=Max; for(i=0;iEdgeNum;i+) /调用建立邻接数组 Create_M_Graph(Edgei0,Edgei1,Edgei2); printf(#Graph#n); Print_M_Graph(); printf(Dijkstra Slgorithm:n); Dijkstra(BeginVertex);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报