首页 > 解决方案 > JGraphT 从预先存在的顶点创建一个随机图

问题描述

我需要从几个预先存在的顶点创建一个随机图。我还没有找到办法做到这一点。每个教程都使用“VertexFactory”(顺便说一句,即使导入 org.jgraph.generate.* 也无法解决)在创建图形时组成顶点。但我宁愿从已经存在的顶点生成图形。我对 WattsStragotz 算法特别感兴趣,但我还不知道。使用已经编写的 Jgrapht RandomGeneration 类可以实现吗?

非常感谢

标签: randomgraphjgraphtgeneratejgraph

解决方案


是的,您可以这样做,但现在使用已添加到图中的顶点。如果出于某种原因,您想使用预先存在的对象作为顶点,您可以执行以下操作:

  1. 将所有预先存在的顶点对象放入列表中
  2. 实现一个自定义的 Vertex 供应商(旧的 VertexFactory 已停止使用,以支持较新的 java 版本中的供应商范式)。这个顶点供应商迭代您的预定义顶点列表,并在每次调用供应商的 get() 方法时返回一个新顶点。
  3. 使用您的自定义顶点供应商创建一个新图形。在我们的 wiki 页面上查看此示例。
  4. 调用图上的任何随机图生成器。

推荐阅读