我认真研读了Bubble Rap那篇文章,从数据集本身分析,到centrality、community计算,再到The ONE实现,遇到很多问题。本文分享我已做的工作,并列出自已遇到的困惑。
1. Bubble Rap实现
首先,先贴个仿真结果,结果不是很好,后面变了centrality计算方法,效果跟Bubble Rap很接近。
图1:Bubble Rap的仿真结果
我实现思路很简单:用Python处理数据集(如infocom06),建立静态图,求得每个节点对应的centrality和所属的社区。有了这些数据后,在The ONE实现Bubble Rap就简单了。但这有个问题,社区检测community detection不是动态的,很有局限性。
后来,无意中发现GitHub有一份源码(在这里),作者也实现了Bubble Rap,直接在The ONE仿真器实现,是动态的。我也下了这份代码,并且打算用于我后续的仿真,但使用过程中发现这份代码有bug,我已将问题反馈给作者(在这里),但至今没有回复。所以,在使用的时候,务必当心。
2. 存在的困惑
数据集相关
- 我找不到Hongkong数据集,在CRAWDAD下载的数据集,我一直觉得有问题
- Contact graph中,边的权重如何算,对于开始时间与结束时间相同的contact怎么处理
- Community detection,用k-clique还是用其他的?
- ……
实现相关
- 实现,其实我觉得还比较简单,主要解决将centrality, community读入The ONE,新建路由BubbleRapRouter,在其update根据论文实现算法。
- 如何动态预测节点相遇情况
- 如何突破The ONE没有MAC层的局限(不能broadcast)
- ……