分布式算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法设计与分析
SA16011041 楼松豪
分布式算法
1.分析在同步和异步模型下,convergecast算法的时间复杂性
答:引理:在汇集算法的每个容许执行里,树中每个高为t子树根结点在第轮里收到所有孩子的msg。
(1)在同步模型中,最坏情况下,算法每轮只有一个msg传递,而最
大的论数为n-1轮,此时生成树是一条直线,所以时间复杂度为
O(n-1);
(2)异步模型中,每个距离pr为t的处理器pi发送的消息至多需要t
时间才能被pr收到,因此与同步模型相同,在最坏情况下,其时
间复杂度为O(n-1),即所有节点都在一条直线上时。
2.证:从pr可达当且仅当它曾设置过自己的parent变量
答:必要性:因为图G是由parent和children确定的静态图,任一节点在收到M后才会加入到图中。即可达节点收到过M,执行了算法2.2的第五行。由于是容许执行的,所以第7行(parent:=j)也会执行。
充分性:若算法2.2的第7行执行过了,因为是容许执行,则必然有第5行也执行过了。即节点收到过M。而M又是从pr发出的,所以该节点是从pr可达的。
3.证明Alg2.3构造一棵以Pr为根的DFS树。
答:证明:
(1)连通性:算法2.3构造的图必然是连通的,因为原图是连通的,
反证法:假设pi和pj相邻,pi是从pr可达的,但pj是不可达
的,因为从pr可达当且仅当它曾设置过自己的parent变量,则
pi必设置过自己的parent,而pj的parent=nill,又因为pj属于
pi的unexplored集合,所以pi必会发送M给pj,而pj接收到
M后根据算法将自己parent设置为pi,这与假设矛盾。因此图
连通的。
(2)无环:假设它是有环的,则设环为p1,p2,p3...pi,p1.又设p1是环
中最早收到M的,它的parent为pi,且M会沿着环传递到pi
而pi发送M到p1时,因为parent为非空,会发送reject信息
给pi,因此pi和p1之间不可能有边,所以矛盾。因此,图无
环。
(3)图G是DFS树,只需证明子节点总是先于兄弟节点访问。假设
p1有两个相邻节点p2和p3,且p2无法不经过p1到达p3,当
M第一次到达p1时,根据算法第12行,假设p1先给p2发送
M,根据代码19行,只有当p2的unexplored集为空,即p2给
的所有子节点都发送M后,p2才会给p1发送parent信息,此
时p1才可能给p3发送信息M,因此子节点必优于兄弟节点访
问,因此其为DFS树
4.证明Alg2.3的时间复杂性为O(m)。
答:
(1) 同步模型:在每一轮中,根据算法,只有一个M 或者parent 或者reject 在传输,根据算法第6,14,16,20,25上可知,每次只给一个处理器发送消息,又因为所有处理器只有在收到消息后才被激活,所以不存在多个处理器在一轮发送消息的情况,因此时间复杂度也是O(m)。 (2) 异步模型:根据算法,在同一时刻内,只有一个消息在传输,因此
时间复杂度与消息复杂度相同,均为O(m)。
综上:Alg2.3的时间复杂性为O(m)。
5. 修改Alg2.3获得一新算法,使构造DFS 树的时间复杂性为O(n),并证明。
答:可以在每个处理器上维护一个变量表示本处理器已知哪些处理器转发过消息M ,并在第一次发送消息M 的同时,给别的邻居发送消息Q 表示该处理器已经转发过消息M 了,当处理器收到Q 时,维护新加的变量,将相应的变量改为已知。或者在发送M 和parent 的同时,发送一记录已发送过M 的处理器的数组。根据此方法,那些已经转发过M 的处理器将不会收到M ,因此树外边也就不会耗时,时间复杂度减为O(n)。
6. 证明同步环上不存在匿名的、一致性的Leader 选举算法
答:由Lemma3.1: 在环R 上算法A 的容许执行里,对于每轮k ,所有处理器的状态在第k 轮结束时是相同的。因为环是同步的且只有一种初始配置,因此假设算法A 的一个合法执行选出pi 为leader ,初始配置一样,算法一样且同步,所以环上所有节点都会有相同的状态,最终宣布自己是leader ,与结论矛盾,因此同步环上不存在匿名的、一致性的Leader 选举算法。
7. 证明异步环系统中不存在匿名的Leader 选举算法。
答:因为环上的每个节点初始配置相同,且运行算法也相同,只是消息在信道中的速度不同,所以每个节点接受的消息序列相同,所以所有节点最终的状态会相同,若一个节点宣布自己为leader ,则其他节点在有限时间内也会宣布自己是leader 。因此异步环不可能有匿名的leader 选举算法。
8. 若将环Rrev 划分为长度为j (j 为2的幂)的连续片段,则所有这些片段是
次序等价的。
答:证明:对一个整数P(0≤P≤n−1),可以表示为:
P =∑a i ∙2i−1m
i=1
其中m=lg n,则有rev(P)=∑a i ∙2
m−1
m i=1。 设P 、Q 在同一个片段上,P1、Q1在同一片段上,且设这两个片段时相邻的,由模运算的加法可得:P1=P+ l ;Q1=Q + l 。l 表示片段的长度,l=2k 。 又因为:
m
Q=∑b i∙2i−1
i=1
且P、Q在同一个片段上,有
|P-Q| 所以存在r(0≤r≤k),满足a r ≠b r。否则,|P−Q|≥l。这与P、Q在同一个片段上矛盾。 设s=min{r},则根据rev(P),rev(Q)的表示方法可得: sign(rev(P)-rev(Q))=sign (a s-b s) 而 m P1=P+1=∑a i∙2i−1+2k i=1 m Q1=Q+1=∑b i∙2i−1+2k i=1 显然,P与P1的前k位相同,Q与Q1的前k位相同。由0≤s≤k得 sign(rev(P1)-rev(Q1))=sign (a s-b s) 这两个相邻片段是序等价的,根据等价的传递关系,可得所有的片段都是次序等价