pajek%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B

pajek%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B
pajek%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B

Pajek

分析和可视化大型网络的程序

参考手册

List of commands with short explanation

version 1.16

Vladimir Batagelj and Andrej Mrvar

翻译:先红、一生有我、傻大师、沧海回眸、AndyChang、comp network、遥遥、大头、三叶草

整理:饭团

Ljubljana, October 4, 2006

1996, 2006 V. Batagelj, A. Mrvar. Free for noncommercial use.

PdfLaTex version October 1, 2003

Vladimir Batagelj

Department of Mathematics, FMF University of Ljubljana, Slovenia http://vlado.fmf.uni-lj.si/ vladimir.batagelj@fmf.uni-lj.si

Andrej Mrvar

Faculty of Social Sciences University of Ljubljana, Slovenia http://mrvar.fdv.uni-lj.si/ andrej.mrvar@fdv.uni-lj.si

目录

1.Pajek介绍 (1)

2.数据对象 (3)

3 主窗口工具栏 (7)

3.1 File(文件) (7)

3.2 Net(网络) (11)

3.3 Nets(网) (26)

3.4 Operation(操作) (28)

3.5 Partition(分类) (34)

3.6 Partitions(分类) (35)

3.7 Vector(向量) (35)

3.8 Vectors(向量) (36)

3.9 Permutation(排序) (37)

3.10 Cluster(类) (37)

3.11 Hierarchy(层次) (37)

3.12 Options(选项) (38)

3.13 Info(信息) (40)

3.14 Tools(工具) (40)

4 绘图窗口工具 (42)

4.1 主窗口绘图工具 (42)

4.2 Layout(布局) (42)

4.3 Layers(图层) (43)

4.4 GraphOnly(仅图形) (44)

4.5 Previous(退回到前一次操作) (44)

4.6 Redraw(重绘) (44)

4.7 Next(下一步) (44)

4.8 Options(选项) (45)

4.9 Export (导出) (47)

4.10 Spin(旋转) (49)

4.11 Move(移动) (49)

4.12 Info (信息) (49)

5 Exports to EPS/SVG/VRML (50)

5.1 Defaults (默认值) (50)

5.2 Parameters in EPS,SVG and VRML Defaults Window(在EPS/SVG/VRML默认窗口中

的参数) (50)

5.3 Exporting Pictures to EPS/SVG — 在输入文件中定义参数 (52)

6 在Pajek中使用Macros(宏) (57)

6.1 什么是Macro(宏)? (57)

6.2 怎样标明一段宏? (57)

6.3 如何运行宏? (57)

6.4 例子 (57)

6.5 重复最后的命令 (57)

附加信息 (59)

1.Pajek介绍

Pajek 运行在Windows环境,用于带上千及至数百万个结点大型网络的分析和可视化操作。在斯洛文尼亚语中Pajek 是蜘蛛的意思。最新Pajek版本通过以下途径获取,但限于非商业用途:

http://vlado.fmf.uni-lj.si/pub/networks/pajek/

我们于1996年11月应用Delphi(Pascal)语言,开始开发Pajek,其中的一些程序由Matjaz Zaversnik提供。

当看到现有的几种大型网络已有机器可读格式时,我们萌发了开发Pajek的动机。Pajek 向以下网络提供分析和可视化操作工具:合著网、化学有机分子、蛋白质受体交互网、家谱、因特网、引文网、传播网(AIDS,新闻,创新)、数据挖掘(2-mode网)等。大型网络集在这里也可找到:

http://vlado.fmf.uni-lj.si/pub/networks/data/

对Pajek的设计工作,得益于我们先前的开发经历:包括开发gragh数据结构,以及Gragh和X-graph的算法库,集成Stran, RelCalc, Draw, Energ,以及基于SGML的图形描述语言 NetML等的经历。

http://vlado.fmf.uni-lj.si/pub/networks/default.htm

图1:Pajek / 蜘蛛

图2:处理大型网络的途径

设计Pajek的主要目的:

z支持将大型网络分解成几个较小的网络,以便使用更历久的方法进一步处理;

