タグ

search-algorithmとspanning-treeに関するnabinnoのブックマーク (1)

  • 全域木を列挙する - Qiita

    はじめに 約30年前に大学で習った、全域木の列挙アルゴリズムをPythonで実装してみましたので、ご紹介します。 全域木とは、元のグラフの全ての点を含む木のことです。 アルゴリズム グラフの式表現を求めて、式表現を展開して列挙します。 例えば、三角形のグラフで各辺をそれぞれa,b,cとすると、式表現は組(abc)となり、これを展開するとab/ac/bcとなります。 グラフの式表現は以下のように求められます。 辺の最初の式表現として、アルファベット1文字を持たせます。 グラフは、式表現を維持しながら辺または辺と点を削除できます。 グラフが1点になったときに式表現が求められます。 グラフGの式表現(Expr(G))は、任意の1つの辺Eを選んで以下のように変形できます。(標準ルール) Expr(G) = 和(積(組(Expr(E)), Expr(GからEを削除)), 積(Expr(E), Exp

    全域木を列挙する - Qiita
  • 1