收藏 分享(赏)

Pajek操作手册.pdf

上传人:精品资料 文档编号:9942599 上传时间:2019-09-21 格式:PDF 页数:61 大小:1.21MB
下载 相关 举报
Pajek操作手册.pdf_第1页
第1页 / 共61页
Pajek操作手册.pdf_第2页
第2页 / 共61页
Pajek操作手册.pdf_第3页
第3页 / 共61页
Pajek操作手册.pdf_第4页
第4页 / 共61页
Pajek操作手册.pdf_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、复杂网络仿真平台 摘要 复杂网络的概念已经在计算机、生物、物理以及社会科学等各个领域中得到广泛的应用。尽管复杂网络的类型举不胜举,但是所有的复杂网络都可以用共同的模型图来描述。Pajek 以网络图的模型为基础,以六种数据类型为形式,以其快速有效性和人性化的特点,为复杂网络的分析提供了一个仿真平台。它集成了一系列快速有效的算法用于分析复杂网络的拓扑结构,包括从局部的角度分析网络节点和边的性质、利用抽象化的手段分析网络的全局结构、实现各种类型网络图之间的相互转换以及随即图的生成等。Pajek 利用一个三维的可视化界面,为用户提供了一系列可视化工具。允许用户通过手动或者自动的调节节点位置、旋转网络图

2、等方法,从视觉的角度直观地分析网络模型。此外,Pajek 中的宏文件允许用户将一系列常用的操作保存为一个文件,从而能够有效地满足各种类型用户的不同需求。本文将结合具体的实例,分章节讨论 Pajek 在分析复杂网络拓扑结构中的应用。 关键词: 复杂网络,可视化,抽象化,有向图,无向图,权值 EMULATOR OF COMPLEX NETWORK ABSTRACT The idea of complex network, with thousands of vertices and lines, have been widely applied in many different areas, i

3、ncluding computer, biology, physics and social science, to name but a few. Although the types of complex networks are innumerable, all of them can be described by a common model, which is known as graph. Based on graphs and using six data structures, Pajek, which is very efficient and humanized, is

4、a program designed for the emulation of complex network. The basic set of efficient algorithms are implemented in it to analyze the topology of complex networks, including analysis of the local nature of vertices and lines, abstraction to get a global view of network, transformation between differen

5、t types of networks, generating random networks and so on. Pajek provide the user with some powerful visualization tools on a three-dimensioned reference frame. The user can further improve the picture manually or automatically by moving vertices or spin. Moreover, we can define an often used sequen

6、ce of elementary operations as a macro and run it as a single command. Using systems of macros, Pajek is adapted to special groups of users. In this article, with some typical examples, the main applications of Pajek are discussed to analysis the topology of complex networks. Keywords: complex netwo

7、rk, visualization, abstraction, directed network, undirected network, weight 目 录 1 引言 1 1.1复杂网络的基本概念以及研究历史 1 1.2 Pajek的产生背景 2 2 Pajek的主要特点 3 2.1计算的快速性 3 2.2可视化 4 2.3抽象化 4 3 Pajek的数据结构 6 3.1 Network(网络) 6 3.2 Partition(分类) 9 3.3 Permutation(排序) 9 3.4 Cluster(类) 10 3.5 Hierarchy(层次) 10 3.6 Vector(向量)

8、10 4 利用Pajek分析复杂网络基本性质 12 4.1度的计算 12 4.2两点间的距离 13 4.2.1两点间的最短路径 13 4.2.2复杂网络的直径 15 4.2.3 K步之内的路径 15 4.2.4 复杂网络的测地矩阵(Geometric Matrices) 15 4.3k近邻(k-neighbors) 16 4.4聚类系数 17 4.4.1 1- 聚类系数 17 CC4.4.2 - 2近邻聚类系数 19 2CC5 利用Pajek分析复杂网络结构 20 5.1复杂网络图的遍历 20 5.1.1深度优先搜索遍历 20 5.1.2广度优先搜索遍历 21 5.2复杂网络图的核心(Core

9、) 21 5.3 复杂网络图的连通分量(components) 23 5.4复杂网络的关键路径 24 6 利用Pajek转换复杂网络 26 6.1无向边与有向边的转换 26 6.1.1有向边转换为无向边 26 6.1.2无向边转换为有向边 26 6.2 改变复杂网络图的结构 26 6.2.1添加节点 26 6.2.2 添加兄弟边(sibling edges) 27 6.2.3 删除边 27 6.3 复杂网络图的缩减 27 6.4 2-模到1-模网络图的转换 28 6.4.1 1-模与2-模复杂网络的概念 28 6.4.2 利用Pajek实现 2-模到1-模复杂网络的转换 30 6.4.3 其他

