1.一种基于改进力导引图布局的层级视觉抽象方法,步骤如下:步骤1.采用改进的力导引算法生成初步布局;改进的力导引算法就是先用FR算法从随机位置开始,反复迭代寻找最小能量状态,产生一个较为稳定的布局,再基于该状态执行LinLog算法;
1.1初始化:设置初始条件,赋予每个节点vi一个随机位置pi
1.2基于FR算法的图布局
对图中的每个节点vi作如下迭代:
1.2.1计算节点受到的合力:a)先计算节点vi与其它节点vj之间的欧氏距离x=|pi-pj|;
b)代入公式(1)和(2)分别计算该节点所受的来自其他节点的引力和斥力;c)根据公式(3)计算节点vi所受合力F(vi)f(eij)=x2/k (1)
2
g(vi,vj)=k/x (2)
其中,k=sqrt(A/|V|),A为整个视图的显示区域面积,|V|为节点总数;eij表示节点vi与vj之间相连的边,因此公式(1)计算两个有边相连的节点间的引力;公式(2)计算两点间的斥力;公式(3)中的 表示力的方向;
1.2.2节点位置更新:节点vi根据作用在其之上的合力F(vi)进行移动,到达新位置pi′=pi+C*F(vi);这里的C为普通常量,是力的影响系数;当C较大时,节点受力影响大,运动较快速;反之亦然;
1.2.3判定迭代结束条件:根据公式(4)计算整个系统的总能量E,再计算节点迭代位置更新前后的能量差值ΔE,当ΔE持续小于某个设定的阈值,则认为系统达到稳定状态,停止迭代;
1.3LinLog算法下的图布局
基于FR算法的布局,记录每个节点的位置,对图中的每个节点vi作如下迭代:
1.3.1计算节点受到的合力:a)先计算节点vi与其他节点vj之间的欧氏距离x=|pi-pj|;
b)代入公式(5)和(6)分别计算该节点所受的来自其他节点的引力和斥力;c)根据公式(3)计算节点vi所受合力F(vi)f(eij)=C1 (5)
g(vi,vj)=C2/x (6)
公式中的C1和C2都是常量;
1.3.2节点位置更新:节点vi根据作用在其之上的合力F(vi)进行移动,到达新位置pi′;
1.3.3判定迭代结束条件:根据公式(7)计算整个系统的总能量E,再计算节点迭代位置更新前后的能量差值ΔE,当ΔE持续小于某个设定的阈值,则认为系统达到稳定状态,停止迭代;
步骤2.基于力导引算法的布局结果,生成图的层级结构;
2.1定义聚类c为五元组(lc,rc,wc,fc,Vc),其中lc和rc分别代表聚类的两个子聚类中的左子群和右子群,wc表示它的权值,即为其子聚类间的距离,fc是其父聚类,Vc则表示该聚类中包含的图中原始节点集合;
2.2初始化图中所有原始节点vi为叶子聚类ci(u,u,0,u,vi),这里u表示为空,同时初始化叶子聚类的位置Pci为经过力导引布局后vi的位置pi;
2.3计算聚类间的距离;根据不同的网络数据和视觉抽象需要,可以选用不同的距离度量进行计算;
2.3.1计算聚类间的欧氏距离rcicj=|Pci-Pcj|作为距离度量;
2.3.2计算聚类间的平均最短路径长度lcicj作为距离度量;
2.3.3根据公式(8)将聚类间的平均最短路径长度lcicj与聚类的中介中心性CB(ci)之和相结合,作为距离度量;
其中α∈(0,1)为权值参数,表示中介中心性在权值中所占的权重;α越大,则中介中心性对权值的影响越大;Ωij是节点vi和vj间最短路径的条数,Ωij(vk)为这些路径中节点vk出现的次数,因此,CB(vk)表示节点vk的中介中心性;聚类ck的中介中心性CB(ck)为该聚类所包含的节点中介中心性的平均值;
2.4选出两个聚类ci与cj的距离dij最近,将其作为左右子群进行合并产生新聚类ck(ci,cj,dij,u,(Vci∪Vcj)),位置Pck则根据新聚类所包含的节点集合Vck中节点的平均位置来确定;同时,新聚类ck成为ci与cj的父聚类,ci与cj分别更新为(u,u,0,ck,Vci)和(u,u,0,ck,Vcj),并将ck加入计算;
2.5一直重复步骤2.3与2.4,反复寻找距离最近的未合并过的聚类进行合并,直到所有聚类都合并为一个聚类为止;
步骤3.在不同的层级进行视觉抽象;
3.1将构建层级结构时最后合并得到的聚类croot定义为根聚类
3.2定义抽象层级参数AL∈[0,1],以AL×wcroot为度对层级结构进行截取,只将符合条件wck≤AL×wcroot