2009-05-08 4 views
0

見つける等しい部分グラフを考えると

  • 有向グラフ
  • ノードが
  • エッジが

Iラベルを持っていない何度もラベルは

  • 同じラベルがより多くを表示することができていノードのラベルを考慮して等しい最大の(接続された)部分グラフの集合を見つけたいと思う。

    グラフは膨大なものになる可能性があります(何百万というノード)誰かがこれに対して効率的な解決法を知っていますか?

    私はアルゴリズムと、理想的にはJavaの実装を探しています。

    更新:この問題はNP完全である可能性が高いためです。近似解を生成するアルゴリズムにも興味があります。

    これは、少なくとも近いように思える: Frequent Subgraphs

  • +1

    多分私だけですが、私はその問題を理解していません。 "equals"とはどういう意味ですか?これは、Aの各ノードaについて、以下のような全単射関数f:Node_subgraph_A-> Node_subgraph_Bが存在するためである。f(a)= b iff label_a == label_b ^(out_degree(a)、f(x) out_degree(b)で)? – akappa

    +0

    はい、それはそれだと思います。私は "冗長"なサブグラフを探したい。最後に、グラフは「等しい」サブグラフのセットに分割される。 – kohlerm

    答えて

    5

    は、私は強くそれがNP困難だと思います。

    グラフの同型性以上のラベルがすべて同じ場合でも、 (2つのグラフを1つの切断されたグラフとして一緒に結合すると、2つの元のグラフのうち最大の等しいサブグラフですか?)

    同じラベルが比較的まれである場合、扱いやすいかもしれません。

    +0

    +1、良い分析。 –

    +0

    良い点は、グラフ同型写像との関係を見ませんでした。しかし、はい、同じラベルの数は比較的少ないはずです。 – kohlerm

    関連する問題