基于智能优化算法的复杂网络社区发现问题

第一章 基于天牛须算法求解复杂网络社区发现问题


文章目录

  • 基于智能优化算法的复杂网络社区发现问题
  • 前言
  • 一、基本天牛须算法
  • 二、关于社区发现
    • 基本问题
  • 总结

前言

复杂网络社区发现问题,无疑是研究热点之一。社区发现方法有很多,最近一段时间将和大家一起分享一下基于智能优化求解复杂网络社区发现问题方面的知识及代码


一、基本天牛须算法

关于BAS算法的相关介绍就不再这里赘述了,没接触过的同学请阅读前文《智能优化算法:天牛须搜索算法》。

二、关于社区发现

基于智能优化算法求解社区发现问题,其实主要在于适应度函数的选取上。与单纯的数值优化相比,区别点在于适应度函数换成了模块度Q。
        这里讲一句题外话,这篇博文只针对刚刚接触社区发现的同学。因此,其中涉及到的相关问题,本人并没有深入的写下去,包括模块度分辨率低、社区重叠等问题。在后续的博文中(如果我还有时间的话,“狗头”)我会继续和大家分享,还有,我没时间看私信和评论,大概一年看一次吧。

基本问题

  1. 社区的编码表示
  2. 天牛的左右须更新方式

上述两点解决了,基本上就没啥问题了。

社区编码这里采用“几节点几社区”的方式,假设有nnn个节点的网络,则初始化[1,2,3,……,n][1,2,3,……,n][1,2,3,……,n]。初始化后,可以对初始的编码进行简单的操作,进行改善。比如,根据节点的邻居节点社区进行自节点社区更新。

关于天牛左右须问题,主要存在两点问题:一是,质心节点的选取,即选择哪个节点做为天牛的质心节点;二是,质心确定后,左右须按照什么规则进行更新。质心节点的选取,可以是随机的,可以是遍历的。但是在随机中,要保证禁忌性。即每次随机的质心节点要加入禁忌表中,防止每次随机都选到相同的节点。(PS:我师妹一开始就犯了这个错误,大家需要注意)在遍历中,需要确定每次遍历的次数,要保障Q最大化。
        左右须更新规则其实也比较好理解,选定质心后,根据质心节点的邻居节点所属社区的频率进行更新,这里需要注意的是,变的是质心节点的社区编号。比如,节点5为质心,则观察节点5的邻居节点所属的社区[1,1,1,2,3,3,4]。所属社区最多的社区编号为1,则质心节点5的社区编号变为1,这就是左须的更新规则;同理,邻居节点所属社区编号第二多的作为右须。
        下面是具体的效果,这里我没有对社区数量进行预设,即没有在代码中规定网络划分为几个社区。因为我考虑到,在已知网络时,确实如此操作是可以的。但是在处理随机、未知的网络时,这种预设的方式就行不通了,因此,这里我的社区数量没有进行预设。

另外,这个算法只是最最最基础的,可以在这个基础上进行很多的创新和改进。比如,我在算法中没有预设社区数量,最后划分出四个社区,与已知两个社区相比差别较大。那么如何改进?两点,其一从算法本身进行改进,包括分辨率、算法搜索能力;其二进行社区融合等等,各种方法,留给朋友们发散一下思维。

因为是基础算法,所以搜索能力一般般,每次运行结果得到的社区发现结果都不同,Q也不同。


总结

在这里附上python代码,大家有问题尽量不要再CSDN上找我,因为我真的不习惯看,可以从面包多上私信我。如果你私信我没回只有一个原因:你的问题让我感到很无语,请大家组织好语言,不要上来就高人一等哈,拜谢!

python代码链接 https://mianbaoduo.com/o/bread/YpicmZ1y

