26.5.4 グラフの無向化

次のメソッドでは、グラフ・インスタンスの無向バージョンが作成されます。

PgxGraph undirect()
PgxGraph undirect(String newGraphName)
PgxGraph undirect(MultiEdges multiEdges, SelfEdges selfEdges, TrivialVertices trivialVertices, Mode mode, String newGraphName)
PgxGraph undirect(Collection<VertexProperty<?, ?>> vertexProps, Collection<EdgeProperty<?>> edgeProps, MultiEdges multiEdges, SelfEdges selfEdges, Mode mode, String newGraphName)
undirect(self, vertex_properties=True, edge_properties=True, keep_multi_edges=True, keep_self_edges=True,
                 keep_trivial_vertices=True, in_place=False, name=None)

最初の2つのメソッドは、頂点プロパティをすべてコピーしながら、グラフの無向バージョンを作成します。newGraphNameは、新しく作成されるグラフ・インスタンスの名前を指定するオプションの引数です。

一方、3番目と4番目のメソッドは、グラフの無向化簡略化を同時に実行します。それぞれのパラメータの意味は、グラフの簡略化およびコピーを参照してください。

すべてのメソッドが、無向化されたPgxGraphタイプのオブジェクトを返します。

無向グラフにはいくつかの制限があります。アルゴリズムの中には、有向グラフでのみサポートされているものや、無向グラフについてはまだサポートされていないものがあります。さらに、PGXでは、無向グラフの格納も無向形式からの読取りもサポートされていません。エッジは方向を持たなくなるため、pgxEdge.getSource()またはpgxEdge.getDestination()の動作があいまいになる可能性があります。確定的な結果を提供するために、PGXは、常に、内部IDが小さい方の頂点を出力、他方を入力頂点として返します。