z向作用者提供一些强大的可视化操作工具;

z执行分析大型网络有效算法(subquadratic)。

通过Pajek可完成以下工作:在一个网络中搜索类(组成,重要结点的邻居,核等);析取属于同一类的结点,并分别地显示出来,或者反映出结点的连接关系(更具体的局域视角);在类内收缩结点,并显示类之间的关系(全局视角)。

除普通网络(有向、无向、混合网络)外,Pajek还支持多关系网络,2-mode网络(二分(二值)图—网络由两类异质结点构成),以及暂时性网络(动态图—网络随时间演化)。

图3:Pajek 教材

此手册简单地解释了运行于最新版本Pajek上的所有程序。我们建议初学者阅读以下Pajek教材:

de Nooy W., Mrvar A., Batagelj V. (2002) Exploratory Social Network Analysis With Pajek. Structural Analysis in the Social Sciences 27, Cambridge University Press, 2005.

希望对使用Pajek进行网络分析有一个概览,请阅读NICTA 工作室的幻灯片:

Batagelj V.: Workshop on Network Analysis, Sydney, Australia: 14th to 17th June 2005; at Nicta (National ICT Australia). http://vlado.fmf.uni-lj.si/pub/networks/doc/#NICTA

2.数据对象

Pajek是专门用来分析大型网络(含有成百上千个结点)的专用程序。包含如下六种参数:

图4:Pajek主窗口

https://www.360docs.net/doc/ce14927273.html,works(网络)-主要对象(结点和边)。默认扩展名为:.net。在输入文件中,

网络有多种表现方法:

·利用弧线/边(如:1 2-从1到2的连线)

·利用弧线列表/边序列(如:1 2 3-从1到2的连线和从1到3 的连线)

·矩阵格式

·UCINET,GEDCOM,化学式

关于网络绘制的更详细的信息包含在输入文件中,在'Exports to EPS/SVG/VRML'章节中对此有相关介绍。

2.Partitions(分类)-它指明了每个结点分别属于哪个类,默认扩展名为:.clu。

3.Permutations(排序)-将结点重新排列,默认扩展名:.per。

4.Clusters(类)-结点的子集(如:来自分类中的一个类)。默认扩展名:.cls。

5.Hierarchies(层次)-按层次关系排列的结点,例:

根结点Root下面有两个子群-g1和g2。g2是一个叶结点,包含v5、v6、v7三个结点。g1又包含两个子群---g11和g12...默认扩展名:.hie。

6.Vectors(向量)-指明每个结点具有的数字属性(实数)。默认扩展名:.vec。

双击所选的网络、分类…就可以在屏幕上显示这个对象。

pajek主窗口中的程序(见图4)是根据输入时的数据类型来组织编排的。

排序、分类和向量用于分别从不同角度反映结点的性质,例如结点组织顺序、类别和数字特性。

3 主窗口工具栏

3.1 File(文件)

六种数据对象的输入/输出操作:

z网络network-N

- Read(读)-从Ascii文件中读取网络。

- Edit(编辑网络)-选择结点,显示其邻居,然后:

* 添加新边到选定结点(在新边上双击鼠标左键)

* 删除边(双击左键)

* 更改边的属性值(单击右键)

* 通过增加不可见的新结点将边细分为两条相互垂直的边(单击鼠标中键)-Save -保存网络为Ascii文件

-Export Matrix to EPS(将矩阵输出为EPS)-用EPS格式生成矩阵

* Original(普通)-利用默认的计数方法(适合1-Mode和2-Mode网络)

* Using Permutation(排序)-利用当前排序。通过绘制附加线来区分选中的分类

中不同的类。此选项适合于1-Mode和2-Mode网络。如果在2-Mode网络中绘制附

加线,则需要首先定义从属分类和以包含的类作为第二个分区的分区(在分类菜单

中)。

* Using Partition(分类)-利用当前的分类。在记录窗口中列出了不同的类中边

的数目和密度(以及所选的两个类中的结点)。另外,当密度用阴影图表示时,矩

