发明名称 基于模拟退火遗传算法的网络社区划分方法
摘要 本发明公开了一种基于模拟退火遗传算法的网络社区划分方法,主要解决现有遗传算法中搜索能力较弱和划分效率低下的问题。其实现步骤是:(1)读入一幅网络图;(2)根据网络图,生成邻接矩阵;(3)初始化遗传算法参数;(4)对染色体进行解码,并计算目标函数值;(5)选择目标函数值较大的染色体构成父代种群;(6)对染色体进行交叉和变异,产生新的染色体构成子代种群;(7)初始化模拟退火法参数,进行局部搜索;(8)获得下一代父代种群并进行迭代;(9)判断迭代代数是否达到最大代数Gmax若达到,则终止迭代,输出目标函数值最大的染色体,输出的染色体中对各个节点的划分即为社区中节点的最终划分结果。本发明具有搜索能力强和准确率高的优点。
申请公布号 CN102663499B 申请公布日期 2014.05.14
申请号 CN201210062622.8 申请日期 2012.03.11
申请人 西安电子科技大学 发明人 尚荣华;焦李成;白靖;靳超;吴建设;郑喆坤;李阳阳;马文萍;韩红
分类号 G06N3/12(2006.01)I 主分类号 G06N3/12(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 1.一种基于模拟退火遗传算法的网络社区划分方法,包括如下步骤:(1)读入一个社区的实际网络图S;(2)根据网络图S,生成网络对应的邻接矩阵,邻接矩阵中的元素由a<sub>ij</sub>表示,其中i、j表示网络中任意两个节点,若节点i与节点j相连,则a<sub>ij</sub>=1,否则a<sub>ij</sub>=0;(3)初始化遗传算法参数初始化迭代次数G<sub>max</sub>为50、种群大小S<sub>pop</sub>为450、交配池大小S<sub>pool</sub>为225、锦标赛选择大小S<sub>tour</sub>为2、交叉率P<sub>c</sub>为0.8和变异率P<sub>m</sub>为1,随机产生S<sub>pop</sub>条染色体作为初始种群,染色体表示为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>x</mi><mi>m</mi></msub><mo>=</mo><mo>[</mo><msubsup><mi>x</mi><mi>m</mi><mn>1</mn></msubsup><msubsup><mi>x</mi><mi>m</mi><mn>2</mn></msubsup><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msubsup><mi>x</mi><mi>m</mi><mi>i</mi></msubsup><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msubsup><mi>x</mi><mi>m</mi><mi>N</mi></msubsup><mo>]</mo></mrow></math>]]></maths>其中,向量x<sub>m</sub>表示种群中第m个染色体中各个节点所属类别的集合,<img file="FDA0000470966490000013.GIF" wi="49" he="64" />表示种群中第m个染色体的第i个节点的所属类别,且均为正整数,N表示社区中节点的总数;(4)对每条染色体x<sub>m</sub>,m∈{1,...,S<sub>pop</sub>}进行解码,并且根据解码后的染色体采用社区划分中常用的模块度函数Q计算适应度值,即目标函数值:<maths num="0002"><![CDATA[<math><mrow><mi>Q</mi><mo>=</mo><mn>1</mn><mo>/</mo><mn>2</mn><mi>M</mi><munder><mi>&Sigma;</mi><mi>ij</mi></munder><mrow><mo>(</mo><msub><mi>A</mi><mi>ij</mi></msub><mo>-</mo><mfrac><mrow><msub><mi>k</mi><mi>i</mi></msub><msub><mi>k</mi><mi>j</mi></msub></mrow><mrow><mn>2</mn><mi>M</mi></mrow></mfrac><mo>)</mo></mrow><mi>&delta;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow></math>]]></maths>其中M是网络中的边的个数,i,j为社区中任意两个节点,k<sub>i</sub>和k<sub>j</sub>分别为节点i和节点j的度,A<sub>ij</sub>是网络中的邻接矩阵,δ(i,j)表示社区中i和节点j的连接关系,如果节点i和节点j在一个社区中δ(i,j)=1,否则为δ(i,j)=0;(5)选择出步骤(4)中目标函数值较大的染色体构成父代种群;(6)对步骤(5)中选择出的染色体进行交叉操作和变异操作,产生新的染色体构成子代种群;(7)初始化模拟退火法中的参数:初始温度T为800000,常数q为0.99,T的循环次数tt为10,并从步骤(6)构成的子代种群中选择出适应度值最大的一个染色体,用模拟退火法进行局部搜索,找到目标函数值最大的染色体加入到子代种群中;(8)对步骤(5)产生的父代种群和步骤(7)产生的子代种群进行由大到小排序,选择目标函数值最大的S<sub>pop</sub>个染色体作为下一代父代种群进行迭代,S<sub>pop</sub>为种群大小;(9)判断迭代代数是否达到最大代数G<sub>max</sub>,若达到,则终止迭代,输出目标函数值最大的染色体,输出的染色体中对各个节点的划分就是社区中节点的最终划分结果,并输出社区的划分结果;否则转到步骤(4)进行下一次循环迭代。
地址 710071 陕西省西安市太白南路2号