10、附属选项 31 7 利用Pajek生成复杂网络 34 7.1生成复杂网络 34 7.2生成ER随机网络 35 7.3生成无尺度(scale-free)复杂网络 35 8 Pajek的可视化 37 8.1复杂网络图的绘制 37 8.1.1绘制复杂网络图 37 8.1.2绘制不同类节点的复杂网络图 37 8.1.3绘制不同大小节点的复杂网络图 38 8.1.4绘制不同权值的边的复杂网络图 38 8.2调整复杂网络图的布局 38 8.3复杂网络图的旋转 41 9 Pajek中的宏 42 9.1宏的作用 42 9.2宏的定义 42 9.3宏的使用 42 9.4宏的应用实例 42 10 结论 44 1

11、引言 1.1 复杂网络的基本概念以及研究历史 近几年来, 复杂网络的研究正处于蓬勃发展的阶段 1, 2, 其思想已经充斥到科学和社会的每一个角落。复杂网络可以用来描述人与人之间的社会关系 3,物种之间的捕食关系4, 计算机 之间的网络联接 5, 词 与词之间的语义联系 6, 科学家之间的合作关系 7,蛋白质之间的相互作用 8, 科研文章之间的引用关系 9 以及网 页的链接结构 9等等。 总之,从因特网到万维网, 从生物体的结构网络到动物之间的食物链, 从人体的神经网络到社会关系网络等等, 可以说, 复 杂网络, 无处不在。 复杂网络的研究正渗透到物理、 生物甚至社会学科等各个领域,因而,复杂网

12、络的定性和定量研究已经成为当今科学的一大主题。 每一个系统中的复杂网络都有其自身的特殊性质, 有其紧密联系在一起的独特现象, 有其自身的演化机制, 但是不同的复杂网络在其结构特征上都呈现出一定的共性 10。 研究复杂网络的共性,首先需要一种描述这种不同类型复杂网络的共同数学模型。 复杂网络模型的研究, 最早可以追溯到十八世纪, 由伟大的数学家欧拉建立。 欧拉所研究的问题, 就是起源于当时俄国的一个小镇, 这个小镇中有一些河流, 在此镇中一共建了 7座桥, 小镇的人希望找到一条行走路线, 能够通过所有的桥, 并且每座桥只能经过一次。 当时人们反复尝试也没有找到这样的路线, 最后欧拉发现这样的路径

13、是不存在的。 他分析这个问题基本的手段, 就是把这个问题用一个抽象的图来表示。 具体做法即把这些河流分割开的四个陆地区域, 每一个区域用一个结点来表示, 而把桥梁当成连接这些结点的连线。 这样一种图的表示方法, 就演变成为表述复杂网络一种共同的模型。 比如对 Internet 而言 , 每一个结点表示一个路由器, 如果两个路由器之间直接通过光纤连接, 则这两个节点就通过一条边相连。以人类社会关系网络而言,每一个人就可以看成一个结点,两个人如果是朋友关系,那么这两个人之间就有一条边直接相连。 因此, 尽管复杂网络的类型是千差万别的, 但是它们都可以用共同的模型图描述出来 11。 一般来说, 图的

14、分类有两种方法。 根据图中的边是否具有方向性, 可以将图分为有向图和无向图两种。 实际上, 当我们忽略边的方向的时候, 或者反过来看认为任何一条边都是双向的时候, 有向图就成为无向图。 因此, 关于无向图的所有性质都可以在有向图中研究。 另外, 根据图中是否考虑各条边的权重, 可以将它分为有权图和无权图。 同样地, 如 果将有权图的各边权值都设为 1, 有权图就称为无权图。 因此, 关于无权图的所有性质也可以在有权1图中研究。 利用图对复杂网络建模后,可以看到其结构具有很多相同的共性。例如关于顶点度值、聚类系数、平均路径长度 12的分析方法以及大量不同复杂网络中存在的相同的统计特征,再如随机去

