应用SQL求边的聚类系数_第1页
应用SQL求边的聚类系数_第2页
应用SQL求边的聚类系数_第3页
应用SQL求边的聚类系数_第4页
应用SQL求边的聚类系数_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、应用SQL求边的聚类系数摘要:边的聚类系数是用来度量复杂网络中两个结点的紧密程度的,被广泛的应用于识别网络模块。本文介绍了如何利用SQL及相关函数来求解边的聚类系数。关键词:边的聚类系数复杂网络SQL0前言由WattsandStrogatz1提出的结点的聚类系数是用来刻画网络中结点的聚集程度的,已经被用作一个有效工具来分析相互作用网络的拓扑结构2。为了度量两个结点的紧密程度,由此衍生出了边的聚集系数的定义3,它被广泛的应用于识别网络模块,边的聚类系数表示边所连接的两个结点的连接强度,值越大表明这两个结点在同一个模块的可能性越大4。本文根据StructuredQueryLanguage(SQL)

2、的优点编写了程序实现了求解边和结点数目众多的复杂网络中边的聚集系数,为网络的进一步分析打下了基础。1基本概念FilippoRadicchi等人在文献2中用类似于点的聚集系数的定义的方式定义了边的聚集系数为实际存在的包含该边的三角形的数目和总的可能包含该边的三角形数目之比。即(1)zij就是实际包含边(i,j)的三角形的数目。di和dj分别为结点i和j结点的度。di-1和dj-1中最小值min(di-1),(dj-1)即为可能包含该边的三角形的最大数目。当网络中几乎没有三角形时,为了克服上述定义的不合理性,李敏等人5用两个结点的共同的邻居结点的数目取代了包含该边的三角形的数目,改进了边的聚集系数

3、的定义为(2)这里Ni和Nj分别是结点i和结点j的相邻结点的集合。di和dj所代表的意义与(1)式相同。2边的聚类系数的计算既然(1)式中关于边的聚类系数的定义存在不合理的地方,故本文按照(2)式来计算边的聚类系数。2.1SQLserver数据库中表的设计为了描述复杂的网络结构并计算出边的聚集系数,本数据库涉及三张表:结点表、边表、中间表。其中每一张表的结构如下,主码用下划线标出:结点表(结点名称)中间表(结点1的名称,结点2的名称)边表(结点1的名称,结点2的名称,两结点邻居结点交集的个数,两结点中度的最小值,边的聚集系数)其中结点表和边表的初始值可以通过外部的excel表或者文本文档导入到

4、数据库中,结点表中存放的是网络中所有结点的名称,结点表中元组的个数等于该网络中结点的个数。边表中存放的是网络中所有的边所对应的结点对,该网络中有多少条边,边表中就有多少条元组。中间表是为了计算边的聚集系数时所建立的一张过渡表,通过它可以比较方便的计算出结点的度,和两个结点的邻居结点的交集。起初中间表是一张空表。例如有个网络1的拓扑结构如下图1所示。为了描述这个网络,先在结点表和边表中的写入初始数据。2.2计算过程221写中间数据到中间表中初始数据导入到数据库中后,依次取出结点表中的结点名称,分别在边表中查询结点1或结点2的名称等于结点名称的元组,并将查询的结果写入中间表中,在写入的过程中,若是

5、边表中结点1的名称等于结点表中的结点名称,则原样写入,若是边表中结点2的名称等于结点表中的结点名称,则交换结点1和结点2的顺序写入。例如上例中在查询了边表中结点1或结点2的名称等于“A的元组后,写出中间表的结果如下:中间表结点1的名称结点2的名称ABADAC图1网路1的拓扑结构图最终中间表中所存放的元组的个数等于网络中边的条数的两倍,也等于边表中元组数目的两倍。222求两结点邻居结点交集的个数依次读出边表中的每一条元组,在中间表中用嵌套查询语句和count()函数计算两个结点邻居结点交集的个数。并将最终的计算结果写入边表对应元组的第三列中。其核心语句是:SELECTn二count(vertex

6、2)FROM中间表WHEREvertex仁门0de1andvertex2IN(SELECTvertex2FROM中间表WHEREvertexnode2);UPDATE边表SETmind=nWHEREvertex1=node1andvertex仁node2;计算两结点度中的最小值在中间表中分别统计边表中一条元组的两个结点的度,并通过比较,将较小的值写入边表对应元组的第四列中。其核心语句是:SELECTi=C0UNT(vertex2)FROM中间表WHEREvertex仁nodel;SELECTj=COUNT(vertex2)FROM中间表WHEREvertex仁node2;IF(ij)BEGIN

7、UPDATE边表SETdegree=jWHEREvertexnode1andvertex仁node2ENDELSEBEGINUPDATE边表SETdegree=iWHEREvertexnode1andvertex仁node2END求边的聚集系数当两个结点邻居结点交集的个数及度中的最小值计算出来以后,可直接按照公式(2)求边的聚集系数,其核心语句是:UPDATE边表SETECC=(mind+1.0)/degree;3总结本文通过SQL语句以及数据库中的相关函数计算了边的聚集系数,求解过程简单,求解思路清晰,为网络的进一步研究及相关的度量算法打下了基础,如果在建立表的时候按照相关字段建立索引可以提

8、高求解效率。当然也可以借助其它的语言工具来编写程序计算边的聚集系数。参考文献WattsDJ,StrogatzSH.Collectivedynamicsofsmall-worldnetworksJ.Nature,1998,393:440-442.FriedelC,ZimmerR:Inferringtopologyfromclusteringcoefficientsinprotein-proteininteractionnetworksJ.BMCBioinformatics,2006,7:519.RadicchiF,CastellanoC,CecconiF,LoretoVParisiD:DefiningandidentifyingcommunitiesinnetworksJ.PNAS,2004,101:2658-2663.赵晓慧,刘微,谢凤宏,赵凤霞.基于局部信息的复杂网络社团结构发现算法J.微型机与应用,2011,30(15):43-46.LiM,WangJ,ChenX,WangH,PanY:Alocalaverageconnectivity-basedmethodforide

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论