我想用 Java 编写一个简单的 Gossip 算法实现,但我无法弄清楚从哪里开始。我对这种网络编程很陌生,不知道从哪里开始。这个概念是我想创建一个代码来模拟建筑物中的温度传感器,以开尔文收集热量。使用 gossip 算法,它将使用推和协议,该协议使用该算法收集建筑物中温度的平均值:si 是初始总和,wi 是初始重量
1:设 {(Sr, Wr)} 是在第 t – 1 轮(上一轮)中发送给 i 的所有对
2:设 st, i := ∑〖Sr, Wt,i〗 = ∑Wr (所有接收对的总和)
3:均匀随机选择一个目标ft(i)
4:发送对 (1/2st,I , 1/2wt,I ) 给 ft(i) 和 i (你自己)
5: (St,i)/(Wt,i) 是步骤 t 中平均值的估计
该算法应允许在不更改任何代码的情况下添加新传感器
我做了很多查找,但我真的不知道如何在传感器之间建立这种基本通信(它们都必须运行相同的代码)。如果可能的话,我会很感激关于如何正确设置它的正确方向,一个很好的起点,我应该能够自己完成其余的工作,谢谢!