阵被输出到EPS。

1.Structural(结构化)-根据类间最大可能的连边数目来定义密度(适合于

密度网络图)

2.Delta(三角化)-根据拥有最大的输入和输出邻居结点数来定义密度(适合

于稀疏网络)。

* only black borders(只有黑色边框)-如果被检测到,则矩阵中的所有方阵都将

有黑色边框,否则,黑色边框将会变成白的,明亮的边框会变成黑色的。

-Change Label修改选定网络的标签。

-dispose从内存中删除所选的网络。

表1:时间事件列表

事件注释

TI t 原始事件-后续事件从时间点t开始发生

TE t 终止事件-当时间点t结束后发生

A V vns 添加标签为n,属性为s结点v

HV v 隐藏结点v

SV v 显示结点v

DV v 删除结点v

AA uvs 添加具有属性s的弧线(u,v)

HA uv 隐藏弧线(u,v)

SA uv 显示弧线(u,v)

DA uv 删除弧线(u,v)

AE uvs 添加具有属性为s的边(u:v)

HE uv 隐藏边(u:v)

SE uv 显示边(u:v)

DE uv 删除边(u:v)

CV vs 改变结点属性-将结点v 的性质改为s

CA uvs 改变弧线属性-将弧线(u,v)的属性改为s

CE uvs 改变边的属性-将边(u:v)的属性改为s

CT uv 改变类型-改变连线(u,v)的方向(无)

CD uv 改变弧线(u,v)的方向

PE uvs 用属性为s的单边(u:v)替代一对弧线(u,v)和(v,u)

AP uvs 添加一对具有s属性的弧线(u,v)和(v,u)

DP uv 删除弧线对(u,v)和(v,u)

EP uvs 用具有s属性的弧线对(u,v)和(v,u)来替换边(u:v)

z Time Events Networks 网络-N

-Read Time Events-读取用时间事件描述的网络。见表1

属性s可以为空。如果两个结点之间存在多条连接边(弧),那么在程序命令中必须用附加标签:如k(第k条边)来标明具体是哪条边。例如:命令HE:3 14 37将连接结点14和37的第三条边隐藏起来。

时间网络的例子如下:

*Vertices 3

*Events

TI 1

AV 2 "b"

TE 3

HV 2

TI 4

AV 3 "e"

TI 5

AV 1 "a"

TI 6

AE 1 3 1

TI 7

SV 2

AE 1 2 1

TE 7

DE 1 2

DV 2

TE 8

DE 1 3

TE 10

HV 1

TI 12

SV 1

TE 14

DV 1

也存在其他可能:用时间间隔(time intervals)来描述time网络。

-Save —用时间事件格式保存时间网络

z Partition-C

-Read从Ascii文件中读取分类。

-Edit编辑分类(将结点分类)。

-Save保存分类。

-Change label修改标签。

-Dispose selected partition from memory从内存中删除分类

z Permutation-P

-Read从Ascii文件中读取排序。

-Edit编辑排序(将两个结点交换位置)

-Save保存排序

-Change label修改名称

-Dispose selected Permutation from memory从内存中删除排序

z Cluster-S

-Read 从Ascii文件中读取类1。

-Edit 编辑类(cluster)(增加和删除结点)。

-Save保存选择类到一个ASCII文件。

-Change Label改变所选类的名称。

-Dispose 从内存中删除所选类。

z Hierarchy(层次)-H

-Read从ASCII文件中读入层次

-Edit 编辑层次(改变结点的类型和名字,或者显示所选结点所属的层次(和子树))。

结点能在一个层次内能移动。

-Save保存所选层次到ASCII文件。

1以上由“comp network”和“先红”共同翻译,Email: taxue_xunmeng@https://www.360docs.net/doc/ce14927273.html,

-Change Label改变所选层次的名称。

-Dispose从内存中删除所选的层次。

z Vector(向量)-V

-Read从ASCII文件中读入向量。

-Edit编辑向量(改变向量的组成)。

