Ein paar Aufgaben zu theoretischer Informatik
Contents
Graphenalgorithmik
Matching in einem Baum
Ein Matching in einem Graphen ist eine Kantenmenge , sodass zwei Kanten aus nie einen adjazenten Knoten teilen. Für zwei Kanten gilt also .
Finde einen Linearzeit-Algorithmus, der ein maximales Matching in einem Baum findet.
Feedback Edge Set
Sei ein ungerichteter Graph. Wir nennen eine Kantenmenge ein Feedback Edge Set, wenn jeder Kreis in mindestens eine Kante in hat.
Finden einen effizienten Algorithmus, der ein Feedback Arc Set minimaler Größe findet.
Online MST
Sei ein ungerichteter Graph, zu dem der MST bereits berechnet wurde. Nun fügen wir eine neue Kante (aber keinen neuen Knoten) in ein. Finde einen Algorithmus, der den MST akutalisiert, sodass er ein MST des vergrößerten Graphen ist.
Transitive Hülle
Sei ein gerichteter Graph. Die Transitive Hülle hat nun die gleichen Kanten wie und genau dann eine Kante , wenn es einen Pfad in gibt.
Finde einen effizienten Algorithmus, um zu berechnen.
Unabhängiges Vertex-Cover
Zur Erinnerung: Wir nennen eine Knotenmenge unabhängig, wenn es zwischen zwei Knoten aus nie eine Kante gibt. Wir nennen eine Menge eine Knotenüberdeckung, wenn zu jeder Kante mindestens einer der adjazenten Knoten in liegt.
Finde einen effizienten Algorithmus, der feststellt, ob es in einem gegebenen Graphen eine unabhängiges Knotenüberdeckung gibt.
Ausdruckspunkte
Sei ein ungerichteter, zusammenhängender Graph. Finde einen effizienten Algorithmus, der die Knoten von 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
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 . Wir definieren die Sprache , die korrekte Additionsausdrücke beinhaltet. Zeige, dass nicht regulär ist.
Durchschnitt von regulären und kontextfreien Sprachen
Sei kontextfrei und regulär. Zeige, dass 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: .
P vs NP
Pfade
Sei ein ungerichteter Graph. Wir definieren die Sprachen
Zeige und .
Double-SAT
Sei eine aussagenlogische Formel. Dann sei genau dann, wenn mindestens zwei verschiedene erfüllende Belegungen hat. Zeige, dass NP-vollständig ist.
Matching
Sei ein ungerichteter Graph. Wir nennen eine Kantemenge ein Matching, wenn zwei unterschiedliche Kanten nie einen gemeisamen Knoten haben. Also für alle gilt auch .
Das Problem, folgende Frage für einen ungerichteten Graphen zu entscheiden, ist in polynomieller Zeit lösbar: Hat ein Matching der Größe .
Set-Splitting
Das Problem beinhaltet Tupel , wobei eine endliche Menge ist und eine Menge von Teilmengen von . Diese Tupel sind nun genau dann in , wenn die Elemente von so rot oder blau gefärbt werden können, dass keine der Mengen nur Elemente einer Farbe enthält.
Zeige, dass .
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.
Wir definieren die Problem . Dabei ist die Eingabe ein Tupel . Dabei ist eine Aussgenform in und eine natürliche Zahl. Wir fragen nun, ob es eine Belegung gibt, die mindestens Klauseln erfüllt.
Einfach: Zeige . Schwer: Zeige .
Author Ben Bals
LastMod 2020-07-22