Graphenalgorithmik

Matching in einem Baum

Ein Matching in einem Graphen G=(V,E) ist eine Kantenmenge ME, sodass zwei Kanten aus M nie einen adjazenten Knoten teilen. Für zwei Kanten e,eM gilt also ee=.

Finde einen Linearzeit-Algorithmus, der ein maximales Matching in einem Baum findet.

Feedback Edge Set

Sei G=(V,E) ein ungerichteter Graph. Wir nennen eine Kantenmenge FE ein Feedback Edge Set, wenn jeder Kreis in G mindestens eine Kante in F hat.

Finden einen effizienten Algorithmus, der ein Feedback Arc Set minimaler Größe findet.

Online MST

Sei G ein ungerichteter Graph, zu dem der MST bereits berechnet wurde. Nun fügen wir eine neue Kante (aber keinen neuen Knoten) in G ein. Finde einen O(|V|) Algorithmus, der den MST akutalisiert, sodass er ein MST des vergrößerten Graphen ist.

Transitive Hülle

Sei G=(V,E) ein gerichteter Graph. Die Transitive Hülle [G] hat nun die gleichen Kanten wie G und genau dann eine Kante v1v2, wenn es einen Pfad v1v2 in G gibt.

Finde einen effizienten Algorithmus, um [G] zu berechnen.

Unabhängiges Vertex-Cover

Zur Erinnerung: Wir nennen eine Knotenmenge IV unabhängig, wenn es zwischen zwei Knoten aus I nie eine Kante gibt. Wir nennen eine Menge CV eine Knotenüberdeckung, wenn zu jeder Kante eE mindestens einer der adjazenten Knoten in C liegt.

Finde einen effizienten Algorithmus, der feststellt, ob es in einem gegebenen Graphen eine unabhängiges Knotenüberdeckung gibt.

Ausdruckspunkte

Sei G=(V,E) ein ungerichteter, zusammenhängender Graph. Finde einen effizienten Algorithmus, der die Knoten von G so sortiert, dass die Löschung aus dem Graphen in dieser Reihenfolge nie dazu führt, dass der Graph nicht zusammenhängend ist.

Formale Sprachen und Automaten

LR

Zeige, dass die Umkehrung einer regulären Sprache wieder eine reguläre Sprache ist. Dabei definieren wir die Umkehrung einer Sprache als die Umkehrung jedes Wortes in der Sprache.

Addition

Sei Σ={0,1,+,=}. Wir definieren die Sprache ADD={a+b=za,b,z sind Binärzahlen und die Gleichung gilt}, die korrekte Additionsausdrücke beinhaltet. Zeige, dass ADD nicht regulär ist.

Durchschnitt von regulären und kontextfreien Sprachen

Sei L1 kontextfrei und L2 regulär. Zeige, dass L1L2 kontextfrei ist.

Klammer-Regeln

Formalisiere die folgende Sprache und zeige dann, dass sie nicht regulär ist.

Wir betrachten Ausdrücke aus Klammern, also aus ( und ). Ein Wort ist in unserer Sprache, wenn die zugehörigen Klammen so in einem validen arithmetischen Ausdruck vorkommen könnten, sprich, wenn sie sich nicht kreuzen.

Pump it Up!

Zeige, dass die folgende Sprache nicht regulär ist: {0n10nn1}.

P vs NP

Pfade

Sei G ein ungerichteter Graph. Wir definieren die Sprachen

SPATH={(G,a,b,k)es gibt einen Pfad der Länge maximal k von a nach b}LPATH={(G,a,b,k)es gibt einen Pfad der Länge mindestens k von a nach b}

Zeige SPATHP und LPATHNPC.

Double-SAT

Sei φ eine aussagenlogische Formel. Dann sei φDOUBLESAT genau dann, wenn φ mindestens zwei verschiedene erfüllende Belegungen hat. Zeige, dass DOUBLESAT NP-vollständig ist.

Matching

Sei G ein ungerichteter Graph. Wir nennen eine Kantemenge ME(G) ein Matching, wenn zwei unterschiedliche Kanten nie einen gemeisamen Knoten haben. Also für alle ee gilt auch ee={}.

Das Problem, folgende Frage für einen ungerichteten Graphen G zu entscheiden, ist in polynomieller Zeit lösbar: Hat G ein Matching der Größe k.

Set-Splitting

Das SETSPLITTING Problem beinhaltet Tupel (S,C), wobei S eine endliche Menge ist und C={C1,,Cn} eine Menge von Teilmengen von S. Diese Tupel sind nun genau dann in SETSPLITTING, wenn die Elemente von S so rot oder blau gefärbt werden können, dass keine der Mengen Ci nur Elemente einer Farbe enthält.

Zeige, dass SETSPLITTINGNPC.

Minesweeper

Wir wollen einen ungerichteten Graphen betrachten und so tun, als ob er ein Minesweeper Feld wäre. Nun seien einige der Knoten mit einer natürlichen Zahl beschriftet. Wir fragen uns, ob wir einen Teil der unbeschrifteten Knoten so verminen können, dass jeder beschriftete Knoten genau so viele benachbarte Minen-Knoten hat, wie seine Beschriftung angibt.

Zeige, dass dieses Problem NP-vollständig ist.

Ich habe hierzu einen Blog-Post geschrieben.

MAX-k-SAT

Wir definieren die Problem MAX-k-SAT. Dabei ist die Eingabe ein Tupel (φ,l). Dabei ist φ eine Aussgenform in kKNF und l eine natürliche Zahl. Wir fragen nun, ob es eine Belegung gibt, die mindestens l Klauseln erfüllt.

Einfach: Zeige MAX-3-SATNPC. Schwer: Zeige MAX-2-SATNPC.