-Save 保存所选向量到ASCII文件。如果类描述的向量id存在,所有的具有相应id 的向量将被保存到相同的输出文件。在所选向量上按V键,向量的id能被增加到类(空类应该首先创建)。所有的向量必须有相同的维。

-Change Label 改变所选向量的标签。

-Dispose 从内存中删除所选的向量。

z pajek 项目文件-*.paj

-Read pajek 读pajek项目文件(文件包含所有可能的pajek数据对象-网络,分类(partitions),排序(permutation),类(clusters),层次(hierarchies)和向量(vectors))。

-Save 保存所有当前载入的对象作为一个pajek项目文件。

z Repeat session (重复会话)-程序执行过程中,所有的命令被记在*.log文件中。用这种方法,你能通过选择log文件重复任何步骤。如果你在log文件中将一个文件名称改为?。当下一次运行log文件时,程序将询问文件名(所以你能重复一系列相同的步骤-log文件将可以有不同的输入数据)。如果备份log文件(Pajek.log)存在(在Pajek.exe 同一个目录下),当Pajek运行时,它将自动执行。

z Show Report Window-在它关闭或没显示的情况下调出报告窗口。

z Exit 退出程序。

3.2 Net(网络)

操作(Operations),该操作仅输入一个网络。

z Transform 变换

-Transpose(转置)-对所选的网络转置:

* 1-Mode -改变箭头方向。

* 2-Mode -交换行与列。

-Remove 移除

* Selected Vertices -从网络中移除所选的结点。

* all Edges -从所选的网络中移除所有的边。

* all Arcs -从所选的网络中移除所有的弧。

* Multiple Line -从所选的网络中移除所有的多重连线。

1.Sum Values -相应两结点之间的所有已删除的边的值加上没删除的边的

值。

2.Number of Lines -在新网络中对应于原始网络两个结点之间的边的属性

值。

3.Min Value -在所选结点之间所有连线中的最小边的属性值。

4.Max Line -在所选结点之间所有连线中的最大边的属性值。

5.Single Line -在一个新网络中两结点间连线边的属性值为1。

* Loops-移除所选网络中所有的环。

* Lines with Value

1.lower than -移除比指定边的属性值低的所有边。

2.higher than -移除比指定边的属性值高的所有边。

3.within interval -移除在指定边的属性值范围内的所有边。

* all Arcs from each Vertex except(来自每个结点的所有弧,除开)

1. K with Lowest Line Values -依据输出边的属性值对结点的边按升序排

列。仅保留有最低属性值的所选边数。

2. K with Highest Line Values -依据输出边的属性值对结点的边按降序排

列。仅保留有最大属性值的所选边数。

-Add 增加额外的结点,边或者结点/边的标签到网络中。

* Vertices -复制网络到新的网络。对于所选定的结点,维度能扩大。(加入无边的结点)

* Source and Sink -如果网络是无环的,增加唯一的起点和终点(新网络有两个人工结点)。

* Default Vertex Labels -用默认结点标签(V1,V2…)替代当前结点标签。

* Vertex Labels from File -用输入网络文件给定的名称改变默认结点名称(V1,V2…)。

* Line Labels as Line Values-用边的属性值替代边的标签(如果没有标签则新产生)。在画图窗口中标注的边的属性值,小数位是相同的。

* Sibling edges(兄弟边)-增加兄弟边到结点,其结点有相同的:

1.Input(输入)-弧-祖先

2.Output(输出)-弧-后代

-Edges→Arcs(边→弧)-将所有的边转换为弧(都有方向)(生成有向网络)

-Arcs→Edges(弧→边)

* All -将所有的弧转换为边(生成无向网络)。

* Bidirected only -仅将双向的弧转换为边:

1.Sum Values -新边的属性值是两条弧的边的属性值之和。

2.Min Value -新边的属性值是弧的边的属性值中最小的。

3.Max Value -新边的属性值是弧的边的属性值中最大的。

-Bidirected Arcs→Arcs(双向弧→弧)

* Select Min Value -如果在两个结点之间存在两条向弧,仅保留边的属性值低的弧,移除边的属性值高的弧。如果两个边的属性值相等则用一条边替代两条弧。

