1

我需要从图中选择随机顶点或边。我目前正在使用蓝图 API 来查询图形。从我的图中随机选择一个顶点或一条边的最佳方法是什么?

4

1 回答 1

0

假设您不知道图中的所有元素,您可以使用getVertices()getEdges()从图中检索所有顶点/边。

但是既然你从这些方法中得到了一个迭代器,那么实际的问题是,如何从迭代器中选择一个随机元素

有两种方法可以解决这个问题。

  1. 遍历所有元素并将它们存储在一个数组或列表中,并根据集合的大小选择一个随机元素,或者
  2. 在迭代元素时使用Reservoir 采样。

如果您使用Gremlin Pipeline ,还有另一种方法可以解决此问题,根据您的标签执行查询,使用来自 gremlin 的随机过滤器并选择第一个顶点。

于 2013-12-23T22:13:20.177 回答