|||
中国人写数字,一是一横,二是两横,三是三横;罗马人写数字,I是一竖,II是两竖,III是三竖。双方不约而同,都没有就这样成千上万地写下去,为什么呢——规模大了,简单方法就失效了!
几个月前看到篇论文,还没有发表,挂在arXiv上面(1111.4503),说是7.21亿用户的Facebook平均距离只有4.7。我第一感兴趣的不是这个平均距离值,而是他们怎么能够把它算出来。现在网络越来越大,社会网络动辄上亿,万维网网页更是数千亿记,“怎么算”已经成了一个大问题。
如果要算得快时间短,除了设计精妙绝伦的新算法,可以牺牲的无非三样:一是空间——这一点也有很大局限性,因为网络太大,空间压力也大;二是代码的复杂性——很多人只谈时间复杂性和空间复杂性,实际上还有代码复杂性,精细的预处理,多向启发式搜索,纷繁的剪枝条件,分段分层处理等等,都会让程序变得复杂,加大出错概率,增加交流成本;三是精确性——给一台笔记本和10亿节点的网络,让你精确计算平均距离,恐怕不可能,那么,如果允许5%的误差,能不能算,该怎么算?
宋青和汪小帆老师介绍的很多方法,三者都有牺牲,有些思路非常巧妙,对很多问题都能产生启发。譬如说通过少量节点的计算结果对当前的情况进行评估(地标),存储每一条路可以通向何方(路标),把网络分层并区分主干道和支路……当然,作者雄心万丈,还想解决大规模网络动态寻路的问题,这就更加困难了——大家拭目以待吧。
【近期将给出全文下载链接】
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 05:46
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社