In der Informatik ist ein Co-Graph ein ungerichteter Graph , welcher sich mit bestimmten elementaren Operationen konstruieren lässt. Auf Co-Graphen lassen sich viele schwere Probleme wie z. B. CLIQUE und das damit eng verwandte UNABHÄNGIGE MENGE sowie KNOTENÜBERDECKUNG in Linearzeit lösen.


Ein Graph ist ein Co-Graph, falls er sich mit den folgenden drei Operationen konstruieren lässt:
Für einen Graphen sind folgende Aussagen äquivalent:
Um auf Co-Graphen effizient schwere Probleme lösen zu können, kann man sie mithilfe von Co-Bäumen darstellen. Ein Co-Baum ist ein binärer Baum, dessen Blätter mit und dessen innere Knoten mit bzw. markiert sind.
Ein Co-Baum ist wie folgt definiert:
Das nachfolgende Beispiel skizziert die Konstruktion eines Co-Graphen mit zugehörigem Co-Baum :
| Co-Graph | Darstellung des Co-Graphen | Darstellung des Co-Baumes | Co-Baum |
|---|---|---|---|
Weitere Beispiele für Co-Graphen sind vollständige Graphen und vollständig unzusammenhängende Graphen.
Es ist leicht einzusehen, dass Co-Graphen unter Komplementbildung abgeschlossen sind. Um den Komplementgraphen zu erzeugen, müssen im zugehörigen Co-Baum lediglich die Operationen und vertauscht werden.
Weiterhin ist die Menge der Co-Graphen unter Bildung induzierter Teilgraphen abgeschlossen.
Ebenfalls ist bekannt, dass jeder Co-Graph ein perfekter Graph ist.
Einige schwere Graphenprobleme lassen sich auf Co-Graphen in Linearzeit lösen. Dazu zählen u. a. die Probleme UNABHÄNGIGE MENGE, CLIQUE und KNOTENÜBERDECKUNG.
Mithilfe von dynamischer Programmierung auf den zugehörigen Co-Bäumen lassen sich einfach und elegant Lösungen für die genannten Probleme finden.