CELF算法实现原理与伪代码

2) 算法优化

由于上述论文中采用的算法是在传统的贪心算法上应用主题模型来进行社会网络的传播,其虽然有较好的近似比,但运行效率较低。因此,我们可以采用Leskovec等人提出的CELF算法在原有的贪心算法上进行优化,使算法的性能得到提升。在独立级联传播模型下,节点的边际影响力符合子模性,CELF算法正是利用这个性质来进行优化。当传统的贪心算法根据边际影响力将第一个节点A加入种子节点后,将第一次计算各个节点中的边际影响力次小的节点B再次计算边际影响力,如果这个节点B的新一轮边际影响力大于或等于上一轮又比自己次小的节点C的上一轮边际影响力,即可直接把结点B作为新的种子节点,不用再次计算后面结点的边际影响力。若结点B的影响力不大于或等于上一轮又比自己次小的节点C的上一轮边际影响力,就依次逐个算出各个节点边际影响力,排序选择最大的作为种子节点,放入种子集。

Algorithm 2 IB-CELF Algorithm

Input: Graph G =(V,E);

       The number of nodes,v=N;

       The number of topic category,M;

       Node(v,iis):the ∆iis of vertex v

       Sis:the influence of present seed

       nQueue:the queue of Node(v,iis)

Output:The number of seed nodes,K

1:Initialize S =φ,nQueue=φ,sis = 0

2:for vV do:

     Sv=0

     for j =1 to R do:

     Sv  += |S({v})|

     end for

  add node(v,Sv)  to  nQueue

  end for

  pop the first node v of the nQueue

  S = {node.v} and sis =node.iis

3for i =2 to k do:

      while true

         Pop the two element B,C

         If Node(B,iis)>=C

           S = S {node.v}

           Sis += node.iis

           Break

         End if

         v = node.v

         Sv = 0

         for j = 1 to R do

            Sv +=|S(S{v})|

         End for

         Sv = Sv/R - sis

         Push node(v,Sv) into nQueue

      End while

  End for

            

 

3) 时间复杂度分析

论文中算法一基于传统贪心算法的基础上影响力最大化传播虽然近似比能达到(1 - 1/e),但是运行效率很低,其时间复杂度为O(kNRM),而使用算法二改进的贪心算法CELF会比传统贪心算法有近700倍的速度提升。

参考资料:

(1)http://www.cnblogs.com/aaronhoo/p/6548760.html

(2)李国良, 楚娅萍, 冯建华,等. 多社交网络的影响力最大化分析[J]. 计算机学报, 2016, 39(4):643-656.

(3)章云龙. 社交网络中基于话题的影响最大化问题研究[D]. 上海交通大学, 2012.

(4)葛欣. 面向主题的影响力最大化问题研究[D]. 云南大学, 2013.

(5)朱玉婷. 社会网络中基于主题的影响力最大化研究[D]. 江苏大学, 2016.

(6)Leskovec J, Krause A, Guestrin C, et al. Cost-effective outbreak detection in networks[C]// ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2007:420-429.

 

 

 


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值