云南大学软件学院计算机网络原理报告8_第1页
云南大学软件学院计算机网络原理报告8_第2页
云南大学软件学院计算机网络原理报告8_第3页
云南大学软件学院计算机网络原理报告8_第4页
云南大学软件学院计算机网络原理报告8_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 实验八、Link States Algorithm的实现序号: 姓名: _ 学号: _ 成绩 指导老师: 刘宇 刘春花 1实验目的:通过编程模拟实现LSA.2实验环境:VS.net软件开发平台,可以使用任何编程语言。3实验要求(1)求网络中任何两个结点之间的最短路径(网络中至少有4个节点)。(2)得到任何一个节点上的转发表。实验内容、拓扑结构Initialization: 2 N = u /*u is source node*/3 for all nodes j /* j is dest node*/4 if j adjacent to u 5 then D(j) = c(u,j) 6 el

2、se D(j) = 7 8 Loop 9 find i not in N such that D(i) is a minimum 10 add i to N 11 update D(j) for all j adjacent to i and not in N : 12 D(j) = min( D(j), D(i) + c(i,j) ) 13 /* new cost to j is either old cost to j or known 14 shortest path cost to i plus cost from i to j */ 15 until all nodes in N 程

3、序:#include#include#define INFINITY 10000 /最大距离 #define MAX_NODES 50 /最大节点数 int distMAX_NODESMAX_NODES; /distij表示从 i 到 j 的距离int pathMAX_NODES;typedef structint vexnum;int vexMAX_NODES;graph;void init_graph(graph *g)int a,x,y=0;g-vexnum = 5; for(a =0;avexnum;a+)g-vexa=a;for(x=0;xvexnum;x+)for(y=0;yvex

4、num;y+)distxy=INFINITY;dist01 = 7;dist04 = 1;dist10 = 7;dist12 = 1;dist14 = 8;dist21 = 1;dist23 = 2;dist32 = 2;dist34 = 2;dist40 = 1;dist41 = 8;dist43 = 2;void shortest_path(int s, int t,int n) struct state int predecessor; /前驱节点 int length; /到起始点的距离 int label; stateMAX_NODES; int i,k,min; struct st

5、ate * p; for(p=&state0; ppredecessor = -1; p-length = INFINITY; p-label = 0; statet.length = 0; statet.label = 1; k = t; /k 是当前工作节点 do for(i=0; in; i+) if(distki!=0 & statei.label=0) if(statek.length+distkistatei.length) statei.length = statek.length+distki; statei.predecessor = k; k=0; min=INFINITY

6、; for(i=0; in; i+) if(statei.label=0 & statei.lengthmin) k=i; min=statei.length; statek.label = 1; while(k!=s); i=0; k=s; do pathi = k; k = statek.predecessor; printf(=0); int main()int m;graph g;g.vexnum = 5;init_graph(&g);printf(从A点出发到其他各点的最短路径如下所示:n);printf(n注:0-A点;1-B点;2-C点;3-D点;4-E点n);for(m=1;m

7、g.vexnum;m+)printf(n从编号为0的A点出发,到编号为%d的结点的最短路径为:n,m);shortest_path(g.vexm,g.vex0,g.vexnum);return 0; ABECD718122通过链路状态算法计算A点到其它各点的cost,最终输出A的路由表。A的转发表: B C D E 最短路径(A,E,D,C,B) (A,E,D,C) (A,E,D) (A,E) 成本值 6 5 3 14实验分析,回答下列问题(1)给出LSA算法的主要思想。答:首先引入一个辅助变量Di,它表示当前所找到的从始点到每个终点的最短路径的长度,它的初态为若有弧则为弧的权值,若无则为无穷

8、大,且U为已经找到最短路径的结点的集合,首先比较不属于U集合的结点到始点的成本,将最小的结点并入U中,然后以该结点为桥梁找到始点到其余各终点的新的最短路径,即若始点到该点的成本与该点到终点的和小于始点到终点的成本,则设该成本为始点到终点的最短路径,然后再找出各终点到始点的最短路径集合的最小值的终点并入集合U,再循环执行上述步骤直到所有结点都并入U为止。(2)通过图表算出任何两个节点之间的最短路径,并给出每个节点上的转发表。A的转发表: B C D E 最短路径(A,E,D,C,B) (A,E,D,C) (A,E,D) (A,E) 成本值 6 5 3 1B的转发表: A C D E 最短路径 (B,C,D,E,A) (B,C) (B,C,D) (B,C,D,E) 成本值 6 1 3 5C的转发表: A B D E 最短路径 (C,D,E,A) (C,B) (C,D) (C,D,E)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论