input arr[] mergeSort(arr) void MergeSort(Type a[],int left,int right){ if(left int i=(left+right)/2 mergeSort(a,left,i)
input arr[]
mergeSort(arr)
void MergeSort(Type a[],int left,int right){
if(left int i=(left+right)/2
mergeSort(a,left,i)
mergeSort(a,i+1,right)
merge(a,b,left,i,right)
copy(a,b,left,right)}}
output Merit[Sn1],Merit[Sn2],…,Merit[Sni]
缺乏两个"}",请补充。
程序后
2.2.3 分裂算法
本文引入通用类节点GN,如果新加入节点和超级节点之间语义不匹配,则交由通用类节点管理。为通用类节点GN设定一个最大值Max,当通用类节点GN中的新节点数超过这个值,根据语义相似聚簇后分裂。进行分裂时,采用合并排序方法选择性能最优超级节点,这个超级节点管辖该新簇中的普通节点。没有语义聚簇的节点继续由通用类节点管理,当节点数超过Max值,调用分裂算法,根据语义相似聚簇后再分裂出来。具体分裂算法如算法3。
算法3 分裂算法。
程序前
Let C represent the set of GN
if(|C|>Max)//GN中的节点数目超过设定的Max
then initialize η,θ
sim(vi,vj)=max IC(v)=max[-lg p(v)]//根据语义相似聚簇
Do 接受sim(vi,vj)
if sim(vi,vj)≥θ
then Wi←Wi+ηx//x代表和Wi语义相似的任意节点,Wi表示聚簇中心
Until 没有语义相似的节点
mergeSort(Wi)//从类的节点中选择超级节点
Merit[vi]=α×capacity+β×uptimeAVE
ClusterID=get Clusterid from Sn id (SnID)
Return ClusterID
End
程序后
3 实验仿真
3.1 实验目的和方法
本实验的目的是测试基于I_LF算法的节点聚簇效率。算法使用UCI数据集中Iris数据集来检验算法的性能。Iris是模式识别中一个经典的数据集,记录的是一些植物的特征数据。共有150条数据和3种决策值,这些数据简单记为0,1,3,…,149。其中0~49、50~99、100~149分别对应一种决策。对数据集分别用leader-follower算法和I_LF算法进行聚簇,分析两种算法的聚类结果,比较两种算法选择出来的超级节点的性能和聚簇的数目。
3.2 实验内容与仿真
3.2.1 聚类结果测试
由于leader-follower算法和I_LF算法都涉及到参数,因此参数设置不同,最后得到的聚簇结果也不一样。本文设置了合适的参数,使得两种算法得到的聚簇结果都是3类,而且聚簇效果比较好。
下面分别给出两种算法得到的聚簇结果。设阈值分别为0.026,0.037,0.043,在此条件下得到两种算法的聚簇结果。
1) leader-follower算法聚簇结果。
①第1类结果如下(共50个数据项)。
1,2,3,4,5,6,147,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,122,125。
②第2类结果如下(共50个数据项)。
50,51,52,53,148,128,129,55,56,57,58,59,60,61,108,62,63,64,65,109,66,67,68,69,118,70,71,72,73,145,74,75,76,77,149,78,79,80,81,126,82,83,84,85,127,86,87,88,89,124。
③第3类结果如下。
100,101,102,103,104,105,106,107,90,91,92,93,94,95,96,97,98,99,108,109,110,111,112,113,114,115,116,117,118,119,120,121,128,123,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,150。
2)I_LF算法的聚簇结果。
①第1类结果如下(共50个数据项)。
1,2,3,4,5,6,147,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,122,125。
②第2类结果如下(共50个数据项)。
50,51,52,53,148,128,129,55,56,57,58,59,60,61,108,62,63,64,65,109,66,67,68,69,118,70,71,72,73,145,74,75,76,77,149,78,79,80,81,126,82,83,84,85,127,86,87,88,89,124。
③第3类结果如下。
100,101,102,103,104,105,106,107,90,91,92,93,94,95,96,97,98,99,108,109,110,111,112,113,114,115,116,117,118,119,120,121,128,123,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,150。
由此可得出,两种算法聚簇结果是一样的,I_LF算法继承了原算法的优点。
3.2.2 I_LF算法
本文采用计算能力、存储能力和在线时长这三个参数来衡量超级节点的性能,用式(6)计算出各个节点的性能。
为了验证实验,本文有如下三元组(节点ID,节点性能,节点语义相似度)数据。其中节点的性能和语义相似度分别通过式(6)和式(4)计算得来的数值,如下所示:
(1,4,0.64),(2,6,0.53),(3,7,0.63),(4,6,0.50),(5,7,0.63),(6,8,0.66),(7,9,0.92),(8,5,0.89),(9,4,0.67),(10,5,0.74),(11,6,0.42),(12,6,0.41),(13,6,0.44),(14,7,0.40),(15,9,0.44),(16,6,0.43),(17,3,0.31),(18,6,0.21),(19,6,0.95),(20,7,0.93),(21,8,0.90),(22,5,0.86),…
分析数据,根据相似性判断标准,ID=1,3,5,6,9的节点,ID=2,4的节点,ID=7,19,20,21的节点,ID=11,12,13,14,15,16的节点,它们各自语义匹配,因此聚为一簇。ID=17,ID=18,ID=10,ID=22语义互不匹配,因此单独是一簇。下面从两方面比较分析leader-follower算法和I_LF算法。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%
版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.