路由算法-Chandy-Mistra算法

本文介绍了一种利用扩散计算的分布式算法来寻找图中所有节点到特定节点V0的最短路径。该算法从V0节点开始,通过消息传递的方式更新其他节点到V0的距离,并确保每个节点都拥有到达V0的最优路径。

计算同一目的节点所有最短路径算法,利用了扩散计算。即一种分布式计算,由一个节点初始化,其他节点一接到消息后就加入。

       要计算所有节点到节点V0的距离,每一节点u从Du[v0]=∞开始并等候接收消息。节点V0将消息<mydist,v0,0>发送到所有近邻中。当节点u接近到近邻w的消息<mydist,V0m,0>发送到所有近邻中。当节点u接到近邻w的消息<mydist,v0,d>时,其中d+Wuw<Dc[v0]时,u将d+Wuw赋给Du[v0]。并向所有近邻发送消息<mydist,v0,Du[v0]>。

      算法如下:

     var Du[v0]:weight  init ∞;

           Nbu[v0]:node init udef;

    For node v0 only:

          begin Dv0[v0]=0;

                    forall w∈Neighv0 do send <mydist,v0,0> to w

          end

   Processing a <mydist,v0,d> message from neighbor w by u;

         {<mydist,v0,d>∈Mwu}

          begin receive <mydist,v0,d> from w;

                    if d+Wuw<Du[v0] then

                          begin Du[v0]:=d+Wuw;Nbu[v0]:=w;

                                    forall x∈Neighu do send <mydist,v0,Du[v0]> to x

                          end

          end

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值