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" 亚硫酸钠是一种常见的化学品,在工业生产、医疗、科学研究等领域中有广泛的应用。但是,亚硫酸钠也存在一定的危险性,需要正确地存储、使用和处理。以下是亚硫酸钠的安全技术说明书,旨在...
这个标题"AT91M55800A-BasicADC-GHS3_6-2_0_AT91M55800A_源码"暗示了我们正在讨论的是关于AT91M55800A微控制器的一个基本模拟到数字转换器(ADC)相关的软件开发项目,版本号可能是GHS3_6_2_0。"BasicADC"部分可能是指...
"AT91M42800A-UsartPDC-GHS3_6-2_0_AT91M42800A_"这个标题可能指的是一个针对该微控制器的固件或驱动程序开发包,其中包含了关于通用异步接收发送器(USART)和周期性数据传输控制器(PDC)的实现,GHS3可能是某种...
标题中的"AT91M42800A-Interrupt-GHS3_6-2_0_AT91M42800A_"暗示了这是一个关于AT91M42800A微控制器的中断处理相关的软件包,版本号可能是GHS3.6.2.0。这个芯片是基于ARM架构的,因此涉及到的知识点首先围绕ARM处理器...
在`Ghs-master`压缩包中,可能包含了以下文件和目录: 1. `src`: 存放源代码的目录,通常包含`main`和`test`两个子目录,分别存放主程序代码和测试代码。 2. `main`: 包含`java`文件,如`Graph.java`用于表示图,`...
标题 "AT91M42800A-Empty-GHS3_6-2_0_at91m42_empty_" 提供的信息表明,这是一款基于AT91M42800A微控制器的软件开发资源包。AT91M42800A是由Atmel公司(现已被Microchip Technology收购)设计的一款8位微处理器,常...
在本书中,作者给出设计,实现和分析分布式算法的蓝图。本书适合学生、程序员、系统分析员和研究人员等不同类型的读者。本书包括这个领域最重要的算法和不可能解.而且都采用简单的自动机理论进行论述。对所有算法...
AT91M42800A-ISO7816App-GHS3_6-2_0_iso7816_AT91-Microcontroller_源这个压缩包文件主要涉及的是AT91微控制器与ISO 7816标准的应用。AT91微控制器是Atmel公司(现已被Microchip Technology收购)推出的一款嵌入式微...
GHS标签象形图.pdf GHS(Globally Harmonized System of Classification and Labelling of Chemicals,全球化学品分类和标签统一系统)是国际上通用的化学品分类和标签系统。本文档提供了GHS标签象形图的说明,涵盖...
分布式最小生成树 (MST) 问题涉及在节点通过消息传递进行通信的网络中通过分布式算法构建最小生成树。 相反,如果有多个进程,我将使用多个线程来模拟真实世界的场景。 如果有人想使用此代码,您可以自由使用。 ...
这个3D模型包含了一系列从2针到15针的不同接口配置,覆盖了SM02B-GHS-TB到SM15B-GHS-TB的所有型号。每个型号的差异主要在于它们的引脚数量,这为设计工程师提供了灵活的选择,以适应不同需求的电路连接。 GH1.25...
GHS Mastodon Bot GHS(搞黄色)是Mastodon机器人,用于发布色情媒体...sudo docker build -t tsingjyujing/ghs-mastodon-bot . 建立环境或直接拉图像。 蜘蛛 介绍 Spider用于从Internet收集数据,它主要基于以下
全球化学品统一分类和标签制度-(GHS).ppt
"ghs-multi-arm"标签可能指的是Green Hills Software的Multi IDE,这是一个专为多处理器和嵌入式系统设计的强大开发环境。它支持多种ARM架构,包括AT91M42800A,提供了集成的编译器、调试器、模拟器等功能,便于...
历史上,Weil/Tate配对算法是配对计算的基础,而后续的优化研究工作包括2002年的Barreto-Kim-Lin-Scott算法、GHS算法,以及2007年的Hess-Smart-Vercauteren算法等,都在大幅度提升配对计算的效率。 Pairing技术的...
针对传统基于遗传算法的社团发现算法容易陷入局部最优解、执行效率低、时间复杂度高的问题,GHS算法采用和声算法作为框架,并结合标签传播思想来生成初始和声库,提高了算法的多样性和精度。同时,通过遗传算法的双...
4. AT91RM9200-BasicBoot-GHS3_6-2_0:这个版本的示例可能使用了不同的编译器或开发环境(GHS),同样关注启动过程,但可能包含特定于工具链的优化。 5. AT91RM9200-BasicSPIKeyboard-GHS3_6-2_0:展示了如何通过...
针对和声搜索算法的不足, 提出了一种自适应改进和声—单纯形进化...采用六个标准的优化算法测试函数对AIHSEA进行测试, 并与HS、IHS和GHS算法进行对比, 仿真结果表明AIHSEA算法具有较强的精确寻优和跳出局部最优的能力。
+ 物质中含有与爆炸性相关的含氧原子团,而计算出的氧平衡小于 -200 + 有机物质或有机物质的均匀混合物含有具有爆炸性的原子团,但分解热低于 500J/g ,放热分解起始温度低于 500℃ + 对于无机氧化性物质和有机...
《GHS-BuildSheetData-ForRH850.pdf》是GreenHills Software为瑞萨RH850系列处理器提供的一份编译手册,主要针对嵌入式V850和RH850应用的构建过程。这份文档详细介绍了如何使用GreenHills的MULTI集成开发环境(IDE)...