实验名称:第十一章最短路问题一、实验内容与要求掌握Dijkstra算法和Floyd算法,并运用这两种算法求一些最短路径的问题。
二、实验软件MATLAB7.0三、实验内容1、在一个城市交通系统中取出一段如图所示,其入口为顶点v1,出口为顶点v8,每条弧段旁的数字表示通过该路段所需时间,每次转弯需要附加时间为3,求v1到v8的最短时间路径。
V1 1 V2 3 V3 1 V5 6 V6V4 2 V7 4 V8程序:function y=bijiaodaxiao(f1,f2,f3,f4)v12=1;v23=3;v24=2;v35=1;v47=2;v57=2;v56=6;v68=3;v78=4; turn=3;f1=v12+v23+v35+v56+turn+v68;f2=v12+v23+v35+turn+v57+turn+v78;f3=v12+turn+v24+turn+v47+v78;f4=v12+turn+v24+v47+turn+v57+turn+v56+turn+v68; min=f1;if f2<minmin=f2;endif f3<minmin=f3;endif f4<minmin=f4;endminf1f2f3f4实验结果:v1到v8的最短时间路径为15,路径为1-2-4-7-8.2、求如图所示中每一结点到其他结点的最短路。
V110 V3V59 V6floy.m中的程序:function[D,R]=floyd(a)n=size(a,1);D=afor i=1:nfor j=1:nR(i,j)=j;endendRfor k=1:nfor i=1:nfor j=1:nif D(i,k)+D(k,j)<D(i,j)D(i,j)=D(i,k)+D(k,j);R(i,j)=R(i,k);endendendkDRend程序:>> a=[0 3 10 inf inf inf inf inf;3 0 inf 5 inf inf inf inf;10 inf 0 6 inf inf inf inf;inf 5 6 0 4 inf 10 inf ;inf inf inf 4 0 9 5 inf ;inf inf inf inf 9 0 3 4;inf inf inf 10 5 3 0 6;inf inf inf inf inf 4 6 0;];[D,R]=floyd(a)实验结果:D =0 3 10 Inf Inf Inf Inf Inf3 0 Inf 5 Inf Inf Inf Inf10 Inf 0 6 Inf Inf Inf InfInf 5 6 0 4 Inf 10 Inf Inf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6 Inf Inf Inf Inf Inf 4 6 0R =1 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8. k =1D =0 3 10 Inf Inf Inf Inf Inf3 0 13 5 Inf Inf Inf Inf10 13 0 6 Inf Inf Inf InfInf 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 4 5 6 7 81 2 1 4 5 6 7 81 1 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8 k =2D =0 3 10 8 Inf Inf Inf Inf3 0 13 5 Inf Inf Inf Inf10 13 0 6 Inf Inf Inf Inf8 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6 Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 5 6 7 81 2 1 4 5 6 7 81 1 3 4 5 6 7 82 234567 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8k =3D =0 3 10 8 Inf Inf Inf Inf3 0 13 5 Inf Inf Inf Inf10 13 0 6 Inf Inf Inf Inf8 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6 Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 5 6 7 81 2 1 4 5 6 7 81 1 3 4 5 6 7 82 234567 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8. k =4D =0 3 10 8 12 Inf 18 Inf3 0 11 5 9 Inf 15 Inf10 11 0 6 10 Inf 16 Inf8 5 6 0 4 Inf 10 Inf12 9 10 4 0 9 5 InfInf Inf Inf Inf 9 0 3 418 15 16 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 2 6 2 81 2 4 4 4 6 4 81 4 3 4 4 6 4 82 234567 84 4 4 4567 81 2 3 4 5 6 7 84 4 4 4567 81 2 3 4 5 6 7 8 k =5D =0 3 10 8 12 21 17 Inf3 0 11 5 9 18 14 Inf10 11 0 6 10 19 15 Inf8 5 6 0 4 13 9 Inf12 9 10 4 0 9 5 Inf21 18 19 13 9 0 3 417 14 15 9 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 2 2 2 81 2 4 4 4 4 4 81 4 3 4 4 4 4 82 2345 5 5 84 4 4 4567 85 5 5 5 567 85 5 5 5 567 81 2 3 4 5 6 7 8 k =6D =0 3 10 8 12 21 17 253 0 11 5 9 18 14 2210 11 0 6 10 19 15 238 5 6 0 4 13 9 1712 9 10 4 0 9 5 1321 18 19 13 9 0 3 417 14 15 9 5 3 0 625 22 23 17 13 4 6 0 R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 4567 65 5 5 5 567 85 5 5 5 567 86 6 6 6 6 67 8. k =7D =0 3 10 8 12 20 17 233 0 11 5 9 17 14 2010 11 0 6 10 18 15 218 5 6 0 4 12 9 1512 9 10 4 0 8 5 1120 17 18 12 8 0 3 417 14 15 9 5 3 0 623 20 21 15 11 4 6 0R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 45 7 7 77 7 7 7 7 6 7 85 5 5 5 567 87 7 7 7 7 6 7 8 k =8D =0 3 10 8 12 20 17 233 0 11 5 9 17 14 2010 11 0 6 10 18 15 218 5 6 0 4 12 9 1512 9 10 4 0 8 5 1120 17 18 12 8 0 3 417 14 15 9 5 3 0 623 20 21 15 11 4 6 0R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 45 7 7 77 7 7 7 7 6 7 85 5 5 5 567 87 7 7 7 7 6 7 8D =0 3 10 8 12 20 17 233 0 11 5 9 17 14 2010 11 0 6 10 18 15 218 5 6 0 4 12 9 1512 9 10 4 0 8 5 1120 17 18 12 8 0 3 417 14 15 9 5 3 0 623 20 21 15 11 4 6 0 R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 45 7 7 77 7 7 7 7 6 7 85 5 5 5 567 87 7 7 7 7 6 7 8四、实验体会。