- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
算法第二次作业
李博杰S2.1分析在同步和异步模型下,convergecast算法的时间复杂性。
解:(1)同步模型:由于convergecast算法按照生成树来汇聚最大值,每个节点仅向其父节点发送一条消息,共有n-1条消息。最坏情况下算法的每一轮中只有一条消息传递(当生成树退化成链表时),共有n-1轮,故时间复杂度为O(n-1)。
(2)异步模型:每个节点到其距离最远的叶子节点的路径长度决定了其收到消息的时间。最坏情况下路径长度为n-1(当生成树退化成链表时),故时间复杂度为O(n-1)。
2.2证明在引理2.6中,一个处理器在图G中是从Pr可达的,当且仅当它曾设置过自己的parent变量。
证明:(1)必要性:处理器A在图G中从Pr可达,则它给parent变量赋值。当A为根时,它在算法第4行给parent赋值。
当A不为根时,对A到Pr的最短路径的跳数用数学归纳法:
跳数为1时,Pr在第三行给它的所有邻居发消息,处理器A在算法第5行会收到消息,并在第7行给parent赋值;
假设跳数为n-1的处理器都在第7行给parent变量赋过值,则由于是容许执行,它会在第9行给除parent以外的所有邻居发消息。跳数为n的处理器A至少有一个跳数为n-1的邻居,且该邻居的parent不是A(否则A的跳数=n-2),故能在第5行收到消息并在第7行给parent赋值。
(2)充分性:处理器A曾设置过自己的parent变量,则A在图G中从Pr可达。当A为根时,A显然从自身可达。
当A不为根时,其只可能在第7行给parent赋值,由于是容许执行,第5行也必然执行过了,也就是A收到过消息M。由于消息M只从Pr发送出来,从Pr到A之间可达。
2.3证明Alg2.3构造一棵以Pr为根的DFS树。
证明:首先证明引理:Alg2.3执行过程中,恰有一条消息在图中传递。
证:初始状态只有根节点发送一条消息;由算法,任一非根节点收到一条消息后,都恰好向一个节点发出一条消息。根节点收到一条消息时,或者恰好发出一条消息,或者算法终止。因此图中不可能存在两条消息在同时传递。
其次证明Alg2.3的有穷性,即Alg2.3必定能够终止。图中的每个节点至多向其每个相邻节点发送一次M消息;每个节点至多向其相邻节点发送一条parent消息或reject消息(parent和reject不会同时出现)。设图中有m条边,每条边上两个方向至多各有两条消息,故消息总数至多为4m。由引理,这些消息发送时间至多为4t,因此算法能够在有限时间内终止。
回到原命题。若证生成的是DFS树,只需证其连通性、无环性、深度优先性。
(1)连通性。假设存在相邻的节点A,B,算法结束时,A在DFS树中,B不在DFS树。由于A、B相邻,B初始时在A的unexplored集合里。由算法的有穷性,A向任意邻居C发出任意一条M消息,都会从C收到parent或reject消息,触发算法第17、25行;A收到M消息时会触发算法第11、14行。故算法结束时,unexplored集合为空,其中必有一次从unexplored集合中取出的是B,在14或25行向B发出M消息。B收到M消息后应当加入DFS树,矛盾。
(2)无环性。设生成的图中有一个环P1,P2,…Pi,P1。不失一般性,设P1是该环中最早接收到M消息的节点,且其M消息首先传给了P2。则P1是P2的parent……Pi是P1的parent。由于Pi是P1的parent,故Pi必向P1发送了M消息。由于在此之前,P1已经收到过M消息并将该消息传递给P2,根据算法Pi应当拒绝该M消息,矛盾。
(3)深度优先性。只需证明在子节点与兄弟节点都未访问时,先加入DFS树的一定是子节点。由引理知,任意时刻只有一个节点活跃,在向其一个邻居发送消息。由算法知,节点会向非parent的一个邻居节点(即一个子节点)发送消息,此时兄弟节点不可能接收到消息。
2.4证明Alg2.3的时间复杂性为O(m)。
证明:(1)同步模型
由2.3题的引理知,每一轮中恰有一条消息在传输。又由2.3题的算法有穷性证明知,对m条边的图,至多发送4m条消息,故时间复杂度为O(4m)=O(m)。
(2)异步模型
由于每个时刻恰有一条消息在传输,时间复杂度与消息复杂度一致,均为O(4m)=O(m)。
2.5修改Alg2.3获得一新算法,使构造DFS树的时间复杂性为O(n)。
解:当A给B发送消息M的时候,A向除A的parent和B以外的邻居发送消息X。每个节点维护一个收到消息X的邻居节点集合,以后不向集合内的这些元素发送M。
这样消息M只会在生成树的边上传递。不然,假设消息M在生成树以外的边B=A上传递了,也就是发送消息时(时刻记为T)A、B都已经在生
文档评论(0)