【毕设】F1算法的一个拓展
考虑【论文评述】Algorithms for Distributed Functional Monitoring | Home of Mr. 5中的通用算法,对于
考虑下面这个模型,只有A、B两个站点,那么原paper中的算法其实可以等价为下面这个算法:
初始化
,将 通知A、B,初始化阶段编号 , , ; 进入阶段
,接收数据,直到A(或B)在阶段 (或 )到阶段 收到的数据量超过 ,通知中心,并令 (或 ); 若
,停止;否则,令 ,将 分发给A、B, ,回到第2步;
通讯复杂度显然为
现在我们假设,A向中心上传信号的时间开销是原来的
考虑这样的输入,所有数据都是涌向A的,B从始至终没有收到任何数据,那么上述算法会导致
我们提出一个新的算法,把复杂度降低到
初始化
,将 通知A、B,初始化阶段编号 , , ; 进入阶段
,接收数据,直到A(或B)在阶段 ( )到阶段 收到的数据量超过 ( ),通知中心,并令 ( ), ( ); 若
或 ,停止;否则,令 ,将 和 分别发送给A、B, ,回到第2步;
,其中
这个
A至多通讯
因此复杂度至多为
注意到,
取
则进一步有
因此我们现在就是要知道,当
我们知道,当
令
又由于
令
则
因此算法的通信复杂度为
(可以把
不过,如果模型推广到
随机情况试验:
令
输入
特殊情况试验:
数据仅向
值最大的输入 数据仅向
值最小的输入 数据仅向
值中等的输入
以上实验对原始算法和新算法都同时运行,保存实验数据以及相关代码。