新闻

关于 igraph 发布和其他事项

python-igraph 0.5

发行说明

此版本有很多改进和修正。我们要感谢所有发送评论、错误报告、补丁或只是问题的人。没有他们的贡献,igraph 肯定会比现在更少,更糟糕。请继续发送您的意见和想法!

以下是主要更改列表,包含指向文档相关部分的链接。完整的更改列表请参见下文。

图同构

igraph 现在包括 BLISS 图同构算法和实现。这和改进的 VF2 实现(现在可以计算子图同构)使 igraph 支持图同构算法的最前沿。非常感谢 BLISS 的作者。请参阅 Python 文档中的详细信息。

ARPACK 用于特征值问题

ARPACK 是一个用于解决大规模稀疏特征值问题的库。在 igraph 中,它非常方便,因为许多中心性问题实际上是特征值问题:Kleinberg 的 hub 和 authority 分数、PageRank、领先的特征向量社区检测算法是一些示例。非常感谢 ARPACK 的作者和 James Fowler,他建议将其包含在 igraph 中。

请参阅 evcentpagerankhub_score 等 Python 文档中的函数中的详细信息。

绘图

基于 Cairo 图形库的绘图功能(因此,如果要使用它,则需要安装 python-cairo)。目前,可以绘制以下对象:图、邻接矩阵和树状图。还实现了一些用于绘制直方图的粗略支持。绘图可以保存为 PNG、SVG 和 PDF 格式。

请参阅文档中的详细信息。

其他部分

Shell 接口

现在可以通过从命令行调用名为 igraph 的脚本来调用 igraph。该脚本启动 Python 解释器,并自动将 igraph 函数导入到主命名空间中。

轻松创建著名图

可以通过给出它们的名称来创建一些经典图。如果需要快速测试图,这非常方便。请参阅 Famous。(这个想法基于 Combinatorica,Mathematica 扩展。)

加权图的改进

许多函数已更新以处理加权图:快速贪婪社区检测Page Rank模块化计算Fruchterman-Reingold 布局算法

非简单图

添加和改进了一些函数,以更好地处理非简单图(即,具有循环和/或多个边的图):测试图是否简单测试循环边测试多个边)和 计算边的重数

Python 中的 Pickle 支持

igraph 图对象可以在 Python 中序列化(pickle)。

graphopt 布局算法

这是一个不错的基于力的布局算法。请参阅详细信息的文档。

支持 DOT 文件格式

igraph 现在可以将图写入 GraphViz 使用的 DOT 格式的文件。请参阅文档

Dyad 和 Triad 普查

用于对网络的 dyadstriads 进行分类的经典社交网络分析工具。

双连通分量和铰接点

igraph 现在能够计算 双连通分量铰接点

估计接近度和介数

可以通过指定要考虑的路径长度的上限来快速估计这些度量。这对于较大的图很有用,对于这些图,计算需要很长时间。请参阅 接近度介数边介数 的文档。

顶点相似性度量的函数

引入了两种基于公共邻居数量的顶点相似性度量,Jaccard JaccardDice 相似性。

新功能

  • 添加了 shell 界面:现在可以通过从命令行调用名为 igraph 的脚本来调用 igraph。该脚本启动 Python 解释器,并自动将 igraph 函数导入到主命名空间中
  • Graph 对象的 Pickle(序列化)支持
  • 基于 Cairo 图形库的绘图功能(因此,如果要使用它,则需要安装 python-cairo)。目前,可以绘制以下对象:图、邻接矩阵和树状图。还实现了一些用于绘制直方图的粗略支持。绘图可以保存为 PNG、SVG 和 PDF 格式。
  • 统一的 Graph.layout 方法用于访问布局算法
  • 添加了 walktrap 社区检测和 BLISS 同构算法的接口
  • 添加了 dyad 和 triad 普查功能和 motif 计数
  • VertexSeqEdgeSeq 对象现在可以限制为整个网络的子集(例如,您可以根据属性、度、中心性等选择顶点/边)

C 库中的新功能

  • 许多类型(stack、matrix、dqueue 等)现在是模板 它们也被重写以提供更好组织的界面
  • VF2 图同构例程现在可以检查子图同构,并且能够返回匹配
  • BLISS 图同构算法现在包含在 igraph 中。请参阅 igraph_canonical_permutation, igraph_isomorphic_bliss
  • 我们使用 ARPACK 进行特征值/特征向量计算。这意味着以下函数被重写:igraph_pagerankigraph_community_leading_eigenvector_*。基于 ARPACK 的新函数:igraph_eigenvector_centralityigraph_hub_scoreigraph_authority_scoreigraph_arpack_rssolveigraph_arpack_rnsolve
  • 添加了实验性 C 属性界面。也就是说,现在可以从 C 代码中使用图/顶点/边属性。

  • Fruchterman-Reingold 布局的边权重。
  • 线图计算。
  • Kautz 和 de Bruijn 图生成器
  • 支持以 DOT 格式写入图
  • 添加了 Jaccard 和 Dice 相似系数
  • 添加了 igraph_count_multiple
  • igraph_is_loopigraph_is_multiple“返回”布尔向量
  • 添加了 graphopt 布局算法,igraph_layout_graphopt
  • 生成“著名”图,igraph_famous
  • 从 LCF 符号创建图,igraph_lcf, igraph_lcf_vector
  • igraph_add_edge 向图添加单个边
  • 添加了 Dyad 普查和 Triad 普查函数
  • 添加了 igraph_is_simple
  • 进度处理程序可以停止计算
  • igraph_full_citation 创建完整的引用网络
  • igraph_path_length_hist,创建路径长度的直方图
  • 添加了森林火灾模型
  • DIMACS 阅读器现在可以处理不同的文件类型
  • 邻接表类型现在公开(igraph_adjlist_t, igraph_adjedgelist_t
  • 可以计算双连通分量和铰接点
  • 特征向量中心性计算
  • Kleinberg 的 hub 和 authority 分数
  • igraph_to_undirected 现在处理属性
  • 几何随机图生成器可以返回顶点的坐标
  • 添加了将领先特征向量社区结构结果转换为成员向量的函数(igraph_le_community_to_membership
  • 加权快速贪婪社区检测
  • 加权 page rank 计算
  • 通过引入路径长度的截止值来估计接近度、介数、边介数的函数
  • 加权模块化计算
  • 添加了 igraph_permute_vertices
  • 加快了介数和接近度计算
  • 可以将启动位置提供给 Kamada-Kawai 布局算法
  • igraph_read_graph_* 函数现在可以处理所有可能的行终止符 (\r, \n, \r\n, \n\r)
  • 为 walktrap 社区检测重写了错误处理,现在可以中断计算
  • maxflow/mincut 函数允许为边容量提供空指针,这意味着所有边的单位容量

C 库中修正的错误

  • 在邻接表处理中修复了内存泄漏
  • 在最大独立顶点集计算中修复了内存泄漏
  • 修复了使用 igraph_rewire 重新连接无向图时的错误
  • 修复了未连接图的边介数社区结构检测
  • 使 igraph 使用 Sun Studio 编译
  • 修复了介数错误,当未为所有顶点计算时
  • 减少了 clique 查找的内存使用
  • 修正了并非所有 motif 都被计数,而是使用了 cut 向量时,motif 计数的错误
  • 修复了 trait 游戏和 cited type 游戏中的错误
  • 接受 GML 文件中以下划线作为字母
  • GML 文件定向表示法已反转,这种方式更合乎逻辑