学习记录 Complex Networks Package for MatLab

翻译:

复杂网络的MATLAB工具包提供了一个高效、可扩展的框架,用于在MATLAB上的网络研究。
可以帮助描述经验网络的成千上万的节点,生成人工网络,运行鲁棒性实验,测试网络在不同的攻击下的可靠性,模拟任意复杂的传染病的传播,生成一个很好的网络输出,甚至描述网络的演化过程。

下载不同的版本到系统中

目录表:
致谢
背景
特征列表
参考
下载
安装
教程
文档支持

特征列表:
1、性能
       尽力实现了最有效的算法,toolbox能够操作加工具有超过一千万个节点和一亿条边的图,大多数算法应用合适的科学资源,可以很有效地估计渐进效率。

2、静态网络分析
        toolbox包括大量的算法,用来执行各种网络分析的任务。大多数计算的算法用C++编译成可执行的mex-files完成。很多算法接收"方向性"参数,决定了他们是否应该在实际图、逆矩阵图或者无向图版本中运行。决定了各个节点属性的算法可能接收到一个感兴趣的节点列表,并且节省计算资源,只返回节点资源的一个子集。
        算法包括提取节点的度,计算局部网络中每个节点的平均度,不同的最短路径和距离测量(在一个特定的距离范围中或不同长度的圈频率中识别节点),聚类系数,邻居重叠,节点和连接嵌入,各种先进的中心度测量(中间系数等)和排序算法(HITS和PageRank等),几种图聚类犯法(K-Shell和K-Core,强连通和弱连通识别,图模块化),网络统计数据。

3、动态过程的仿真
        网络的动态过程,如创新扩散,演化行为或传染病的传播都是研究人员在很多领域重点关注的内容。然而,很少有工具包能有效地促进网络中的动态过程的高层仿真。综合网络分析能力和输出布局使得系统非常强大。
        这个框架设计成隐藏扩散过程机制。用户只需要定义初始值(仿真开始时的节点状态),一个回调函数定义了单个agent的交换行为(agent状态的改变作为一个函数),和一个激活顺序(这个顺序中回调函数被称为一个框架,通常是随机的,不重复的,但是用户能从列表选项中挑选或实现自己想要的结果)。
        这个框架支持极其复杂的扩散模型,例如,agent可能考虑个人特性,自己的状态或者它们的邻居节点的状态的历史,任意数量的状态之间的切换或者甚至保持一个向量状态。
        我们实现达到两个看似矛盾的目标,一方面,我们想要这个工具包涉及错综复杂的用户模拟,另一方面,我们想要允许任意复杂的扩散过程。依赖基于agent的方法基于回调函数指定agent的行为,隐藏engine的实现细节,并鼓励用户用一种基于agent的方式思考。
        我们提供了少量标准模型的实现,包括SI,SIR和SIS,在教程中展示了他们的执行和结果分析过程。这些模型能在短短几行简单的代码中实现,无需深刻理解错综复杂的框架。

4、网络输出和layout
        这个框架可以用几个图布局引擎接口以兼容的格式或直接自动引擎输出图,我们输出网络为本地格式如yEd, At&t graphviz and Pajek,然而自动的Gephi toolkit and At&t GraphViz 提供了轻整合,因为这些工具能从MATLAB中直接操作控制来生成图。一个序列生成的图像能合成一个动态的过程,例如网络蔓延或扩散过程。
           整合 Gephi Toolkithttps://gephi.org/toolkit/)到MATLAB中便于编程控制几个布局算法,每个算法有大量的属性,任意的图着色方案(单个节点和边的大小,颜色,形状,标签能被直接在MATLAB中编程),渲染和导出选项。我们概念化图布局为一个序列帧,每一帧可能代表一个不同的图有不同的一些选项和应用的布局算法。典型的应用可能是执行一个强制布局算法仅在第一帧,那么结果图可能有唯一的布局。这些序列帧可能在图元素中的颜色和大小各部相同。合并生成的序列图由很多序列帧组成的动作来描述,比如一个图中的扩散过程。
            AT&T GraphViz采用的是相同的应用,这些软件能够编码图布局在文本文件中用坐标表示每个节点并且用规范曲线代表连边。这个文件能被用于生成一个序列帧,这些序列帧有不同的节点连边属性但是保存为布局。这些帧在yEd 中能生成一个序列图像。
            我们土建使用Gephi Toolkit,因为它更好整合,具有更好的支持。

5、网络I/O和生成模型
        这个包实现了一系列标准的生成模型,并且非常适合自定义的算法的实验。它可以导入在网络应用的最多的文件格式的数据。考虑到学习这个网络课程的人数的增长,我已经加入了一些公共的可用的经验网络用于学习和测试。

6、文档
        每个实现的算法都有彻底的记录,这些文档包括描述所有的输入和输出参数,定义函数行为用于不同输出和一系列相关算法,用了实例和相关的引用文献。

7、方向性
        这个包操作的是定向网络。无向图可能描述为有向图中的每个连边以反方向的变形。GraphMakeUndirectional方法可以自动地将有向网络转换为无向网络。

8、任意节点属性
            每个节点可以维持一系列用户自定义的任何数据类型的属性。这些属性能很容易被访问、更新和在不同的计算中被考虑。

9、多层网络
           网络可能混合着不同类型的节点,描述了多层网络。例如,研究人员的关联合作网络和他们的关联关系能被描述为一个图,一些节点表示研究人员,一些节点表示文献。这个能力是基于维持节点属性,因为每个节点可能属于网络中一个特殊的层。

10、加权网络
        在这个版本的工具包中基本的数据结构都支持加权网络。然而,只有一个权重会分给每个连边,大部分当前给出的算法都忽略了权重。

11、跨平台
        这个工具箱建立在MATLAB中,可以运行在很多操作系统中。然而,mex-files必须建立在特定的平台,这些算法的实现是以标准的C++编程,这可以和容易在任何平台应用。
12、可扩展性
        Complex Networks Package for MatLab 是一个基于函数的库。大部分算法是单独的,独立于其他算法(有些方法可以递归调用)。添加新算法是相当简单的。甚至要求计算算法的高效实现以mex-files是很简单的(我建议使用一个现有的mex files作为模板)。

在windows中的安装

环境:windows,MATLAB7及以上版本,
安装这个工具包:
1、下载相对应的工具包;
2、添加'Graph' , 'FlexIO', 'DynamicProcess' and 'FastSet'文件夹到MATLAB路径中;
3、不要忘记保存MATLAB路径;
4、几个常例(一个在 'DynamicProcess'文件夹中)组成了FastSet方法,需要使用额外的微软库。你仅仅需要这些微软库当你运行动态过程仿真(在 Tutorial 2中有描述)的时候。检查你的Windows/System32文件夹中的 MSVCR110.DLL和MSVCP110.DLL ,看看你是否已经安装了这些库。
5、完成
展开阅读全文

没有更多推荐了,返回首页