* Select Max Value -如果在两个结点之间存在两条向弧,仅保留边的属性值高的弧,移除边的属性值低的弧。如果两个边的属性值相等则用一条边替代两条弧。

-Line Values -改变边的属性值。

* Recode -通过选择区间和重新编码边的属性值这种方法,显示边的属性值的频率分布。

* Multiply by -乘以一个常数。

* Add Constant -在边的属性值上加一个常数。

* Absolute -对边的属性值取绝对值。

* Absolute+Sqrt -对边的属性值取平方。

* Exp -边的属性值为底数e的指数。

* Ln -取边的属性值的自然对数。

* Power -边的属性值取所选的幂。

* Normalize(标准化)

1.Sum -标准化使得边的属性值的总和为1

2.Max -标准化使得边的最大属性值为1

-Reduction(简化)

* Degree(度)-(递归地)删除网络中结点的度低于某个选定值的结点

(根据入度、出度或所有的度)。操作能限定在所选的类中。

* Hierarchical(层次)-递归地删除网络中所有只有一个或者没有邻居的结点。

结果:随着结点删除,网络成为更简单的网络和层次。原始网络能被恢复(假如我

们忽略连线的方向)。

* Subdivisions(细分)-递归地删除网络中恰好有2个邻居的所有结点(及相应

的两条边),并在这两个邻居间增加一条直接的边。结果是产生更简单的网络(适

合于作图)。原始网络不能被恢复!

* Design(flow graph)(设计(流程图))运用McCabe简化网络的所有结构(适合

于程序-流程图)[38]。2

图6 第36天时路透社关于恐怖袭击的部分新闻网络结构图

-Generate in Time -在指定的时间或时间间隔内生成网络。输入起始时间、结束时间和步数(整数)。

在激活结点和边前必须给出其它一些附加的参数,这些参数必须按一定的格式输入,参2以上由“饭团”翻译,Email:becoo@https://www.360docs.net/doc/ce14927273.html,

数必须输入在符号“[”和:“]”之间:

“-”用于分类某时间间隔段的最小值和最大值

“,”用于分隔时间间隔段

“*”表示无穷大。例如:

*Vertices 3

1 "a" [5-10,12-14]

2 "b" [1-3,7]

3 "e" [4-*]

*Edges

1 2 1 [7]

1 3 1 [6-8]

结点“a”从时刻5到时刻10,以及时刻12到时刻14的时间间隔内是激活的,结点“b”从时刻1到时刻3,以及时刻7是激活的,而结点“e”从时刻4开始一直都是激活状态。从1到2的边在时刻7时是激活的,从1到3的边在时刻6至时刻8之间是激活的。

在一个时间网络中,结点和边应该满足一致性条件:如果边a在时刻t是激活的,那么它的端点在时刻t也必须是激活的。只有符合时间段要求的边才能够生成。

注意时间记录应该在最后一行,此时结点和边已经被定义好。

再来看另一个描述时间网络的方法:利用时间事件(time events)来定义时间网络。

* All-在指定的时刻生成所有网络。

* Only Different-在指定的时刻生成所有网络,仅当新的网络中至少有一个结点和边与前一个网络不同。

* Interval-在固定的时间间隔生成网络。

-1-Mode to 2-Mode-由任意网络转变生成2-Mode网络

- 2-Mode to 1-Mode-由2-Mode(隶属)网络转变生成一般网络(1-Mode)。结果是一个加权网络。为了将2-Mode网络存储为输入文件的格式,可以使用Pajek或者Ucinet(具体见Ucinet数据集中的Davis.dat)

* Rows-其结果是一个包含各行元素(参与者)之间关系的网络。边的属性值表示两个参与者之间公共事件的数目。

* Columns-其结果是一个包含各列元素(事件)之间关系的网络。边的属性值表示同时参与两事件的参与者数目。

* Include Loops -如果选中,回路可以被添加,其中的值表示每一个参与者参与的事件数目(包括每一个事件参与者的数目)。

