如何将 networkx 算法与我的自定义图形数据结构一起使用?

How to use networkx algorithm with my custom graph datastructure?

我有一个graph database with a Gremlin query engine。我不想改变 API。该库的重点是能够研究不能完全留在内存中的图形,并通过不回退到虚拟内存来最大化速度。

查询引擎是惰性的,它不会在用户需要或请求之前获取边或顶点。否则它只使用索引来遍历图形。

Networkx 还有一个 API。我该怎么做才能在我的图形中重用 networkx 图形算法实现?

您正在谈论扩展您的图表 API。

  • 希望代码从一种实现转换为另一种实现,在这种情况下,算法部分的复制粘贴可能对您有用。 (先检查许可证)
  • 如果您想继续使用现有代码,您可以制作一个中间层或适配器 class 来帮助解决这个问题。
  • 如果源代码不一致,那么 NetworkX 在帮助页面和代码本身的底部有大量关于所用算法和基础数学的注释。

未来: 也许您可以将其开源并吸引其他将遍历引擎视为一项优秀工程的人。在这种情况下,您会在 maintaining/extending 您的工作中得到帮助。祝你好运。