基于BAS算法实现复杂网络社区发现问题——附python代码相关推荐

  1. 【回归预测-FNN预测】基于蝙蝠算法优化前馈网络实现数据回归预测附Matlab代码

    1 内容介绍 强大的非线性映射能力使得人工神经网络越来越多地应用于数值预测.工程控制中,但神经网络在学习过程中,不可避免的存在着全局搜索能力差.容易跳入局部最优等不足,因而用神经网络技术预测的数据并不 ...

  2. 标签传播算法_复杂网络社区发现算法汇总

    社区发现 这篇文章汇总了一些常见的社区发现概念和算法,包括 Modularity Q Fast Unfolding(Louvain Algorithm) LPA SLPA KL算法 GN算法 社区: ...

  3. 【预测模型-ELM分类】基于鲸鱼算法优化核极限学习机实现数据分类附matlab代码

    1 内容介绍 极限学习机(extreme learning machine,ELM)作为一种新兴的机器学习方法,已经成为了一个热门的研究方向. ELM 随机确定单隐含层网络的输入权值和隐含层节点偏置, ...

  4. 【预测模型】基于布谷鸟算法改进BP神经网络实现数据预测附matlab代码

    一. BP神经网络预测算法简介 BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出. ...

  5. 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码

    1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...

  6. 【WSN】基于COMPOW协议下的网络连通率和覆盖率附matlab代码

    1 简介 COMPOW (COMMON POWER)协议是一种简单的将功率控制与路由协议相结合的解决方案,其基本思想是:所有的传感器节点使用一致的发射功率,在保证网络连通的前提下将功率最小化.COMP ...

  7. 【ELM预测】基于鲸鱼算法优化极限学习机实现数据回归预测附matlab代码

    1 简介 为判断中国是否能够实现2030年碳排放强度下降60%-65%的承诺,以及碳排放总量是否能够在2030年达到峰值,论文构建了一个基于鲸鱼优化算法改进的极限学习机模型,对2019-2040年的碳 ...

  8. 【BP预测】基于鸟群算法优化BP神经网络实现数据预测附Matlab代码

    1 简介 热舒适度是室内环境舒适性的评价指标,由于热舒适度的计算是一个复杂的非线性迭代过程,不便应用于空调实时控制系统中,为解决这一问题,可利用BP神经网络算法对热舒适度进行预测.但为了改善传统BP神 ...

  9. 基于链接密度聚类的重叠社区发现算法

    基于链接密度聚类的重叠社区发现算法 文章发表时间:2013年12月 1. 传统社区算法的局限性 传统社区算法是将网络划分为若干各互不相连的社区,每个节点都必须隶属与唯一的社区,然而,在实际的社交网络中 ...

最新文章

  1. Linux下基于socket多线程并发通信的实现
  2. php函数dirname范例,PHP dirname( )用法及代碼示例
  3. python tkinter详解 博客园_python tkinter-布局
  4. [one day one question] express 不缓存如何实现
  5. 制作一个大风车加载条
  6. jquery 动态加载html,jQuery – 动态创建iframe并加载页面
  7. CentOS6.5+mysql5.1源码安装过程
  8. Python基础——while循环语句
  9. WinForm如何输出中文星期几?
  10. 算法4中数学模型练习题分析
  11. python学习 - 52周存钱挑战
  12. 什么是类?什么是对象?类与对象之间是什么关系?类的特性有哪些?
  13. 沙黾农:买股票就买这家上市公司的股票
  14. 手机影音第十五天,利用service实现后台播放音乐,在通知栏显示当前音乐信息等...
  15. HTML基础常识问答(一)
  16. java查找算法:线性查找
  17. 算法图解——广度优先搜索
  18. 【vue报错】npm ERR code EJSONPARSE
  19. SoLoMo:移动互联网创新的“三维模式”分析
  20. fastboot 快速引导模式 介绍

热门文章

  1. 登录网页无法连接服务器,"无法连接到服务器,用户xxx登陆失败" 解决办法
  2. lua 自实现pairs
  3. 水岸秀墅|千年石湖独一墅
  4. 你很聪明,思维也很敏捷,小有才华,为什么依然一事无成?
  5. java丐帮_Java多线程学习笔记(一)
  6. 高科技公司全线受损 中国电子企业盼政府救市
  7. 「技术综述」人脸脸型分类研究现状
  8. 腾讯地图api_腾讯位置服务JavaScript API GL正式版发布 免费向开发者开放
  9. 弘辽科技:如何提高客单价
  10. 2018阿里巴巴春招面试