* Multiple Lines-产生无权值的1-Mode网络,网络中结点之间可以出现多条边。生成边的标签对应于相关事件/参与者的名称。如果对同维的分类存在,则可以生成多相关网络。

* Normalize 1-Mode-规格化得到的1-Mode网络。1-Mode网络的生成可以通过选中include loops,不选中multiple lines而得到:

得到的网络通常不是稀疏的。为了使之更加稀疏,可以使用Net/Transform

/Remove/lines with value/lower than。

*Rows=Cols-将具有相同结点子网的2-Mode网络转化为1-Mode网络。

- Multiple Relations

* Extract Relation(s) -从选取的多重相关网络中抽取出一个或者所选的关系列表。

* Canonical Numbering (规范化编号)-列举有序数字1,2,~的关系。

* Generate 3-Mode Network -由1-Mode和2-Mode多重关系网络生成3-Mode 网络。对于多重关系网络r中的每一条边:i j v(从i到j的边的属性值为v,相关编号为r,) 产生以下三条边(三角形):

此处N是第一种模式的势(cardinality),M为第二种模式的势(cardinality)。

* Line Values -> Relation Numbers -将边的属性值存储为相关值(去尾的整值)。

* Relation Numbers -> Line Values -将相关值存储为边的属性值。

* Change Relation Number / Label -将选择的相关值转变为带有相关名称的

新的相关值。

- Sort Lines

* Neighbors around Vertices -对于每一个结点,依据连接到该结点的其它结点

进行升序排列。

* Line Values -按照边的属性值的大小进行升序或降序排列。

z Random Network -生成预定度数的随机网络

-Total No. of Arcs -选定度数和arc数目,生成随机有向图。

-Vertices Output Degree -选定度数,以及每个结点的出度,生成随机有向图。

-Erdos-Renyi -依据Erdos和Renyi定义的模型,生成无向、有向、无循环、双向或者2-mode的随机网络。在ER模型中每一条边的生成都按照概率P,而在Pajek中,使用了更直观的指标:平均度d。所有的连接都必须符合

和m = pM,这里的n = |V |,m = |L|,M表示最大的网络中边的数目,例如无向图M = n(n ? 1)。

-Scale Free -生成无尺度无向、有向或者非循环网络。依据为无尺度网络生成模型,见文献[43],在网络增长的每一步中,有一个新结点和k个边被加入到网络N中去。边的端点可以在已有的结点中随机的选择,选择的概率为

其中

这里可以较为容易检查。3

- Extended Model(拓展模型)—根据BA拓展模型生成随机网络[2]。

3以上内空由“遥遥”翻译,Email: yaoyi226@https://www.360docs.net/doc/ce14927273.html,

附:非原文内容,说明而添加

z Partitions(分类区域)-分类网络。结果是一个分类。

-Degree(度)

* Input(输入)-指向结点的边数

* Output(输出)-从结点指出的边数。

* All(总数)-结点的所有的邻居。

-Domain(范围)-根据结点的输入输出以及邻居来计算该结点的范围。结果是:

* 分类包括范围的大小-可获得结点的数目。

* 向量包括标准化的范围尺寸-标准化通过总的结点数减1来完成。

* 向量包括到到该范围的平均距离。

根据平均距离分类标准的区域范围可以计算出近似的Prestige指数。

-Core(核)-k-核是给定网络的一个子集,在子集中每一个结点至少有k个近邻,根据:

* Input(输入)-指向结点的边数

* Output(输出)-从结点指出的边数。

* All(总数)-所有的邻居。

* 2-Mode -2-Mode网络的核心分类。给定第一个子集的最小度(k1)第二个子

集的最小度(k2),生成一个新的分类。这里,0表示结点不属于前面所定义的k1

和k2所属的核,1表示该结点属于该核。

* 2-Mode Rveview -给定k1和k2初始值,计算下列:

k1 k2 Rows Cols Comp

这里,k1是第一个子集的最小度,k2是第二个子集的最小度。Rows和Cols 是相应的

相关主题
相关文档
最新文档