C/ c++动态图形库

C/C++ Library for dynamic graphs?

本文关键字:图形库 动态 c++      更新时间:2023-10-16

我正在寻找一个库来操作动态图。我有一个模拟,在对其结构进行一些更改后,我必须重复计算图的平均测地线长度(添加和删除边,在无向图上,所有边都具有相同的权重)。

我使用了一个快速的c++ wrap over我制作的igraph。igraph用于静态图形,所以每次更改图形时,我都要从头开始重新计算测地线距离。这是一个蒙特卡罗模拟,所以我必须做数百万次才能恢复一些统计数据。它开始变得很慢了。

所以我寻找带有动态图算法的库,可以在我删除或添加边后重新计算只是更新平均长度。我找到了一些关于这个主题的论文,但我真的不是专家(我只是一个物理学家,我只是偶然地在一个问题上使用图表……我对数据结构和算法几乎一无所知,所以我甚至不能阅读论文,更不用说实现算法了。

我发现这个库LEDA (http://www.algorithmic-solutions.com/leda/)似乎有一个动态图形扩展,但它似乎是不维护的(下载免费版本的链接被打破),它是专有的。

有其他选择吗?我正在寻找C/c++库。如果有必要,也可以去哈斯克尔,我已经绝望了。

因为无论如何您都在使用蒙特卡罗,所以我假设近似平均最短路径长度是可以接受的。在每一步中,您可以对少数节点进行采样,并报告从这些节点之一开始的路径的平均最短路径长度,这些路径具有相同的期望和合理的方差。

或者,您提到的关于动态最短路径的JACM论文的参考文献[3]是2004年的一项实验研究;也许作者会让您使用他们的代码。

我知道这么晚了,但是你看过LEMON吗?

你看过Boost Graph Library吗

我自己没有使用过它,但是作为Boost的一部分,你可以期望它的质量非常高,但它需要一定的c++专业知识。