Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer Kennzahl: Frühjahr Kennwort: 66115 2020 Arbeitsplatz-Nr.: Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen — Prüfungsaufgaben — Fach: Informatik (vertieft studiert) Einzelprüfung: Theoretische Informatik, Algorithmen Anzahl der gestellten Themen (Aufgaben): 2 Anzahl der Druckseiten dieser Vorlage: 16 Bitte wenden! Frühjahr 2020 Einzelprüfungsnummer: 66115 Seite: 2 Thema Nr. 1 (Aufgabengruppe) Es sind alle Aufgaben dieser Aufgabengruppe zu bearbeiten! Aufgabe 1 (Aussagen) [24 PUNKTE] Zeigen oder widerlegen Sie die folgenden Aussagen (die jeweiligen Beweise sind sehr kurz). Schreiben Sie zunächst zur Aussage „Richtig“ oder „Falsch“ und dann Ihre Begründung. (a) [6 PUNKTE] Seien L, L’ < 2* formale Sprachen. Falls L kontextfrei und L’ unentscheidbar ist, dann ist die Vereinigung L U 2’ sicher nicht regulär. (b) [6 PunKTE] Die Menge aller Sprachen in der Klasse NP ist abzählbar unendlich. (c) [6 PunKTe|] Es ist unentscheidbar, ob eine vorgelegte aussagenlogische Formel durch jede Belegung ihrer Variablen erfüllt wird. (d) [6 PUNKTE] Angenommen es gilt P # NP, und Le NP\P ist gegeben. Dann ist es möglich, dass L nur endlich viele Nerode-Aquivalenzklassen besitzt. Aufgabe 2 (Reguläre Sprachen) [30 PUNKTE] (a) [4 PUNKTE] Es sei Z C {a,b,c}* die von dem folgenden nichtdeterministischen Automaten akzeptierte Sprache: a,b,c a,b,c —DO:-050 02.02.06 Beschreiben Sie (in Worten) wie die Wörter aus der Sprache L aussehen. (b) [8 PUNKTE] Benutzen Sie die Potenzmengenkonstruktion, um einen deterministischen Au- tomaten zu konstruieren, der zu dem Automaten aus Teil (a) äquivalent ist. (Berechnen Sie nur erreichbare Zustände.) (c) [3 PunKTe] Ist der resultierende deterministische Automat schon minimal? Begründen Sie Ihre Antwort. (d) [15 PUNKTE] Minimieren Sie den folgenden deterministischen Automaten: Machen Sie dabei Ihren Rechenweg deutlich! Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 Seite: 3 Aufgabe 3 (Kontextfreie Sprachen) [36 PUNKTE] (a) [10 PUNKTE] Entwerfen Sie eine kontextfreie Grammatik für die folgende kontextfreie Spra- che über dem Alphabet D = {a,b, c}: L = {a"*’wuc” |n € No,2- |w|s = |vla}- (Hierbei bezeichnet |u|, die Anzahl des Zeichens x in dem Wort u.) Erklären Sie den Zweck der einzelnen Nichtterminale (Variablen) und der Grammatikregeln Ihrer Grammatik. (b) [10 PunKTeE|] Betrachten Sie die folgende kontextfreie Grammatik G=({A,B,C,D}, {a,b,c}, P, A) mit den Produktionen —> AB|CD|a — CClc u » — DC|CB|b D- DBla Benutzen Sie den Algorithmus von Cocke-Younger-Kasami (CYK), um zu zeigen, dass das Wort abcab zu der von G erzeugten Sprache L(G) gehört. (c) |3 PUNKTE] Finden Sie nun ein größtmögliches Teilwort von abcab, dass von keinem der vier Nichtterminale von G ableitbar ist. (d) [3 PUNKTE] Geben Sie eine Ableitung des Wortes abcab mit G an. (e) [10 PUNKTE] Beweisen Sie, dass die folgende formale Sprache über Z = {a,b} nicht kon- textfrei ist: , L={a"b" |neN}. Aufgabe 4 (Entscheidbarkeit) [14 PUNKTE] Gegeben ist das folgende Entscheidungsproblem: Eingabe: eine (geeignet codierte) Turingmaschine M, die eine (möglicherweise partielle) Funktion fm : N N berechnet Aufgabe: entscheiden, ob fm sich von der Fakultätsfunktion unterscheidet (a) [7 PuUnKTel Ist das gegebene Problem semi-entscheidbar? Begründen Sie Ihre Antwort. Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 | Seite: 4 (b) [7 PunKTe] Ist das gegebene Problem sogar entscheidbar? Begründen Sie auch hier Ihre Antwort. Aufgabe 5 (NP-Vollständigkeit) [16 PUNKTE] Beweisen Sie, dass das folgende Problem N P-vollständig ist: Eingabe: ein ungerichteter Graph mit Knotenmenge V, dessen Knoten mit den Farben Rot und Grün gefärbt sind und eine natürliche Zahl n > 5 Aufgabe: entscheiden, ob es möglich ist, den Knoten Prioritäten zuzuordnen (d.h. Zahlen », € {l,...,n}, ve V), so dass je zwei durch eine Kante verbundene Knoten verschie- dene Priorität haben und die Priorität eines jeden roten Knoten höher ist als die Priorität jedes grünen Knoten (d.h. für jeden roten Knoten u und jeden grünen Knoten v gilt p, > Dy) Aufgabe 6 (Matrixarithmetik) : [68 PUNKTE] Zur Erinnerung: Für zwei (quadratische) Matrizen A,B € R”*” mit A = (a, ,)ı Vr-ı 0; 60%, (d.h. Pi,j ist das Skalarprodukt der ö-ten Zeile von A mit der j-ten Spalte von B).. Hinweis: In dieser Aufgabe nehmen wir an, dass n eine Zweierpotenz ist, d.h. n = 2* für eink > 0. (a) [3 Punkte] Geben Sie einen Algorithmus zur Addition zweier n x n Matrizen in Pseudo-Code an: | MADpDp(A, B,n) / Eingabe: Zwei Matrizen A, Be R"** mitn>1 und A= (@,;j)ı1 und A= (ay)ı 1 ist) A,B und P jeweils in vier Blockmatrizen der Größe n/2 x n/2, d.h., wir schreiben Aıı Aı2 Bıı Bı2 Pıı Pıa A= ‚B = ‚P = Aaı As2 Baı Ba2 Pı Pa mit Au, Bis; Pi e Rr/2xn/2, Mit dem Algorithmus GETÜUPPERLEFT(X, n) U Eingabe: Eine Matrix X = (2; j)ı1 2 N Ausgabe: Die Matrix Z = (2,j)12 U Ausgabe: Die Matrix Z = (2 ;)ı2 Xıı X // Ausgabe: Die Matri 11 12 gabe: Die Matrix | Kt Kos Man kann nun zeigen, dass gilt: Pıı = AııBıı + Aı2Baı Pıa = AııBı2a + Aı2Ba2 Paı = AaıBı,ı + A22 Ba ı Pa = A2ıBıa + A2a2Ba.2 Auf dieser Darstellung basiert folgender Algorithmus: MMULTR(A, B, n) // Eingabe: Zwei Matrizen A,Be R” mitn>1 und A= (a,;)ı, Ba», 1/ 2)) 15 Pı = MADD(MMULTR (A; ı, Bı 1,n/2), MMULTR(A3,, Ba,ı,n/2)) 16 P2 = MADpp(MMULTR(A; |, Bı», n/2), MMULTR(A3>, Ba», n/2)) 17 4 Gib die Matrix A ne zurück 21 22 18 return CoMmPosE(P: 1; Pı2: Pa; Po2., n) oO SI O0», © De (g) [9 Punkte] Beweisen Sie, dass der Algorithmus MMULTR korrekt ist. Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 | Seite: 7 (h) [8 Punkte] Begründen Sie, dass die Laufzeit T(n) des Algorithmus beim Aufruf MMULTR(A, B,n) folgender asymptotischer Rekursions(un)gleichung genügt: T(n) = 8T(n/2) + O(n?) fürn >1 und T(n)=O() fürn=1. Sie dürfen dabei annehmen, dass die Algorithmen GETUPPERLEFT, GETÜPPERRIGHT, GETLOWERLEFT, GETLOWERRIGHT, MADD und COMPOSE so implementiert sind, dass ihre asymptotische Laufzeit auf n x n Matrizen O(n?) ist. (i) [9 Punkte] Wir betrachten die Rekursionsungleichung (für eine Konstante c > 0) T(n) <8-T(n/2)+c-n?fürn>1 und T(n)1 und T(n) = O(1) fürn =1. Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 Seite: 8 Sie dürfen dabei wieder annehmen, dass die Algorithmen GETUPPERLEFT, GETÜUPPER- RIGHT, GETLOWERLEFT, GETLOWERRIGHT, MADD und COMPOSE so implementiert sind, dass ihre asymptotische Laufzeit auf n x n Matrizen O(n?) ist. Zudem steht Ihnen ein Algorithmus MSuUB zur Subtraktion von Matrizen zur Verfügung: MSUB (A, B, n) // Eingabe: Zwei Matritzen A, B, e R”“? mitn 2 1 und A= (a;,)ı Sij 0) Tvs(n) <7-Tys(n/2)+c-n? fürn>1 und Tys(n) o, eine Endzeit f; € Rso mit fi > s; und einen Wert w, € R>o. Wir nehmen im Folgenden an, dass alle Zeiten sı,...,$n, fi,--- , /n paarweise verschieden sind. Für eine Menge 5 C J von Jobs ist der Gesamtwert definiert als w(S ) = > Wi. ieS Eine Menge von Jobs M C J wird kompatibel genannt, falls keine zwei verschiedenen Jobs l,m € M existieren, welche sich zeitlich überlappen. Das heißt für alle !,m e M mit ! £ m silt dann entweder fm < sı oder fı < sm- Gesucht ist eine Menge $ C J von kompatiblen Jobs, deren Gesamtwert w(S) marimal ist. Diesen Wert bezeichnen wir mit OPT(J). Wir nehmen im Folgenden an, dass die Jobs nach ihren Endzeiten f; aufsteigend sortiert sind und setzen fo := 0. Nun betrachten wir für0 21 gilt OPT{ti) = max(OPT(i - 1),w +OPT(pfi))). (e) [4 Punkte] Formulieren Sie auf Basis dieser Rekursionsgleichung einen rekursiven Algorith- mus zur Berechnung von OPTt) in Pseudocode: DispRec(S, F, W,i, P) / Eingabe: Eine Instanz des Dispositionsproblems, beschrieben durch N die Folge $ = (sı,...,3„) der Startzeiten N die Folge F=(fı,..., fn) der Endzeiten mit fi <---< fu N die Folge W = (wı,...,w„) der Werte A ein Indx0 0) T(n)>2-T(n-1)+cfün>1 wd T(n)>cfürn 2} über dem Alphabet % = {a,b} kontextfrei? Falls ja, geben Sie eine kontextfreie Grammatik für L, an, falls nein, eine kurze Begründung (ein vollständiger Beweis ist hier nicht gefordert). (b) [12 Punkte] Geben Sie einen Kellerautomaten (PDA) formal an, der die Sprache L2 = {wıwaw3 | wı,wa,w3 € D*\ {A} und wı = wäY} € CFL über dem Alphabet % = {0,1} akzeptiert. Dabei bezeichnet X das leere Wort und w3° bezeichnet das Wort ws rückwärts gelesen. Bei Akzeptanz einer Eingabe soll sich der PDA in einem Endzustand befinden und der Keller geleert sein. (c) [4 Punkte] Beschreiben Sie in Worten die Arbeitsweise Ihres PDA aus Aufgabenteil (b). Aufgabe 4 (Berechenbarkeitstheorie) [27 PUNKTE] Sei A= {{M) | M ist Turingmaschine, die bei Eingabe 101 hält }. Dabei bezeichnet (M) die Gödelnummer der Turingmaschine M. (a) [12 Punkte] Zeigen Sie, dass A unentscheidbar ist. (b) [5 Punkte] Zeigen Sie, dass A semi-entscheidbar ist. (c) [10 Punkte] Ist das Komplement A° von A entscheidbar? Ist es semi-entscheidbar? Begründen Sie Ihre Antworten. Hinweis: Sie können die Aussagen aus Teilaufgabe a) und b) verwenden, auch wenn Sie sie nicht bewiesen haben. Aufgabe 5 (Komplexitätstheorie) [20 PUNKTE] Sei G = (V, E) ein ungerichteter Graph. Eine 2-Kreisüberdeckung von G besteht aus zwei einfachen Kreisen C| und Ca in G, sodass jeder Knoten von G in mindestens einem der Kreise C\ oder O5 enthalten ist. Das Problem 2-KREISÜBERDECKUNG besteht darin, für einen gegebenen Graphen G = (V, E) zu entscheiden, ob G eine 2-Kreisüberdeckung besitzt. (a) (4 Punkte] Geben Sie eine 2-Kreisüberdeckung für den folgenden Graph an. Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 Seite: 13 (b) [6 Punkte] Zeigen Sie, dass das Problem 2-KREISÜBERDECKUNG in N P liegt. (c) [10 Punkte] Zeigen Sie, dass das Problem 2-KREISÜBERDECKUNG N P-vollständig ist. Hinweis: Sie können ohne Beweis benutzen, dass das Problem HAMILTONKREIS, das darin besteht zu entscheiden ob ein gegebener Graph einen einfachen Kreis besitzt, der alle Knoten enthält, NP-schwer ist. Aufgabe 6 (Sortieren) |9 PUNKTE] Ein bekanntes Sortierverfahren ist Insertion-Sort, ein inkrementeller Algorithmus. Insertion-Sort geht im i-ten Durchlauf davon aus, dass das Teilfeld bis zur Stelle © — 1 schon sortiert ist. Dann speichert Insertion-Sort das :-te Element des gegebenen Feldes zwischen, um es an der korrekten Stelle im schon sortierten Teilfeld einzufügen. (a) [3 Punkte] Analysieren Sie, wie viele Schlüsselvergleiche Insertion-Sort im besten und im schlechtesten Fall benötigt, um ein Feld von n verschiedenen Zahlen zu sortieren. Geben Sie jeweils die genaue Anzahl an. (b) [6 Punkte] Sei nun die Eingabe ein Feld mit den Zahlen 1,2,...,n in zufälliger Reihenfolge. Schätzen Sie asymptotisch scharf ab, wie viele Schlüsselvergleiche Insertion-Sort in diesem Fall vornimmt. Tipp: Gehen Sie davon aus, dass n durch 4 teilbar ist. Betrachten Sie der Einfachheit halber nur die Elemente im letzten Viertel des Feldes. Wie weit müssen manche (wie viele?) dieser Elemente nach links wandern? Aufgabe 7 (Dijkstras Algorithmus) [21 PUNKTE] Auf folgendem ungerichteten Graphen wurde Dijkstras Algorithmus (wie unten beschrieben) aus- geführt, doch wir wissen lediglich, welcher Knoten als letztes schwarz (black) wurde (Nr. 8) und was seine Distanz zum Startknoten (Nr. 1) ist. Die Gewichte der Kanten sind angegeben. Finden Sie den Startknoten, nummerieren Sie die Knoten in der Reihenfolge, in der sie schwarz wurden und geben Sie in jedem Knoten die Distanz zum Startknoten an. Markieren Sie die Kanten, die zu dem Kürzesten-Wege-Baum gehören, den Dijkstras Algorithmus ausgibt. Der Startknoten ist eindeutig. Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 Seite: 14 Nr. 8 . Nr. Distanz: 11 - 15 21; Distanz: Nr. 7 Distanz: 6 \ 10 Nr. 2 10 5 Distanz: Nr. _ Distanz: 16 Nr. 18 6 Nr. Distanz: Distanz: 5 Nr. 8 Distanz: Dijkstra(Graph G, Edgeweights w, Vertex s) Initialize(G, s) = = new PriorityQueue(V, d) hile not Q.Empty() do . u = Q.ExtractMin() S=SUuf{u} foreach v € Adj[u] do | Relax(u,v, w) _ u.color = black Initialize(Graph G, Vertex s) foreach vweV do u.color = white u.d = 00 s.color = gray s.d=0 Relax(Vertex u, Vertex v, Edgeweights w) if v.d> u.d+ w(u,v) then | v.color = gray v.d=u.d+ w(u,v) Q.DecreaseKey(v, v.d) Fortsetzung nächste Seite! Frühjahr 2020 Einzelprüfungsnummer: 66115 Seite: 15 Aufgabe 8 (Nächstes rot-blaues Paar auf der x-Achse) [40 PUNKTE] Gegeben seien zwei nichtleere Mengen R und B von roten bzw. blauen Punkten auf der x-Achse. Gesucht ist der minimale euklidische Abstand d(r, b) über alle Punktepaare (r,b) mitr € R und be B. Hier ist eine Beispielinstanz: Tr e blau _ —ä u a —- ii --— dir .————- x-Achse a2 A rot Die Eingabe wird in einem Feld A übergeben. Jeder Punkt Alö] mit 1