实验五分枝限界法最短路径问题.docx
- 文档编号:30613443
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:8
- 大小:153.38KB
实验五分枝限界法最短路径问题.docx
《实验五分枝限界法最短路径问题.docx》由会员分享,可在线阅读,更多相关《实验五分枝限界法最短路径问题.docx(8页珍藏版)》请在冰豆网上搜索。
实验五分枝限界法最短路径问题
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY
算法设计与分析
实验报告
实验项目
实验五
实验类别
验证性
学生姓名
王龙
学生学号
7
完成日期
2016-5-6
指导教师
刘振章
实验成绩
评阅日期
评阅教师
刘振章
实验五:
分枝限界法
【实验目的】
应用分枝限界法的算法设计思想求解单源最短路径问题。
【实验性质】
验证性实验。
【实验内容与要求】
采用分支限界法编程求源点0到终点6的最短路径及其路径长度。
要求完成:
⑴算法描述⑵写出程序代码⑶完成调试⑷进行过程与结果分析。
【算法思想及处理过程】
由于要找的是从源到各顶点的最短路径,所以选用一个数组存起来.
Fenzhi函数:
由于先前赋值时,用一个二维数组将结点的有向图标记存起来了(有边为1,无边为0),并且又用另外一个二维数组将其权重存起来了;首先,通过双重for循环,通过if语句判断,如果标记为1,并且相加的权重小于先前最优权重(在初始化的时候,对最优权重赋上一个最大值),则求得最优权重,并且用一维数组将权重存起来,而且用一维数组将前驱结点存起来.你然后,一直循环下去,直到循环到目的结点.
【程序代码】
#include<>
#defineMAX9
voidinput(intd[],ints[],intt[][MAX],intti[][MAX],intn,intk);
voidfenzhi(intd[],ints[],intt[][MAX],intti[][MAX],intn,intk);
voidoutput(intd[],ints[],intn);
intmain()
{
intn,k;
intd[MAX],s[MAX],t[MAX][MAX]={0},ti[MAX][MAX]={0};
n=7;k=11;
printf("请输入结点的个数:
");
scanf("%d",&n);
printf("请输入结点的边数:
");
scanf("%d",&k);
input(d,s,t,ti,n,k);
fenzhi(d,s,t,ti,n,k);
output(d,s,n);
return0;
}
voidinput(intd[],ints[],intt[][MAX],intti[][MAX],intn,intk)
{
inti,j,m,z;
printf("请输入图的边:
\n");
for(z=0;z { scanf("%d%d%d",&i,&j,&m); t[i][j]=m; ti[i][j]=1; } for(i=0;i { d[i]=99;//赋个最大值 s[i]=-1; } } voidfenzhi(intd[],ints[],intt[][MAX],intti[][MAX],intn,intk) { inti,j,zi; d[0]=0;s[0]=-1; for(i=0;i { printf("当前扩展节点: %d,权重: %d: \n",i,d[i]); for(j=0;j { if(ti[i][j]==1) { if(d[j]>t[i][j]+d[i]) { d[j]=t[i][j]+d[i];//最短长度 s[j]=i;//前驱结点 } if(j! =n/*&&j! =6*/) printf("入队结点: %d,最优权重: %d\n",j,d[j]); } } printf("\n"); } } voidoutput(intd[],ints[],intn) { inti,j=0,zi[MAX]; printf("从源点到各个结点的最短路径: \n"); for(i=0;i printf("dist[%d]=%d\n",i,d[i]); printf("\n"); printf("从源点到终点的最短路径长度为: %d\n",d[n-1]); printf("其路径为: %d",n-1); zi[j]=s[n-1]; printf("---->%d",zi[j]); while(zi[j]! =0) { j++; zi[j]=s[zi[j-1]]; printf("---->%d",zi[j]); } printf("\n"); } 【运行结果】 图1输入数据 图2输出扩展结点 图3最终结果 【算法分析】 本程序的主要函数ShorestPaths的时间复杂度为: O(n*(n-1)),最坏时间复杂度为: O(n*n) 【实验总结】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 分枝 限界 法最短 路径 问题