グラフ準同型をテストするためのソフトウェア


8

私が持っているグラフとHのKとし| V(G k)| = | V(H k)| 2 、K = N 2 KとK ∈ Nそのような非準同型の見出し語として通過健全性チェックこと。GからHへのグラフ同型をテストするための無料で使いやすいツールはありますか?GkHk|V(Gk)|=|V(Hk)|2k=n2kk∈NGH

回答:


7

(怠惰の観点から)最良の方法は、グラフ理論を最もよくサポートする無料で入手可能なツールSageを使用することです。

例

sage: G = graphs.PetersenGraph()
sage: G.has_homomorphism_to(graphs.CycleGraph(5))
False
sage: G.has_homomorphism_to(graphs.CompleteGraph(5))
{0: 0, 1: 1, 2: 0, 3: 1, 4: 2, 5: 1, 6: 0, 7: 2, 8: 2, 9: 1}

5

1つのアプローチは、SATソルバーを使用することです。

xt,vtGvHxt,vt↦vt

次に、2種類の句/制約を追加します。

  • (t,u)∈E(G)

    ⋁(v,w)∈E(H)(xt,v∧xu,w).

    (これは、標準のTseitin変換を使用して3CNFに変換できます。)

  • tGvHt∈V(G)

    ⋁v∈V(H)xt,v

    と条項

    ⋀v,w∈V(H)(¬xt,v∨¬xt,w).

その後、任意の標準SATソルバーを使用できます。実際にうまくいくかどうかはわかりませんが、試してみて、どのように機能するかを確認できます。


HH

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.