`
deepfuture
  • 浏览: 4430714 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80333
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70814
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:104016
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:287492
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15131
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:68335
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32554
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46261
社区版块
存档分类
最新评论

分布式计算-GHS算法选举算法

阅读更多

1、GHS算法只需要局部知识就能得到最优消息复杂度。

2、

1)保持片断集合,满足所有片断的并集包括所有节点。

2)初始时,集合中包含的每个节点是由一个节点组成的片断。

3)通过片断中节点找出片断的最小带权出边。

4)当已知片断的最小带权出边时,通过增加出边,将片断之间连接过来。

5)当只剩一个片断时,算法终止。

3、

1)片断名:每个片断中的进程有相同的名字,通过比较片断名,进程就知道一条边属于内部边还是出边。

2)大小片断的组合:当组合2个片断时,将较小者组合进较大者中,用较大片断名作为新片断名。

3)片断级:每个片断有一个级,用于相互比较的依据。

当片断F1与更高一级的片断F2组合后,新片断F1∪F2的级与F2相同。

2个同级片断的组合形成一个新的片断,级别比当前被组合的片断高一级,片断的新名字为组合2个片断的边上的权值,这条边称为新片断的核心边。核心边所连接的2个节点称为核心节点。

4、组合策略概述。

规则A:如果eF通向L <L'的片断F'=(FN’,L‘),F组合成F’,新片断名为FN‘,片断级为L’,这些新值被发送到F中所有进程中。

规则B:如果eF通向L=L'的片断F‘=(FN',L'),且eF'=eF,这2个片断组合成新片断,片断级为L+1,片断名为w(eF),这些新值被发送到F和F‘中所有进程中。

规则C:在所有其他情况下,片断F必须等待直到规则A或规则B被应用。

5、每个信道pq 的状态stachp[q],状态是分支的,如果得知它是MST中一条边;该状态是reject(废弃的),如果它是MST中的一条边;该状态是basic(基本的),如果这条边仍未用。对于片断P,fatherp是通向片断中核心边的边。

6、

var statep   :(sleep,find,found)

      stachp[q]  :(basic,brach,reject) for each∈Neighp

      namep,bestwtp     :real;

      levelp          :integer;

      testchp,bestchp,fatherp  :Neighp;

      recp:integer;

 

(1)As the first  action of each process,the algorithm must be initialized:

begin let pq be the channel of p with smallest weight;

          stachp[q]:=brach;levelp:=0;

           statep:=found;recp:=0;

           send <connect,0> to q

end

 

(2)Upon receipt of <connect,L> from q:

begin if L<levepp then (*规则A*)

           begin stachp[q]:=brach;

                     send <initiate,levelp,namep,statep> to q

          end

    else if stachp[q]=basic

                then  (*规则C*) process the message later

                else  (*规则B*) send <initiate,levelp+1,w(pq),find> to q

end

 

(3)Upon receipt of <initatie,L,F,S> from q:

     begin levelp:=L;namep:=F;statep:=S;fatherp:=q;

               bestchp:=udef;bestwtp:=∞; 

               forall r∈Neighp:stachp[r]=branch∧r≠q do

                         send <initiate,L,F,S> to r;

               if statep=find then begin recp:=0;test end

   end

 

(4)procedure test:(*寻找出边,即寻找通过另一个片断的边*)

begin if q∈Neighp;stachp[q]=basic then

             begin testchp:=q with stachp[q]=basic and w(pq) minimal;

                       send <test,levelp,namep> to testchp

            end

        else begin testchp:=udef;report end

end

 

(5)upon receipt of <test,L,F> from q:

 begin if L>levelp then

               process the message later

           else if F=namep then (*内部边*)

                      begin if statchp[q]=basic then stachp[q]:=reject;

                               if q≠testchp

                                   then send <reject> to q

                                   else test

                       end

                   else send <accept> to q

end

 

(6)upon receipt of <accept> from q:

       begin testchp:=udef;

                   if w(pq)<bestwtp

                            then begin bestwtp:=w(pq);bestchp:=q end;

                        report

     end

 

(7)upon receipt of <reject> from q:

begin if stachp[q]=basic then stachp[q]:=reject;

           test

end

 

(8)procedure report:

begin if recp=#{q:stachp[q]=branch∧q≠fatherp}

               and testchp=udef then

           begin statep:=found;send <report,bestwtp> to fatherp end

end

 

(9)upon receipt of <report,w> from q:

begin if q≠fatherp

          then

                  begin if w<bestwtp then

                              begin bestwtp:=w;bestchp:=q end;

                            recp:=recp+1;report

                 end

          else(*pq是核心边*)

                 if statep=find

                      then process this message later

                 else if w>bestwtp

                            then changeroot

                            else if w=bestwtp=∞ then stop

  end

 

(10)procedure changeroot:

       begin if stachp[bestchp]=branch

                 then send <changeroot> to bestchp

                 else begin send <connect,levelp> to bestchp;

                                  stachp[bestchp]:=branch

                        end

        end

 

(11)upon receipt of <changeroot>:

      begin changeroot end

 

7、

1)<connect,L>是连接两个被组合的片断形成新片断的边传递的消息。是由片断级小的进程发送给片断级大的进程。如果2个片断级一样,则互相交换

2)<initiate,...>消息用于把新片断的消息在新片断内扩散。

3)<report....>消息用于向每个子树报告这条最小带权出边。

4)当核心节点的2条消息<reportt,w>相遇时,核心节点知道最小带权出边(通向片断外的边)的权值。如果在该点上根本没有出边报告,则算法终止。如果报告一条出边,从报告最好边的核心节点开始,沿着每个节点中的bestch指针找到最好的边。消息<connect,L>必须通过这条边发送,片断中所有father指针必须指向这个方向,可以通过发送出消息<changeroot>完成。当<changeroot>到达依附最小带权出边的节点时,这个节点通过最小带权出这发送消息<connect,L>进行新一轮的片断组合

               

 

 

 

分享到:
评论

相关推荐

    亚硫酸钠MSDS-GHS.pdf

    "亚硫酸钠MSDS-GHS.pdf" 亚硫酸钠是一种常见的化学品,在工业生产、医疗、科学研究等领域中有广泛的应用。但是,亚硫酸钠也存在一定的危险性,需要正确地存储、使用和处理。以下是亚硫酸钠的安全技术说明书,旨在...

    AT91M55800A-BasicADC-GHS3_6-2_0_AT91M55800A_源码

    这个标题"AT91M55800A-BasicADC-GHS3_6-2_0_AT91M55800A_源码"暗示了我们正在讨论的是关于AT91M55800A微控制器的一个基本模拟到数字转换器(ADC)相关的软件开发项目,版本号可能是GHS3_6_2_0。"BasicADC"部分可能是指...

    AT91M42800A-UsartPDC-GHS3_6-2_0_AT91M42800A_

    "AT91M42800A-UsartPDC-GHS3_6-2_0_AT91M42800A_"这个标题可能指的是一个针对该微控制器的固件或驱动程序开发包,其中包含了关于通用异步接收发送器(USART)和周期性数据传输控制器(PDC)的实现,GHS3可能是某种...

    AT91M42800A-Interrupt-GHS3_6-2_0_AT91M42800A_

    标题中的"AT91M42800A-Interrupt-GHS3_6-2_0_AT91M42800A_"暗示了这是一个关于AT91M42800A微控制器的中断处理相关的软件包,版本号可能是GHS3.6.2.0。这个芯片是基于ARM架构的,因此涉及到的知识点首先围绕ARM处理器...

    Ghs:GHS分布式算法模拟器

    在`Ghs-master`压缩包中,可能包含了以下文件和目录: 1. `src`: 存放源代码的目录,通常包含`main`和`test`两个子目录,分别存放主程序代码和测试代码。 2. `main`: 包含`java`文件,如`Graph.java`用于表示图,`...

    AT91M42800A-Empty-GHS3_6-2_0_at91m42_empty_

    标题 "AT91M42800A-Empty-GHS3_6-2_0_at91m42_empty_" 提供的信息表明,这是一款基于AT91M42800A微控制器的软件开发资源包。AT91M42800A是由Atmel公司(现已被Microchip Technology收购)设计的一款8位微处理器,常...

    分布式算法 作者:(美)Nancy A.Lynch 舒继武 李国东part1

    在本书中,作者给出设计,实现和分析分布式算法的蓝图。本书适合学生、程序员、系统分析员和研究人员等不同类型的读者。本书包括这个领域最重要的算法和不可能解.而且都采用简单的自动机理论进行论述。对所有算法...

    AT91M42800A-ISO7816App-GHS3_6-2_0_iso7816_AT91-Microcontroller_源

    AT91M42800A-ISO7816App-GHS3_6-2_0_iso7816_AT91-Microcontroller_源这个压缩包文件主要涉及的是AT91微控制器与ISO 7816标准的应用。AT91微控制器是Atmel公司(现已被Microchip Technology收购)推出的一款嵌入式微...

    GHS标签象形图.pdf

    GHS标签象形图.pdf GHS(Globally Harmonized System of Classification and Labelling of Chemicals,全球化学品分类和标签统一系统)是国际上通用的化学品分类和标签系统。本文档提供了GHS标签象形图的说明,涵盖...

    Distributed-Minimum-Spanning-Tree:C++中的分布式最小生成树

    分布式最小生成树 (MST) 问题涉及在节点通过消息传递进行通信的网络中通过分布式算法构建最小生成树。 相反,如果有多个进程,我将使用多个线程来模拟真实世界的场景。 如果有人想使用此代码,您可以自由使用。 ...

    GH1.25连接器 3D模型 stp

    这个3D模型包含了一系列从2针到15针的不同接口配置,覆盖了SM02B-GHS-TB到SM15B-GHS-TB的所有型号。每个型号的差异主要在于它们的引脚数量,这为设计工程师提供了灵活的选择,以适应不同需求的电路连接。 GH1.25...

    mastodon-ghs-bot:随机频道推动的mastodon-bot

    GHS Mastodon Bot GHS(搞黄色)是Mastodon机器人,用于发布色情媒体...sudo docker build -t tsingjyujing/ghs-mastodon-bot . 建立环境或直接拉图像。 蜘蛛 介绍 Spider用于从Internet收集数据,它主要基于以下

    全球化学品统一分类和标签制度-(GHS).ppt

    全球化学品统一分类和标签制度-(GHS).ppt

    AT91M42800A-Interrupt-ADS1_2-2_0_ghs-multi-arm_

    "ghs-multi-arm"标签可能指的是Green Hills Software的Multi IDE,这是一个专为多处理器和嵌入式系统设计的强大开发环境。它支持多种ARM架构,包括AT91M42800A,提供了集成的编译器、调试器、模拟器等功能,便于...

    加密算法的新发展-基于Pairing的密码技术(SM9算法)研究与应用

    历史上,Weil/Tate配对算法是配对计算的基础,而后续的优化研究工作包括2002年的Barreto-Kim-Lin-Scott算法、GHS算法,以及2007年的Hess-Smart-Vercauteren算法等,都在大幅度提升配对计算的效率。 Pairing技术的...

    安全技术-网络信息-社交网络中社团发现算法的研究与实现.pdf

    针对传统基于遗传算法的社团发现算法容易陷入局部最优解、执行效率低、时间复杂度高的问题,GHS算法采用和声算法作为框架,并结合标签传播思想来生成初始和声库,提高了算法的多样性和精度。同时,通过遗传算法的双...

    at91rm9200_software_examples.zip

    4. AT91RM9200-BasicBoot-GHS3_6-2_0:这个版本的示例可能使用了不同的编译器或开发环境(GHS),同样关注启动过程,但可能包含特定于工具链的优化。 5. AT91RM9200-BasicSPIKeyboard-GHS3_6-2_0:展示了如何通过...

    论文研究-自适应改进和声—单纯形进化算法研究.pdf

    针对和声搜索算法的不足, 提出了一种自适应改进和声—单纯形进化...采用六个标准的优化算法测试函数对AIHSEA进行测试, 并与HS、IHS和GHS算法进行对比, 仿真结果表明AIHSEA算法具有较强的精确寻优和跳出局部最优的能力。

    GHS培训课件.pptx

    + 物质中含有与爆炸性相关的含氧原子团,而计算出的氧平衡小于 -200 + 有机物质或有机物质的均匀混合物含有具有爆炸性的原子团,但分解热低于 500J/g ,放热分解起始温度低于 500℃ + 对于无机氧化性物质和有机...

    GHS-BuildSheetData-ForRH850.pdf

    《GHS-BuildSheetData-ForRH850.pdf》是GreenHills Software为瑞萨RH850系列处理器提供的一份编译手册,主要针对嵌入式V850和RH850应用的构建过程。这份文档详细介绍了如何使用GreenHills的MULTI集成开发环境(IDE)...

Global site tag (gtag.js) - Google Analytics