蜂鸣算法中的设计模式:示例、模拟与分析
分布式、并行与集群计算
2018-08-31 v4 数据结构与算法
摘要
我们考虑通过蜂鸣进行交互的进程网络。在 Cornejo 和 Kuhn (2010) 定义的基本模型中,进程在每一轮可以选择蜂鸣或监听。蜂鸣者无法检测到同时发生的蜂鸣。监听者只能区分静默和存在至少一个蜂鸣。我们将此模型称为 (蜂鸣或监听)。存在更强的模型,其中节点可以在蜂鸣时检测冲突()、监听时检测冲突()或两者皆可()。蜂鸣模型本质上较弱,甚至简单任务在其中也难以实现或不可行。我们提出了一组通用构建块(设计模式),它们似乎在蜂鸣算法的设计中频繁出现。这些模式包括:多时隙阶段(将主循环划分为若干专用时隙);独占蜂鸣(在邻域内一次仅有一个节点蜂鸣,范围为一跳或两跳);自适应概率(增加或减少蜂鸣概率以产生更多独占蜂鸣);内部( resp. 外围)冲突检测(用于在蜂鸣时 resp. 监听时检测冲突)。基于这些模式,我们为若干基本问题提供了算法,包括着色、2-跳着色、度数计算、2-跳最大独立集(MIS)以及冲突检测(在 中)。这些模式使得这些算法的表述相当简洁优雅。其分析更为技术性;其中一项分析显著改进了 Jeavons 等人 (2016) 提出的最佳已知 MIS 算法的分析。最后,受 Afek 等人 (2013) 技术的启发,我们的最后一项贡献是证明任何依赖冲突检测的 Las Vegas 算法都可以转换为无需冲突检测的 Monte Carlo 算法,其代价是对数级的减速,我们证明了这是最优的。
引用
@article{arxiv.1607.02951,
title = {Design Patterns in Beeping Algorithms: Examples, Emulation, and Analysis},
author = {Arnaud Casteigts and Yves Métivier and John Michael Robson and Akka Zemmari},
journal= {arXiv preprint arXiv:1607.02951},
year = {2018}
}
备注
Final version (accepted for publication in Information and Computation, Elsevier)