15、点与选择性攻击对复杂网络结构的影响及其分析方法 10。 研究复杂网络的几何性质, 复杂网络的形成机制, 复杂网络演化的统计规律, 复杂网络上的模型性质, 以及复 杂网络的结构稳定性,并把它与具体系统结合起来就是复杂网络研究的中心内容。 1.2 Pajek 的产生背景 与一般计算机图的结构相比, 复杂网络的复杂性最主要表现在节点数目庞大, 通常达到几千甚至几万个。 比如, 一个大型的家谱图, 它的节点数 (即人数) 可以达到一万个。 另外 ,一个高分子的结构图中, 通常也包含几千个原子。 因此, 复杂网络的结构比一般的计算机图的结构要复杂得多。目前,虽然已经存在不少算法来对复杂网络的这种拓扑结构

16、进行分析,但它们通常都是基于复杂网络的矩阵表达形式, 因而非常耗时耗空间, 它们仅仅适用于中等规模 (即节点数为几百) 的网络。 因 此 , 当务之急就是需要一种快速有效的软件来分析和仿真复杂网络。 Pajek 就是这样一种软件 13。 Pajek 在斯拉 夫语中表示的意思是 “蜘蛛” 。 众 所 周知, 蜘蛛是生物中的织网高手, 它编织网络的能力令人叹为观止。 而 Pajek 这个软件不 仅为用户提供了一整套快速有效的用来分析复杂网络的算法, 而且还提供了一个可视化的界面。 让用户可以从视觉的角度更加直观地了解复杂网络的结构特性。 接下来的几个章节, 第二章简单介绍了 Pajek 功 能的三

17、个主要特点; 第三章中初步介绍了 Pajek 的六种数据类型;第四章到第七章将结合复杂网络的拓扑结构特点详细分析 Pajek的功能, 并且给出具体的应用实例; 第八章讨论了 Pajek 的 可视化特点, 从视觉的角度分析复杂网络图的结构;第九章介绍了 Pajek 中宏文件的应用。 22 Pajek 的主要特点 简单的说,Pajek 的特点主要表现在三个方面。在本章的三小节中将一一简单介绍。 2.1 计算的快速性 Pajek 为用户 提供了一整套快速有效的算法,可用于分析大型的(节点书数以万计的)复杂网络。 众所周知, 一个算法的复杂度主要表现时间复杂度和存储空间复杂度两个方面。 随着存储技术的

