Algorithm 链路状态路由协议——Dijkstras算法
N-网络 R-路由器Algorithm 链路状态路由协议——Dijkstras算法,algorithm,networking,network-protocols,router,dijkstra,Algorithm,Networking,Network Protocols,Router,Dijkstra,N-网络 R-路由器 在上图中,您可以看到一个关于链路状态路由协议的问题。当你为R3做Dijkstra算法时,我知道你首先要加上N3和N4,然后看看成本,2小于4,所以N4变成永久性的,但是当N4变成永久性的时候,它会加上R4和R7吗?或者你只是选择其中一个?这个例子有点混乱,因为箭头,但我想我们可以假设这是一个顶点集为N的无向图 以下是Dijkstra的步骤: 为每个节点指定一个暂定距离值:对于初始节点,将其设置为零,对于所有其他节点,将其设置为无穷大 将所有节点标记为未访问。将初始节点设置为
在上图中,您可以看到一个关于链路状态路由协议的问题。当你为R3做Dijkstra算法时,我知道你首先要加上N3和N4,然后看看成本,2小于4,所以N4变成永久性的,但是当N4变成永久性的时候,它会加上R4和R7吗?或者你只是选择其中一个?这个例子有点混乱,因为箭头,但我想我们可以假设这是一个顶点集为N的无向图 以下是Dijkstra的步骤:
- Ad1
是初始节点,因此它获取距离R3
李>0
- Ad2<代码>R3是当前代码
- Ad3。访问
和N3
,分别将其暂定距离设置为N4
和4
2
- Ad4。将
标记为完成R3
- Ad5--李>
- 公元6年。选择
作为当前节点,然后返回步骤3N4
- Ad3。访问
和R4
,并将其暂定距离分别设置为R7
和6
3
- Ad4。将
标记为完成N4
- Ad5--李>
- 公元6年。选择
作为当前节点,然后返回步骤3R7
等等。Dijkstra算法的关键在于,在处理节点之前,永远不会丢弃节点
Step 1 : R3
N4 - 2
N3 - 4
Step 2 : N4
R7 - 3
N3 - 4
R4 - 6
Step 3 : R7
N3 - 4
R4 - 6
N6 - 9
在这一步中,您将N3作为与剩余R3最接近的,因此您将使用N3
Step 4 : N3
R4 - 6
R8 - 6
R2 - 6
N6 - 9
请注意,在每个步骤之后都有一个排序。因此,最低优先级队列应该会有所帮助。N4和N3都没有传出边缘,所以这些路径是无方向的吗?还有,我猜你是从R3开始的,你想去哪里?