Software zum Testen des Graphhomomorphismus


8

Ich habe Graphen und mit mit , die die Prüfung der wie z als No-Homomorphism Lemma. Gibt es kostenlose und benutzerfreundliche Tools zum Testen des Graphhomomorphismus von nach ?H k | V ( G k ) | = | V ( H k ) | 2 k = n 2 k k N G H.GkHk|V(Gk)|=|V(Hk)|2k=n2kkNGH

Antworten:


7

Der beste Weg (in Bezug auf Faulheit) ist die Verwendung des frei verfügbaren Werkzeugs Sage, das die Graphentheorie am besten unterstützt.

Beispiel

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

Ein Ansatz wäre die Verwendung eines SAT-Lösers.

Führen Sie eine boolesche Variable für jeden Scheitelpunkt von und jeden Scheitelpunkt von . Die Intuition ist, dass wahr ist, wenn der Homomorphismus abbildet . (Wenn Sie einen kleineren Kandidatensatz von Scheitelpunkten haben, denen kann - möglicherweise eingegrenzt durch Gradüberlegungen oder andere lokale Kriterien -, können Sie die Anzahl der booleschen Variablen entsprechend reduzieren. Diese Art der Vorverarbeitung kann die Effizienz dieses Ansatzes erheblich.) t G vxt,vtGvHxt,vtvt

Fügen Sie als Nächstes zwei Arten von Klauseln / Einschränkungen hinzu:

  • Fügen Sie einige Klauseln hinzu, um zu erfordern, dass diese Zuordnung einen Graphhomomorphismus bildet. Fügen Sie insbesondere für jede Kante die Einschränkung hinzu(t,u)E(G)

    (v,w)E(H)(xt,vxu,w).

    (Sie können dies mit der Standard-Tseitin-Transformation in 3CNF konvertieren.)

  • Fügen Sie einige Klauseln hinzu, die erfordern, dass jeder Scheitelpunkt von genau einem Scheitelpunkt von . Es gibt eine Reihe von Standardmethoden zum Codieren dieser Einschränkung. Eine einfache Möglichkeit besteht darin, für jeden Scheitelpunkt die Klausel hinzuzufügentGvHtV(G)

    vV(H)xt,v

    und die Klausel

    v,wV(H)(¬xt,v¬xt,w).

Dann können Sie jeden Standard-SAT-Solver verwenden. Ich weiß nicht, wie gut es in der Praxis funktionieren wird, aber Sie könnten es versuchen und sehen, wie es funktioniert.


In der Forschungsliteratur wurde das Problem des Graphhomomorphismus ausführlich für Graphen mit speziellen Eigenschaften untersucht (z. B. wenn eine Clique ist, wenn die Baumbreite begrenzt hat usw.). Wenn Sie etwas Besonderes über die Struktur Ihrer Diagramme wissen, können Sie möglicherweise bessere Algorithmen für Ihr Problem finden. Für allgemeine Diagramme ist dieses Problem als NP-hart bekannt.H.HH

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.