SPF算法
1.Dijkstra算法解释(来自E.W.Dijkstra原稿)
构造一棵树[a],使n个节点之间的总长最小(树是一个在每两个节点之间仅有一条路径的图)。
在我们给出构造过程中,分支被分成3个集合:
Ⅰ:被明确分配给构造中的树的分支(他们将在子树中);
Ⅱ:这个分支的隔壁分枝被添加到集合1;
Ⅲ:剩余的分支(抛弃或不考虑);
节点被分成两个集合:
A: 被集合1中的分支连接的节点;
B:剩余的节点(集合2中有且仅有一个分支将指向这些节点中的每一个节点);
下面我们开始构造树,首先选择任意一个节点作为集合A中仅有的成员,并将所有拿这个节点做端点的分支放入集合Ⅱ中。开始集合Ⅰ是空的。然后我们重复执行下面两步。
步骤一:集合Ⅱ中最短的分支被移出并加入集合Ⅰ。结果,一个节点被从集合B传送到集合A。
步骤二:考虑从这个节点(刚才被传送到集合A中的节点)通向集合B中节点的分支。如果构建中的分支长于集合Ⅱ中相应的分支,那么分支被丢弃;否则,用它代替集合Ⅱ中的相应的分支,并且丢弃后者。
接着我们回到算法的第一步并重复此过程直到集合Ⅱ和集合B为空。集合Ⅰ中的分支形成索要的树
2.路由器中的最短路径优先算法
在Djikstra算法中描述了3个分支集合:Ⅰ、Ⅱ、Ⅲ。在路由器的算法中用三个数