gpt4 book ai didi

algorithm - 在具有领导者的异步分布式系统中,我如何找到与领导者的距离

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:10:58 24 4
gpt4 key购买 nike

需要考虑的事项

  • 这是异步的,因此存在竞争条件。
  • 图是无向的
  • 节点的数量和直径都是未知的
  • 每个节点只知道它的邻居和领导者

我的第一个策略是等到我收到所有邻居的消息并在广播前取最小值,但这导致只有领导者周围的第一层(距离=1)收到消息,因为他们不会收到来自真实距离为 2 的节点的消息。

最佳答案

我假设邻居之间每条边的长度为一。让每个节点维护一条通往领导者的路线,不一定是最短的(最初为空)。让每个节点在有通往领导者的可行路线后立即将路线和所有邻居的列表发送给这些邻居。

最初,领导者的邻居将发送他们的路由(一跳)。这将导致距离两跳的节点计算路由并将其发送出去。在 N 步之后,距离领导者 N 远的节点将至少有一条到它的路线,不一定是最短的。

一旦一个节点有一条通往领导者的路由,它就会将该路由连同其邻居列表发送到该路由上的下一跳节点,该节点将重新传输它及其邻居列表,根据路由本身,所以我们知道对路由的意见分歧不会导致消息无限循环发送。

领导者知道它的邻居,所以它知道它的所有邻居何时向它发送此信息,并且通常它有足够的信息知道它何时收到来自图中所有节点的报告。然后,它可以从所有最短路线报告中汇集邻居列表,以计算出从每个节点到领导者的正确最短路线,并将包含该最短路线的消息发送到图中的每个节点。

在每个时间点,领导者都有一组节点,它从中接收信息(到领导者的路由和邻居列表)和一组它知道存在的节点(它自己的邻居和其他节点提到的邻居它收到的消息)。当它从中接收到信息的节点集与领导者知道存在的节点集相同时,它拥有所需的所有信息。如果有任何其他节点不为领导者所知,请考虑从此类节点到领导者的路由。当您前往领导者时,您最终会遇到领导者或领导者本身已知的节点。考虑第一个这样的节点。要么领导者知道它的邻居,在这种情况下领导者知道一个未知节点存在但它还没有它的邻居列表,要么领导者知道该节点存在但不知道它的邻居。在任何一种情况下,领导者已知的节点集都大于领导者拥有邻居列表的节点集,因此领导者知道还没有停止收集消息。

关于algorithm - 在具有领导者的异步分布式系统中,我如何找到与领导者的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49181015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com