新闻

关于 igraph 发布和其他事项

R/igraph 0.5

发行说明

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

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

图同构

igraph 现在包含了 BLISS 图同构算法和实现。这个和改进的 VF2 实现(现在可以计算子图同构)使 igraph 支持图同构算法的最新技术。非常感谢 BLISS 的作者。请参阅 参考手册R 文档Python 文档中的详细信息。

ARPACK 用于特征值问题

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

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

其他部分

轻松创建著名图

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

使用公式创建图

新的 graph.formula() 函数提供了一种简单、简洁的方式来创建(小型)图。手册页中包含了大量示例。

加权图的改进

许多函数已更新以处理加权图:fast greedy 社区检测 (fastgreedy.community) Page Rank (page.rank), 模块化计算 (modularity), Fruchterman-Reingold 布局算法 (layout.fruchterman.reingold

非简单图

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

graphopt 布局算法

这是一个很好的基于力的布局算法。请参阅 文档以获取详细信息。

支持 DOT 文件格式

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

Dyad 和 Triad 普查

用于对 dyad (dyad.census) 和 triad (triad.census) 进行分类的经典社交网络分析工具。

双连通分量和铰接点

igraph 现在能够计算 双连通分量
割点.

R 图形改进

R 图形有一些小的改进。新的图形参数:frameasprescaleshape 用于不同的顶点形状,目前只支持圆形和正方形。plot.igraph 有一个参数 (add) 用于在同一图上绘制多个图,可能彼此叠加。它现在还支持 mainsub 参数。在此处查看更多信息。

在中断计算后始终在 R 中释放内存

在以前版本的 igraph R 包中,如果计算中断,则不会释放已分配的内存。这肯定会影响 MS Windows 平台,也可能影响 OSX。(不是 Linux。)igraph 0.5 在中断后正确地在所有平台上取消分配所有内存。

估计接近度和介数

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

顶点相似性度量的函数

引入了两种基于公共邻居数量的顶点相似性度量:Jaccard 和 Dice 相似性。有关详细信息,请参阅 手册

R 中的正确警告

到目前为止,使用 igraph R 包时,igraph 警告会被转储到控制台。在许多情况下,这意味着它们实际上丢失了。在新版本中,igraph 警告会转换为正确的 R 警告。

R 接口中的新功能

  • 添加了 rescaleaspframe 图形参数
  • 从公式符号创建图 (graph.formula)
  • 正确处理图属性
  • 计算无向图的实际最小割
  • 邻接表,添加了 get.adjlistget.adjedgelist
  • 特征向量中心性计算现在快得多
  • 正确的 R 警告,而不是将警告写入终端
  • R 现在检查图形参数,未知的参数不仅仅被忽略,而是给出一个错误消息。
  • plot.igraph 现在有一个 add 参数,用于组合具有多个图的图
  • plot.igraph 支持 mainsub 参数
  • layout.norm 现在是公共的,它可以规范化布局
  • 可以将启动位置提供给布局生成器
  • 在所有操作系统中,当按下 CTRL+C/ESC 时始终释放内存
  • plot.igraph 现在可以绘制方形顶点,请参阅 shape 参数
  • 创建加权图时重写 graph.adjacency
  • 我们尽可能使用 match.arg。这意味着字符标量选项可以缩写,并且它们始终不区分大小写

  • VF2 图同构例程现在可以检查子图同构,并且能够返回匹配
  • BLISS 图同构算法现在包含在 igraph 中。请参阅 canonical.permutationgraph.isomorphic.bliss
  • 我们使用 ARPACK 进行特征值/特征向量计算。这意味着以下函数被重写:page.rankleading.eigenvector.community.*evcent。基于 ARPACK 的新函数:hub.scoreauthority.scorearpack
  • Fruchterman-Reingold 布局的边权重 (layout.fruchterman.reingold)。
  • 线图计算 (line.graph)
  • Kautz 和 de Bruijn 图生成器 (graph.kautzgraph.de.bruijn)
  • 支持以 DOT 格式写入图
  • 添加了 Jaccard 和 Dice 相似性系数 (similarity.jaccardsimilarity.dice)
  • 计算边的重数 (count.multiple)
  • 添加了 graphopt 布局算法,layout.graphopt
  • 生成“著名”图 (graph.famous)。
  • 从 LCF 表示法创建图 (graph.cf)。
  • Dyad census 和 triad cencus 函数 (dyad.censustriad.census)
  • 检查简单图 (is.simple)
  • 创建完整引用网络 (graph.full.citation)
  • 创建路径长度的直方图 (path.length.hist)
  • 添加了森林火灾模型 (forest.fire.game)
  • DIMACS 阅读器现在可以处理不同的文件类型
  • 双连通分量和割点 (biconnected.componentsarticulation.points)
  • Kleinberg 的 hub 和 authority 分数 (hub.scoreauthority.score)
  • as.undirected 现在处理属性
  • 几何随机图生成器 (grg.game) 可以返回顶点的坐标
  • 添加了将 leading eigenvector 社区结构结果转换为成员向量的函数 (community.le.to.membership)
  • 加权快速贪婪社区检测
  • 加权 page rank 计算
  • 通过引入路径长度的截止值来估计 closeness、betweenness、edge betweenness 的函数 (closeness.estimatebetweenness.estimateedge.betweenness.estimate)
  • 加权模块化计算
  • 用于置换顶点的函数 (permute.vertices)
  • 加快了 Betweenness 和 closeness 计算
  • read.graph 现在可以处理所有可能的行终止符 (\r、\n、\r\n、\n\r)
  • 为 walktrap 社区检测重写了错误处理,现在可以中断计算
  • maxflow/mincut 函数允许为边容量提供 NULL 指针,这意味着所有边的单位容量

R 接口中更正的错误

  • 修复了 cohesive.blocks 中的一个 bug,有时 cohesive blocks 计算不正确