新闻

关于 igraph 发布和其他事项

R/igraph 0.7.0

发行说明

库本身有很多新功能,以及项目生命中的其他重要更改。感谢大家的发送代码和报告错误!

github 上的 igraph

igraph 的开发已从 Launchpad 转移到 github。实际上,这几个月前已经发生,但从未正式宣布。报告错误的地方是 https://github.com/igraph/igraph/issues。

新主页

igraph 的主页现在托管在 https://igraph.cn,它是全新的。我们希望使其更易于使用和现代。

更好的 nightly 下载

您可以从 https://igraph.cn/nightly 下载每夜构建版本。源代码和二进制 R 包(适用于 Windows 和 OSX)都已构建。

R:新特性和错误修复

  • 添加了分层随机图的演示,通过 demo(hrg) 调用它。
  • 在写入 GraphML 文件时使属性前缀成为可选。
  • 添加了函数 mod.matrix()
  • 支持在主导特征向量社区检测中使用的边权重。
  • 添加了 LAD 库,用于检查(子)图同构,版本 1。
  • 逻辑属性。
  • 添加了 layout.bipartite() 函数,这是一个用于二分图的简单两列布局。
  • 支持二分 Pajek 文件中的关联矩阵。
  • 矩阵格式的 Pajek 文件现在默认是有向的,除非它们是二分图。
  • 当文件采用矩阵格式时,支持 Pajek 中加权(和有符号)网络。
  • 修复了 barabasi.game() 中的一个错误,算法 psumtree-multiple 只是冻结了。
  • 函数 layout.mds() 默认现在返回一个布局矩阵。
  • 在 GraphML 和 GML 读取器和写入器中添加了对布尔属性的支持。
  • 更新 MDS 布局坐标,第一维根据第一个特征值等。
  • plot.communities()(实际上是 plot.igraph())默认在标记的组周围绘制边框。
  • 打印图现在将 name 图属性转换为字符
  • 方便的函数可以一次查询和设置所有属性:vertex.attriubutes()graph.attributes()edge.attributes()
  • 函数 graph.disjoint.union() 现在处理属性。
  • 重写 graph.union() 以正确处理属性。
  • rewire():现在支持环的生成和销毁。
  • Erdos-Renyi 型二分随机图:bipartite.random.game()
  • 支持 get_shortest_paths() 的新选项(predecessors 和 inbound_edges),完全重新组织了 get.shortest.paths() 的输出。
  • 添加了 graphlets() 和相关函数。
  • 如果根本没有合并,则修复多层社区的模块化值。
  • 修复了在矩阵表示法中使用 FALSE 删除边时的错误。
  • 修复 bonpow()alpha.centrality() 并确保调用稀疏求解器。
  • tkplot() 新闻:允许通过命令行通过 tkplot.setcoords() 设置坐标,并通过 tkplot.canvas() 访问画布。
  • 修复了 igraph_edge_connectivity() 中潜在的崩溃,因为 C 代码中存在未初始化的变量。
  • 避免在 closeness() 和相关函数中溢出。
  • bipartite.projection() 中将 ‘type’ 转换为逻辑后检查 NAs。
  • graphNEL 转换函数仅在之前未加载 ‘graph’ 包时加载它,并在搜索路径的末尾加载它,以最大限度地减少冲突。
  • 修复了从邻接矩阵创建图时的错误,我们现在将它们转换为 double,以防它们是整数。
  • 修复了 infomap 社区检测中的无效内存读取(以及潜在的崩溃)。
  • 修复了具有属性组合的函数中的内存泄漏。
  • 从 SCG 函数中删除了一些内存泄漏。
  • 修复了光线追踪器中的一些内存泄漏。
  • 修复了 graph.bfs()graph.dfs() 中的内存泄漏。
  • 修复了 triad census 中将结果的第一个元素设置为 NaN 的错误。
  • 修复了 is.chordal() 中的崩溃。
  • 修复了加权模块化计算中的一个错误,权重的总和被截断为整数。
  • 修复了加权多层社区中的一个错误,最大权重被舍入为整数。
  • 修复了 centralization.closeness.tmax() 中的一个错误。
  • 重新实现具有间隙启发式的 push-relabel 最大流算法。
  • 最大流函数现在返回有关 push relabel 算法步骤的一些统计信息。
  • 函数 arpack() 现在在给出未知选项时给出错误消息。
  • 修复了当 ID 属性为数字时,Pajek 写入器中缺少空格的问题。
  • 修复了当 ID 属性为非数字时导致 GML 读取器崩溃的错误。
  • 修复了问题 #500,如果 BLISS 中的两个图在顶点或边的数量上有所不同,则可能发生段错误。
  • 添加了 igraphtest() 函数。
  • 修复了 dyad census 不稳定性,有时会报告不正确的结果。
  • Dyad census 现在检测整数溢出并给出警告。
  • 函数 add.edges() 现在不允许顶点集中的零。
  • 添加了一个函数来计算相邻三角形的数量:adjacenct.triangles()
  • 添加了 graph.eigen() 函数,邻接矩阵上的特征值问题。
  • 为创建大量图的函数添加了一些解决方法,decompose.graph()graph.neighborhood() 使用它。修复了问题 #508。
  • 添加了对 optimal.community() 的权重支持,关闭 #511。
  • 更快的最大团查找。
  • 添加了一个函数来计算最大团。
  • 集合运算:union、intersection、disjoint、union、difference、compose 现在基于顶点名称(如果存在)并且保留属性,关闭 #20。
  • 删除了函数 graph.intersection.by.name()graph.union.by.name()graph.difference.by.name()
  • 图上的 + 运算符现在如果两个参数图都已命名,则调用 graph.union(),否则调用 graph.disjoint.union()
  • 添加了函数 igraph.version()
  • 从随机块模型生成图:sbm.game()
  • 不再建议 stats、XML、jpeg 和 png 包。
  • 修复了 set.vertex/edge.attribute 错误,该错误在复制后更改了两个图对象 (#533)
  • 修复了 barabasi.game 中导致崩溃的错误。
  • 我们使用 PRPACK 来计算 PageRank 分数,请参阅 https://github.com/dgleich/prpack
  • 添加了 'which 参数到 bipartite.projection (#307)。
  • 向 closeness 函数添加 normalized 参数,修复问题 #3。
  • R:更好地处理复杂属性,顶点/边集合上的 [[,修复 #231。
  • hrg.fit 中实现 start 参数 (#225)。
  • 在 Reingold-Tilford 布局中设置根顶点,解决 #473。
  • 修复有向图的介数中心性归一化。
  • 修复了 graph.density 中的一个错误,该错误导致带环的无向图的错误值
  • 修复了一次 C 调用中创建许多图(例如,通过 graph.decompose)时的错误,导致 #550。
  • 修复了具有一条边的图和具有零条边的图的稀疏 graph.adjacency 错误。
  • 修复了一个使 Bellman-Ford 最短路径计算失败的错误。
  • 修复了无向、加权图和稀疏矩阵的 graph.adjacency 错误。
  • mainsubxlabylab 现在是正确的图形参数 (#555)。
  • graph.data.frame 将参数强制转换为数据框 (#557)。
  • 修复了加权无向图的最小割错误 (#564)。
  • 用于模拟网络上的流行病(SIR 模型)的函数,请参阅 sir 函数。
  • 修复了 graph.mincut 和相关函数中的参数顺序。
  • 避免在查询函数和打印中复制属性 (#573),对于具有许多顶点/边和属性的图,这些函数现在快得多。
  • 如果某些属性是整数,则加快写入 GML 和 GraphML 文件。这真的非常慢。
  • 修复了 graph.bfs 中的多个根顶点 (#575)。