新闻

关于 igraph 发布和其他事项

C/igraph 0.10.11

C/igraph 0.10.11,0.10 系列的第十个错误修复版本,已经发布。与往常一样,可以从 GitHub 发布页面获取源代码。

此版本带来了大量的质量增强,包括许多错误修复和性能改进。强烈建议所有 igraph 用户升级。

这将是 0.10 系列的最后一个版本之一,如果不是最后一个版本的话,igraph 1.0 计划在今年初夏发布。预发布版本将提供给社区反馈。

以下是 0.10.11 中的更改摘要。

已添加

  • igraph_is_complete() 检查顶点对之间是否存在连接(实验性功能,由 Aymeric Agon-Rambosson 在 #2510 中贡献)。

已修复

  • 修复了某些无效 GML 文件中 igraph_write_graph_gml() 中 “finally” 堆栈的损坏。
  • 修复了当存在顶点名称但不存在边权重时,igraph_write_graph_lgl() 中的内存泄漏。
  • 修复了 igraph_subgraph_from_edges() 中重复边 ID 的处理。
  • 修复了当稀疏矩阵对象未使用其完整分配容量时,使用 igraph_sparsemat_as_matrix() 将稀疏矩阵转换为密集矩阵的问题。
  • igraph_write_graph_ncol()igraph_write_graph_lgl() 现在拒绝写入会导致无法读回的无效文件的顶点名称。
  • igraph_write_graph_gml() 现在会忽略名为 edgenode 的图形属性并发出警告。写入这些属性会创建一个 igraph 无法读回的无效 GML 文件。
  • igraph_disjoint_union()igraph_disjoint_union_many() 现在检查溢出。
  • igraph_read_graph_graphml() 现在可以正确地将属性值与某些预期值进行比较,这意味着不再接受 attr.type 的有效值的前缀。
  • GraphML 文件的 <key> 标签中不再允许使用空 ID,因为这违反了 GraphML 规范。
  • igraph_is_separator()igraph_is_minimal_separator() 现在可以正确地处理断开连接的图。
  • igraph_linegraph() 现在认为无向图中的自环是自相邻的,这与先前版本中处理有向图的方式保持一致。
  • igraph_all_st_mincuts() 现在可以正确返回所有最小割。这也修复了 igraph_minimum_size_separators() 的一个问题。
  • 修正了 igraph_community_label_propagation() 在将标签添加到具有某些固定标签的孤立节点时的一个小错误。
  • 当传递无边图和空权重向量时,igraph_community_spinglass() 不再崩溃。
  • igraph_rewire() 不再在具有超过三个顶点但少于两条边的图上崩溃。

已更改

  • igraph_rewire() 不再在顶点少于四个的图上抛出错误。这些图现在被原样返回,就像它们度序列的唯一实现的其他图一样。

其他

  • 性能:igraph_is_simple() 现在更精细地使用缓存。
  • 性能:igraph_degree() 现在在检查自环时使用缓存。
  • 提高了 igraph_is_minimal_separator() 的性能。
  • igraph_is_graphical() 现在以线性时间执行简单有向图的度序列的图形检查,这是从先前使用的二次算法的改进(由 Arnar Bjarni Arnarson 在 #2537 中贡献)。
  • 文档改进。