Theoretische Informatik 2, Blatt 1 - Institut für Theoretische Informatik
Theoretische Informatik 2, Blatt 1 - Institut für Theoretische Informatik
Theoretische Informatik 2, Blatt 1 - Institut für Theoretische Informatik
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
@<br />
TECHNISCHE<br />
UNIVERSITÄT CAROLO-WILHELMINA ZU BRAUNSCHWEIG<br />
<strong>Institut</strong> für <strong>Theoretische</strong> <strong>Informatik</strong><br />
<strong>Theoretische</strong> <strong>Informatik</strong> 2, <strong>Blatt</strong> 1<br />
Abgabetermin 2012-05-03<br />
Prof. J. Adámek, Dr. J. Koslowski<br />
Braunschweig, 2012-04-26<br />
Aufgabe 1 (Übung)<br />
Betrachten Sie das folgende Problem “Bin-Packing“:<br />
Eingabe: eine endliche Menge U von Objekten, für jedes u ∈ U ein positives Gewicht g(u) ∈ IN , zwei<br />
positive natürliche Zahlen B und K .<br />
Aufgabe: entscheiden, ob es eine Partition von U in K disjunkte Mengen U 0 , U 1 , . . . U K−1<br />
dass für alle i < K gilt:<br />
∑<br />
g(u) ≤ B,<br />
u∈U i<br />
d. h., das Gesamtgewicht jeder der Teilmengen U i ist durch B nach oben beschränkt.<br />
gibt, so<br />
(Informell geht es darum zu entscheiden, ob die Objekte aus U so in K gleich große Kisten mit maximaler<br />
Tragekapazität B verteilt werden können, dass keine Kiste überlastet ist.)<br />
(a) [5 punkte] Wählen Sie ein geeignetes Alphabet X und ein Eingabeformat, mit dem Instanzen<br />
des Problems, d.h., Listen aus Schranken B , K , und Gewichten g(u) , als Eingabewörter einer<br />
TM über X dargestellt werden können.<br />
(b) [8 punkte] Beschreiben Sie informell aber klar und verständlich die Funktionsweise einer nichtdeterministischen<br />
TM M , die die in (a) angegebene Sprache akzeptiert.<br />
Lösungsvorschlag:<br />
(a) Eine Eingabeinstanz des Problems “Bin-Packing“ ist gegeben durch n Zahlen g i , i < n , wobei<br />
|U| = n gilt, zusammen mit den Zahlen B und K . Diese werden folgendermaßen als Wörter über<br />
dem Alphabet X = { 0, 1, $ } kodiert: man listet die Zahlen in der Reihenfolge K, B, g 0 , . . . , g n−1<br />
in binärer Codierung auf und trennt die einzelnen Zahlen durch das Symbol $.<br />
Beispiel: Die “Bin-Packing“-Instanz mit den Gewichten 1, 2, 3, 37, 42 und K = 2 , B = 45 hat<br />
die folgende Codierung<br />
10$101101$1$10$11$100101$101010$<br />
(b) Idee: Die TM ”<br />
rät“ nichtdeterministisch eine Lösung, also K Untermengen und überprüft, ob jede<br />
dieser Mengen die Ungleichung aus der Problemstellung erfüllt. Falls dies der Fall ist, wird das<br />
Eingabewort akzeptiert.<br />
Es wird eine 3-bändige NDTM M mit Bandalphabet B = X + {#, h} benutzt. Das erste Band ist<br />
das Eingabeband, auf dem zweiten Band wird die Lösung erzeugt und Band 2 dient als Arbeitsband.<br />
Im Detail ist die Arbeitsweise der TM folgendermaßen:<br />
1. potentielle Lösung auf Band 1 nichtdeterministisch erzeugen<br />
1.1. Kopiere die erste Zahl K aus der Eingabe auf Band 2.<br />
1.2. Schreibe ein Symbol h auf Band 1.<br />
1.3. Gehe auf Band 0 von links nach rechts über die Zahlen g i : Für jede der (noch vorhandenen)<br />
Zahlen entscheide nichtdeterministisch, ob sie (inklusive Trennzeichen $) auf Band 1<br />
kopiert und auf Band 0 gelöscht wird oder auf Band 0 belassen wird.<br />
1.4. Dekrementiere die Zahl K auf Band 2 um 1.<br />
1.5. Falls K > 0 goto 1.2 sonst lösche Band 2.<br />
2. Prüfe für jede der K (durch h getrennten) Listen, ob die Ungleichung der Problemstellung<br />
gilt, d.h., gehe von links nach rechts auf Band 1 wenn ein h gefunden wird, arbeite folgende<br />
Schritte ab:
2.1. Kopiere die erste Zahl der betrachteten Liste auf Band 2.<br />
2.2. Gehe von links nach rechts über die Liste bis ein h gefunden wird und addiere jede der<br />
durch $ getrennten Zahlen zu dem aktuellen Inhalt von Band 2.<br />
2.3. Vergleiche die Summe S von Band 2 mit der zweiten Zahl B der Eingabe von Band 0.<br />
2.4. Falls S > B stop und nicht akzeptieren.<br />
2.5. Falls das nächste Zeichen auf Band 1 ein h ist Band 2 löschen und goto 2.1<br />
3. Falls jetzt ein Blank-Symbol # gelesen wird stop und akzeptieren.<br />
Für die einzelnen Teilaufgaben benötigt unsere TM M verschiedene Teilmodule für folgende Aufgaben:<br />
– Kopieren einer Zahl von Band i nach Band j.<br />
– Löschen einer Zahl auf einem Band.<br />
– Addieren zweier Binärzahlen.<br />
– Vergleichen zweier Binärzahlen.<br />
Es ist nicht schwer deterministische Turing-Maschinen für jede dieser Aufgaben anzugeben. Dies<br />
lassen wir als Übungsaufgabe für zu Hause.<br />
Aufgabe 2 (Hausaufgabe)<br />
[8 punkte] Untersuchen Sie die Klassen der (semi-)entscheidbaren Sprachen auf ihre Abgeschlossenheit<br />
bzgl. Residuierung mit endlichen Sprachen. Genauer: Sind L, M ⊆ Σ ∗ (semi-)entscheidbar bzw. M<br />
endlich, was können Sie über die (Semi-)Entscheidbarkeit von M\L bzw. L/M aussagen?<br />
Aufgabe 3 (Hausaufgabe)<br />
[8 punkte] Zeigen Sie (ohne explizite Konstruktion von Turingmaschinen) die Abgeschlossenheit der<br />
Klasse der partiell Turing-berechenbaren Funktionen unter Komposition: (f ◦ g)(n) = f(g(n)) . Welches<br />
Problem ergibt sich, wenn man versucht, ausschließlich mit Einband-Maschinen zu arbeiten?<br />
Aufgabe 4 (Hausaufgabe)<br />
Unter einem ungerichtenten Graphen G versteht man ein Paar G = 〈V, E〉 aus einer endlichen Menge<br />
V von Knoten (“vertices”) und einer Menge E ⊆ P (V ) aus zwei-elementigen Teilmengen von V , den<br />
sogenannten Kanten (“edges”).<br />
Betrachten Sie das folgende Problem “Clique”:<br />
Eingabe: ungerichteter Graph, G , ganze Zahl k .<br />
Aufgabe: prüfen, ob G einen vollständigen Untergraphen (“Clique”) mit k Knoten hat.<br />
(a) [5 punkte] Wählen Sie ein geeignetes Alphabet X und ein Eingabeformat, mit dem Instanzen des<br />
Problems, d.h., Paare bestehend aus G und k , als Eingabewörter einer TM über X dargestellt<br />
werden können.<br />
(b) [8 punkte] Skizzieren Sie die Funktionsweise einer NTM M , die die in (a) angegebene Sprache<br />
akzeptiert.