18、快速发展, 空间复杂度已经不是非常重要的问题。 相反地, 当复杂网络的节点数目非常庞大时, 计算机运算速度的快慢对于解决问题的时间来说已经无足轻重。 此时, 算法的时间复杂度就起着至关重要的作用。 从表 2_113我们可以很直观地看出算法的时间复杂度对于计算速度的重要性。 表 2_1.算法的时间复杂度比较(Pentium/64M/90MHz) )(nT 1,000 10,000 100,000 1000,000 Shuffle O )(n0.00s 0.00s 0.17s 2.22s Quick Sor O )log( nn0.00s 0.015s 0.40s 5.14s Heap Sort

19、)log( nnO 0.00s 0.06s 0.98s 14.35s Insertion Sort O )(2n 0.07s 7.50s 12.5min 20.83hours XY )(3nO 0.10s 1.67min 1.16day 3.17years 表 1 中列出 的是 5 种 不 同算法的时间复杂度, 及其在不同节点数时运算耗时的多少。 由表中可见,当节点数只有 1000 时,时间复杂度为 的算法与复杂度为 O 的算法耗时仅相差 0.1秒 , 也就是说, 当节点数 n较小时, 时间复杂度对于计算的速度影响不大。 但是,当复杂网络的节点数达到 100 万 个 时 , 时间复杂度为 O

20、的算法耗时仅为 2.22s, 而复杂度为 O 的算法却需要 3.17 年!这种计算速度是我们所不能容忍的。由此可见,当网络的节点数比较大时,算法的时间复杂度就至关重要了。 )(nO()(3n)n)(3n在 Pajek 中,所有的算法时间复杂度都低于 O ,即都为 ,)(2n )(nO )( nnO 或者。 Pajek 的这 一算法特点就是使 Pajek 有别于其他 算法, 可以快速处理大型复杂网络的原因,也就是 Pajek 的魅力所在。 )log( nnO32.2 可视化 Pajek 的第二个特点,就是它为用户提供了一个可视化的平台14,15。随着计算机软件业的飞速发展, 从早期的 Turbo

21、 C 到现在的 Visual C+,可视 化是一个必然的趋势。 Pajek为用户提供了一个非常人性化的可视化平台,只要在 Pajek 里执行 Draw/Draw 的 菜 单命令,就可以绘制网络图。 而且, 用户可以根据需要自动的或者手动的调整网络图, 从而允许用户从视觉的角度更加直观的分析复杂网络特性。 关于 Pajek 的 这个特点, 将会在第八章中详细介绍。 2.3 抽象化 最后, Pajek还为分析复杂网络的全局结构提供了一种抽象的方法13。 如图 2_1: (其源程序代码参见附录程序列表中 1_1.vgr) (b) (a) (c) 图 2_1. Pajek 的抽象化 其中图 (a) 表

22、示的某个社区的道路分布图。 其中的阴影部分就是各个不同的 “类” 。这些类是若干个节点的集合, 在这些类的内部, 各个节点之间联系紧密, 而个各类之间则仅仅通过少数的几条边相连接(该网络图的分类情况参见附录 1.clu) 。从这幅图中,我们可以看到各个点之间的联系, 但是很难一眼看出网络的整体结构, 因此, 我们将每个类看成一个整体,将它作为一个新的节点得到一个新的网络图。在 Pajek 中利用菜单命令4Operations/Shrink Network/Partitions实现,在弹出来的对话框中选择不要缩减的类的编号 (在这个情况下, 所有的类都是要缩减的, 因此选择 0) 。 如图(b)

23、所示。 其中, 每一 个典代表的就是原网络中的一个类。这样,从(b)中我们可以很容易的从全局的角度看出整个网络的整体结构。另外,如图(c)所示,原网络正中间的那个类不变,而其周围的各类都看作一个整体。这种情况在 Pajek 中可以利用菜单命令 Operations/Shrink Network/Partitions 实现,在弹出来的对话框中选择不要缩减的类编号,即中间那部分节点所属类对应的编号 4。 利用这个图, 我们就可以很方便的看到中间的类中各个节点在整个网络中的作用。 利用上述的方法, Pajek为用于提供了一种分析复杂网络结构的抽象方法, 有利于从全局的角度分析复杂网络的结构。 而它提

24、供的一整套算法, 又可以方便的计算复杂网络结构的各个特性, 使用户同时还可以具体的分析复杂网络中各个节点和各条边的特点。 因此, Pajek从具体和抽象两方面综合分析复杂网络, 为我们更好的理解复杂网络的机构特性提供了及其有效的工具。 53 Pajek 的数据结构 图 3_1 所示为 Pajek 的主窗口(Main Window)以及程序报告窗口(Report Window) 。其中, 主窗口中显示了 Pajek 当前处理 的对象和处理结果, 这些对象和结果都是以各种文件的形式显示在主窗口中。 而报告窗口则主要显示对该复杂网络对象处理的相关信息。 如计算总耗时, 被处理复杂网络的节点数, 边的

25、条数等等。 从主窗口可见, Pajek 主要有 六种数据结构。 图 3_1. Pajek 的主窗口 3.1 Network(网络) 它是 Pajek最基本也是最重要的数据类型, 包括了整个复杂网络最基本的信息。 如节点数, 各节点的名称以及节点间各条边的连接情况及其权值等。 其中, 复杂网络可以用三种基本方式定义。 6 依次列举该复杂网络所有的边。这种表述形式的复杂网络用后缀名为.net 的文件来存储。如下列文件: *Vertices 4 1 “a“ 2 “b“ 3 “c“ 4 “d“ *Arcs 1 2 2 3 4 3 *Edges 上面的文件表示的网络有四个节点,其节点名称依次为 a,b,

26、c,d。且该 网络有两条边。一条从节点 1 指向节点 2,权值为 2,第二条表示从节点 3 指向节点 4,权值为 3。 (若该边写在*Edges 行下,则为无向边) 。 这种表达方式简单直接, 但缺点就是需要逐次输入各条边, 当网络的结点数很大时, 一次输入各条边就非常之麻烦,耗时而且容易出错。 此种方法实际上是对前一种方法的一个改善。它不是依次列举网络中所有的边,而是对网络中的每个节点依次列举与其相连的边。 这种表述形式的复杂网络用后缀名为.vgr的文件来存储。如: 1 2 3 2 4 6 3 5 4 2 5 1 6 5 其中, 第一列为各节点的标号。 而每一行则表示与每一个节点相连接的节点

27、的标号。 如第一行 1 2 3 表示从节点 1 出发有两条边,分别指向节点 2 和节点 3。 这种方法与前一种方法比较, 相对来说比较直观, 而且不容易出错。 但是, 复杂网络 特性中的很多计算都是以矩阵形式处理的。 因此, Pajek 中还 有矩阵的第三种表示方法, 也是其他程序中普遍采用的一种方法。 7 用连接矩阵的方法来表示复杂网络结构。这种方法在计算机图形学中得到较为广泛的应用。连接矩阵是一个 n 的矩阵, (其中,n 为复杂网络的节点数) ,它反映了两个节点之间具体的连接关系。 若从节点 i 有一条 边指向节点 j(对于无向图而言, 即节点 i 和节点 j 之间有边连接)则矩阵中相应

28、的元素n0ija ,且其值为该边的权值(对于无权图而言, 则为 1) 。 若从节点 i 没有一条边 指向节点 j(对于无向图而言, 即节点 i 和节点 j 之 间没有边相连) ,则 。这样,整个复杂网络的连接结构就可以用一个 的矩阵来表示。实际上,从连接矩阵的定义很容易得出,在这个矩阵中,每一个元素 表示了节点 i和节点 j 之 间的连际关系, 而它的第 i 行表示 从节点 i 出 发指向其他节点的边, 而第 j 列 则表示从其他节点指向节点 j 的边。 0=ija nnija这种形式表示的复杂网络用后缀名为.mat 的文件来存储。如: *Vertices 7 1 “a“ 2 “b“ 3 “c

29、“ 4 “d“ 5 “e“ 6 “f“ 7 “g“ *Matrix 0 2 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 1 0 由邻接矩阵的定义可知, 无向图的邻接矩阵是对称的。 因此, 该文件表示的是一个有向的加权网络。该网络有 7 个节点,网络的连接形式如矩阵所示。如,第 1 行 第 2 列的元素, 它表示从节点 1 有 一 条边指向节点 2, 且边的权值为 2。 同样的道理, 可以得到网212=a8络中其他的边。 连接矩阵的方式可以方便的表达各节点之间的

30、连接关系, 而且与计算机图形学中图的连接矩阵表达方式一致, 因此可以很方便的利用其他程序中得到的连接矩阵, 因而计算起来简单方便。 但缺点就是当 n 非常大时, 矩阵需要的存储空间非常大, 而且其中大部分的元素都为零,因此,浪费了很多存储空间。 Pajek 可以非 常方便地实现上述三种表示方式的相互转换。 因此, 用户可以不必拘泥于选择一种最优的表示方式, 而可以根据习惯任意选择其中一种, 在必要时只需进行适当的转换即可。 3.2 Partition(分类) 用户可以根据复杂网络中各个节点的不同特性将其人为地分为若干个类; 同样的, 以某种特性作为参考标准(如节点度的大小、节点的名称、节点的形

31、状等) ,Pajek 也可以自动将复杂网络中的各个节点按照用户指定的标准进行分类,这些分类的结果就输出为一个Partition 的文件(其后缀名为.clu) 。该文件以两列的形式表示处理结果,其中第一列为各节点的编号,第二列为对应的节点所属的类的编号。如以下形式的一个文件: 1 1 2 3 3 2 4 1 它表示节点 1 和节点 4 属于同一个类,该类的编号为 1。节点 2 所属的类编号为 2,节点 3 所属的类编号为 2。 3.3 Permutation(排序) 它表示复杂网络中各节点的重新排序。 与 partition 类似, 它同样可以由用户人为指定或者由 Pajek 自动根据某 种算法

32、排序 (如按度的大小排序, 随机排序等等) 。 在 permutation文件中会给出各节点新的排列顺序, 其后缀名为.per。 与 partition 文 件类似, 需要注意的是 permutation 文件中给 出的是重新排序后各节点的序号,而不是各个序号所对应的节点。 如 : 1 1 2 2 3 6 94 7 5 4 6 3 7 5 它表示节点 1 在深度优先 算法中排在第一位,节点 2 排在第 二位,节点 3 排在第 6 位 ,依次类推。 因此它表示的节点的顺序是 1, 2, 6, 5, 7, 3, 4(注意不是 1, 2, 6, 7, 4, 3,5) 。 3.4 Cluster(类)

33、 它表示复杂网络中具有某种相同特性的一类节点的集合。 如 partition 文 件中按某种特性分类后的一类节点。其后缀名为.cls。 利用这个文件,用户可以对一类节点进行操作,因而避免了多次处理单个节点的麻烦。 3.5 Hierarchy(层次) 它表示复杂网络中各个节点的层次关系,常用于家谱图的分析。其后缀名为.hie。这种层次结构类似于数据结构中的树。需要注意的是,在表示复杂网络层次结构的树中,结点(node)的定义不同于复杂网络图中的节点(vertice)。树中是将复杂网络中同一个类的所有节点视为一个结点。然后考虑这些类之间的层次关系。 如图三所示: 图 3_2. 网络的层次关系 图

34、3_2 表示的网络一共有 7 个节点:v1,v2,v7。它的层次关系为:根结点 Root 有两个子结点 g1、 g2。 其中 , g2 是一个 叶子结点 (leaf) , 它 包 括三个网络的节点 v5,v6,v7。而 g1 又有两个子节点 g11、g12。他们都是叶子节点分别包括两个网络中的节点。 3.6 Vector(向量) 它以向量的形式为某些操作提供各节点所需的相关数据。 比如, 在构造一个随机复杂网10络时,利用一个 vector 文件给出各个节点的度,由此构造一个随机复杂网络。另外,也可以输出由 Pajek 得到的相关处理结果。如利用 Pajek 求各节点的度,其结果就保存在一个v

35、ector 的文件中。Vector 文件的后缀名为.ver。 另外, Pajek还允许将目前打开的所有文件保存为一个后缀名为.paj 的 文件。 这样, 下次只要打开一个这一个 paj 文件, 就 可以将所有的这些文件都打开, 从而避免了一个一个文件依次打开的麻烦。 114 利用 Pajek 分析复杂网络基本性质 如第二节所述, Pajek 算 法有效, 运算速度快, 可用于分析大型的复杂网络。 不过在本文中, 主要着重于介绍 Pajek 的功能 , 为了便于分析, 选取的例子都是一些具有代表性的小型复杂网络。 本文中介绍的各功能都可以用于分析大型复杂网络, 只是处理的节点数目不同而已。 4.

36、1 度的计算 度是复杂网络节点的属性中最简单但也是最重要的性质。一个节点 i 的 度 k 定义为与它相连的节点的数目2,因此,从直观上来看,一个节点的度越大就意味着这个节点越重要。 i对于有向图,一个节点的度可分为入度和出度两类。节点 i 的入度定义为指向节点 i的节点的数目,出度为被节点 i 指 向的节点的数目。出度和入度之和即位该节点的总的度。利用 Pajek中 Net/Partitions/Degree 菜 单下的 In/Out/All 三个命令 可分别对有向图的节点求其入度,出度和总的度。对于无向图,则只需用 All 一个命令即可。 如图 4_1 所示的网络,这是社会网络学中的一个经典

37、问题3。 70 年代初期, Wayne Zachary 用了两年的时间来观察美国一所大学中的空手道俱乐部成员间的相互社会关系。基于这些成员在俱乐部内部及外部的社会关系, Wayne Zachary 构造了他们之间一系列的关系网。 图 4_1. Zachary 网络 12在 Pajek 中对 该网络执行 Net/Partitions/Degree/All 的 菜单命令, 处理结果为一个 Patition的文件,它按照每个节点的度值为网络中所有的节点分类,而类的标号就是节点的度。 从程序输出结果可知,大部分的节点度都在 2-6 之间。而节点 1 和节点 33 的度则明显较大,分别为 16 和 11

38、。实际上,在该网络中,节点 1 表 示的是该大学的校长,而节点 33则表示该空手道俱乐部的主管。 事有凑巧, 在 Zachary 调查 的过程中, 该俱乐部的主管与校长之间因是否抬高俱乐部收费的问题产生了争执, 结果, 该俱乐部分裂成了两个分别以校长和主管为核心的小俱乐部 16。 由此可见, 这两个度比较大的节点的确在整个网络中起着领导性的作用。 类似地, 对于一个非常复杂的网络 (如 internet 网络) , 光 凭肉眼很难判断哪些节点比较重要, (如找出 internet 网络中的 hub 节点) 。此时,可以利用 Pajek 计算复杂网络中各节点的度,根据各节点度的大小就可以很容易的

39、判断其重要性。 4.2 两点间的距离 4.2.1 两点间的最短路径 顾名思义, 复杂网络中连接两个节点 i 和 j 的 最短路径, 即找到这样一条路径, 使得从节点 i 到 j,所经过的边数最少。对于有权复杂网络而言,如果考虑权值,即使得这条路径所经过的各边的权值之和为最小。 图 4_2. 上海交通大学上院教室分布图 13如图 4_2 所 示, 为上海交通大学闵行校区上院教室的分布图 (该网络的源程序代码见附录中 ) 。图中,每一个节点表示一间教室或者一个楼梯间。如果两个教室之间可以直接到达而不需要经过其他教室,则两个教室之间有一条边相连。 现在, 假设有一个用户要从上院 102( 即图中的

40、s_102 节 点 ) 到上 院 506(即图 中的 s_506节点) , 他希望能够用最短的时间到达, 即希望找得这两个节点间的最短路径。 只需在 Pajek中执行 Net/Paths between 2 vertices/One shortest 菜单命令 ,在弹出来的对话框中输入s_102 和 s_506 两个节点,则可以得到这两个节点之间的最短路径。输出的结果为一个partition 的文件。其中,若一个节点对应的类序号为 0,则表示最短路径不经过该节点,若为 1,则表示最短路径经过该节点。 另外,Pajek 还可以画出一个子网络图,其中仅仅包括了这两个节点之间的最短路径,用户通过这个

41、网络图, 可以更加直观地看到这两个节点之间的最短路径。 如图 4_3 所示。 即从上院 102 经过上院的教室 104、106,然后上楼依次经过 204、304、404、504,然后到 达上院 506。 图 4_3. 从上院 102 到 506 的最短路径 实际上, 一个复杂网络两个节点之间的最短路径可能并不只一条, 用户利用 Pajek 提 供14的 Net/Paths between 2 vertices/All shortest 菜 单命令还可以得到两点之间所有的最短路径。 4.2.2 复杂网络的直径 复杂网络中两个节点 i和 j之间的距离 定义为连接着两个节点的最短路径上的边数,而复杂

42、网络中任意两个节点之间的距离的最大值叫做复杂网络的直径 D。 ijd利用 Pajek 中 的 Net/Paths between 2 vertices/Diameter 的菜单命令,可以求得 图4_2 所示网络 中距离最大的两个节点为 s_102 到 s_506, 网络直 径为 6(该输 出结果在报告窗口中输出)。 4.2.3 K 步之内的路径 从节点 i 出 发, 如果经过一条路径 (对于无向图, 可重复经过同一条边, 即可以从节 点i 到节点 k, 又从节点 k 回到节点 i, 计作两步) , 可以在规定的 k 步内到 达节点 j,则 这 条路径就称节点 i 到节点 j 的 k 步内路径。

43、 利 用 Pajek 中的 Net/Paths between 2 vertices/Walks with Limited Length 的菜单命令,可以求得从某个节点 i 到 另 一个节点 j 的所有 k 步 内的所有路径。如,利用 Pajek求图 4_2 所示网络中 s_108 在 7 之内到 s_308 的路径,得到的结果如图 4_4 所示。 图 4_4.从 s_208 到 s_308 7 步之内的所有路径 4.2.4 复杂网络的测地矩阵(Geometric Matrices) 复杂网络的最短路径又叫做测地路径。 Pajek 允 许用户对复杂网络的所有节点对求最短15路径长度,并且以矩阵

44、的形式保存其结果。 利用 Pajek中 的 Net/Paths between 2 vertices/Geometric Matrices 的菜 单命令可求得整个复杂网络的测地矩阵。输出结果为两个矩阵。第一个是最短路径长度矩阵(t he shortest path length matrix) ,其中 给出了每个节点对之间最短路径的长度。另一个是最短路径条数矩阵(the geodesics count matrix),其中给出了每个节点对之间存在的最短路径的条数。 利用该命令求图 4_2 的 测地矩阵, 输出结果为两个 net 文 件 (源代码见附录程序列表 5,其中,5_ 为最短路径长度矩阵

45、,5_ 为最短路径条数矩阵) 。 需要注意的是, 由于这种方法要求计算所有的节点对之间的最短路径, 计算复杂度比较大,因此仅适用于小网络。 4.3 k 近邻(k-neighbors) 我们已经知道,如果节点 i 与节点 j 有一条边直 接相连,那么这两个节点就互为邻居。类似的, 如果节点 i 通 过 k 条边与 节点 j 相 连 , 那么这两个节点就互为 k 近 邻 16。 对于有向图而言, 则分为 k 出 近邻和 k 入 近邻两种。 如果从节点 i 出发, 沿着 有向边的箭头所示方向,通过 k 条边可到达节点 j,则节点 j 为节点 i 的 k 出近邻,而节点 i 则为节点 j 的 k 入近

46、邻。对于有向图,如果忽略边的方向,就可以当作无向图来求其节点的 k 近邻。 如图 4_5 所示网络(该网络的源程序代码见附录中的 ) 。 图 4_5. 示例图 16该图为一个有向图,利用 Pajek 中 Net/k-Neighbors/Output 的命令,在弹出的对话框中输入最长的 k 步距离 。 如果输入 0, 则表示找到 pe0 这 个 节点的所有输出 k 近 邻 。 处理的结果是一个 Partition 的 文件。 其中, 每个节点所属类的编号即为从 pe0到该节点的最短输出路径。 有程序输出结果中可见, 离 pe0 最远 的节点是 pm1-pm5,cm1-cm5 十个节点, k 值

47、为4,最近的节点是 tme1-tme5 五个节点,k 值为 1。 利用同一个命令, 如果在弹出的对话框中输入最长的 k 步 距离为 2, 即 表示求 pe0这 个节点的输出 2 近邻。 同样的, 我们可以得到一个 partition 的 文件。 如果从 pe0 出 发 , 经过2 条以内的边可以到达节点 i ,则节 点 i 就 为 pe0 的近邻,它所属的类的编号就为这个最短步距。但是,如果 2 步以内不能到达节点 i,则 节点 i 不 是 pe0 的近邻, 它所属的类的编号即设为默认值 9999998。 比如, pe0 经 过一条边可以到达 tme1, 因此在输出结果的 Partition文

48、件中,tme1 节点所属的类的编号为 1。节点 pe0 经过两条边可以到达节点 pe1(先 从 pe0到 tme1,再 到 pe1) ,因 此在这个 Partition 文件 中,pe1 节点 所属的类的编号就为 2。节点pe0 要经过三 条边才可以到达 tem1( 先 从 pe0 到 tme1,再到 pe1,最后到 tem1) , 超过了实现规定的 2 步,因此,tem1 这个节点所属的类的编号即为 9999998。 利用 Pajek中 Net/k-Neighbors/Input 的菜单命令 , 求 pe0 的 所 有输入近邻, 同样得到一个 Partition 的文件。 在此文件中, 除

49、pe0 本 身以外所属类编号为 0外 , 其他的所有节点的类的编号都为 9999998。我们由图中也可以看到,pe0 这个 节点是整个图的起始节点,即没有任何一个节点指向该节点。因此,自然没有一个节点是 pe0 这个节点的 k 输入邻居。 类似的, 利用 Net/k-Neighbors/Input 的菜单命令 , 求 tme1 这 个节点的所有输入邻居 。由结果可见,t me1 最远的输入邻居是 pm3 和 pm4, 步距为 9(如pm3 tme3 pe3 tem3 pc2tme2pe2 tem2pc1 tme1) 。 再利用 这个命令 求tme1 的 4 输 入近邻。可见,若一个节点要经过 4 条以上边才能到 tme1, 则它所属类的编号为 9999998;若在 4 步之内可以到达 tem1,则

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报