Aufgaben Theoretische Informatik
|
|
|
- Albert Lichtenberg
- vor 8 Jahren
- Abrufe
Transkript
1 Aufgaben Theoretische Informatik Elmar Eder 25. Januar 2017 Lösungen der Aufgaben bitte abgeben auf dem Abgabesystem von Dominik Kaaser auf als ASCII- oder UTF-8-Dateien mit der unter Unix/Linux üblichen Codierung der Zeilenenden als LF (linefeed) oder als PDF- oder JPEG-Dateien! Dateinamen wie dort angegeben. Die Aufgaben sind dann im Proseminar zu präsentieren (Kreuzerlliste zur Präsentationsbereitschaft liegt jeweils am Anfang der Doppelstunde aus). Aufgabe 1 Im Prolog-Programm ggt.pl ist der euklidische Algorithmus zur Berechnung des größten gemeinsamen Teilers zweier natürlicher Zahlen implementiert. Unter einem Teiler einer natürlichen Zahl a verstehen wir eine natürliche Zahl t derart, dass eine natürliche Zahl u existiert mit t u = a. Wir schreiben dann t a. Unter einem gemeinsamem Teiler (ggt) zweier natürlicher Zahlen a und b verstehen wir eine Zahl t, die Teiler sowohl von a als auch von b ist, also so, dass t a t b gilt. Jede natürliche Zahl t ist Teiler der Null 0. Jede natürliche Zahl a 0 hat aber nur endlich viele Teiler. Daher gibt es zu je zwei Zahlen a und b außer, wenn a und b beide gleich 0 sind, stets einen größten gemeinsamen Teiler, den wir als den ggt von a und b bezeichnen. Wenn a = b = 0 ist, sind alle natürlichen Zahlen gemeinsame Teiler von a und b, und es gibt daher keinen größten gemeinsamen Teiler von a und b. Um trotzdem auch in diesem Fall ein wohldefiniertes Ergebnis zu bekommen, definieren wir den ggt von 0 und 0 als 0. Probieren Sie das Programm zunächst mit der Anfrage?- ggt(12,8,t). aus (nicht abzugeben)! Wenn Sie zuvor mit?- trace. in den Trace-Modus umschalten, können Sie Prolog beim Beweisen der einzelnen Ziele zusehen. Call bedeutet, dass Prolog versucht, ein Ziel zu beweisen; Exit bedeutet, dass Prolog ein Ziel bewiesen hat. Prolog verwendet bei der Anzeige der Ziele interne Namen für die Variablen, die mit einem Underscore anfangen. So kann es etwa die Variable T als _G2756 anzeigen und somit das Ziel ggt(12,8,t) als ggt(12, 8, _G2756) anzeigen. Mit der RETURN-Taste schalten Sie einen Schritt weiter. Beobachten Sie dabei die Zeilen, die einen Call von ggt beschreiben (nicht abzugeben)! Ich gebe hier diese Zeilen auf das Wesentliche verkürzt wieder: Call: ggt(12, 8, _G2756) Call: ggt(8, 12, _G2756) Call: ggt(4, 8, _G2756) Call: ggt(0, 4, _G2756) 1
2 Sie sehen, dass dabei das erste Argument von ggt jeweils von einem solchen Call zum nächsten immer kleiner wird (im obigen Beispiel: 12, 8, 4, 0). Mit?- nodebug. können Sie Prolog wieder in den normalen Modus umschalten. Die Definition des Prädikats ggt im Programm ggt.pl besteht aus zwei Klauseln. (a) Formulieren Sie jede der beiden Klauseln des Programms ggt.pl als Aussage in deutscher Sprache (unter Verwendung der Abkürzung ggt)! (b) Zeigen Sie, dass diese beiden Aussagen wahr sind! Wegen der Korrektheit von Prolog folgt daraus dann, dass das Programm keine falschen Antworten liefert. (c) Wenn Prolog eine Anfrage abarbeitet, versucht es, sie zunächst mittels der ersten Klausel des Programms zu beweisen. Wenn das nicht geht, versucht es dies mit der zweiten Klausel des Programms. Dabei ruft es dasselbe Prädikat ggt wiederum mit anderen Argumenten (C,A,T) auf. Man nennt das einen rekursiven Aufruf. Dieser Aufruf kann wiederum zu einem rekursiven Aufruf von ggt führen, usw. Zeigen Sie, dass bei der Berechnung des ggt zweier natürlicher Zahlen mit diesem Programm die Kette der rekursiven Aufrufe stets nach endlich vielen Aufrufen enden muss und daher das Programm stets terminiert! Aufgabe 2 Sei A die Aussage 2 ist ungerade und B die Aussage 3 ist eine Primzahl (Beispiel aus der Vorlesung). Geben Sie für jede der Aussagen A, A B, A B, A B und A B an, ob sie wahr oder falsch ist! Aufgabe 3 In Prolog wird ein Prädikat durch seinen Namen gefolgt von einem Schrägstrich und seiner Stelligkeit bezeichnet. So gibt es zum Beispiel in SWI- Prolog (swipl) und in GNU-Prolog (gprolog) ein zweistelliges Prädikat member und ein dreistelliges Prädikat append. Diese werden bezeichnet mit member/2 bzw. append/3. Machen Sie sich zunächst mit diesen beiden Prolog-Prädikaten vertraut, indem Sie unter anderen die Anfragen?- member(x,[a,b,c]).?- member(a,l).?- append([a,b],[c,d,e],l).?- append(l1,l2,[a,b,c,d]).?- append(l1,l1,l).?- append(l1,l2,l). eingeben und indem Sie in SWI-Prolog?- help. aufrufen und in dem daraufhin erscheinenden Fenster in dem kleinen Eingabefeld member/2 bzw. append/3 eingeben bzw. in GNU-Prolog im Manual nachschlagen! Implementieren Sie dann diese beiden Prädikate als selbst definierte Prolog-Prädikate element/2 bzw. konkatenation/3 ohne Verwendung der eingebauten Prädikate! Aufgabe 4 Bei dem Spiel Nim spielen zwei Spieler gegeneinander. Es liegen mehrere Haufen von Steinen auf einem Tisch. Die Spieler ziehen abwechselnd. Jeder Zug besteht darin, aus einem Haufen ein oder mehr Steine zu entfernen. Wer als erster nicht mehr ziehen kann, weil alle Haufen leer sind, hat verloren. 2
3 Geben Sie einen Algorithmus an, der für einen Spieler, der gerade am Zug ist, feststellen kann, ob es für ihn möglich ist, auch gegen einen guten Gegner zu gewinnen! Außerdem soll der Algorithmus in diesem Fall einen Zug ausgeben, der dem Spieler den Gewinn garantiert. Implementieren Sie Ihren Algorithmus in Prolog! Bauen Sie damit ein Nim-Programm, das gegen einen menschlichen Gegner optimal spielen kann! Testen Sie Ihr Programm für einige Spielstellungen mit wenigen Steinen! Hinweis: Wenn G ein Prolog-Ziel ist, dann ist \+G die negation as failure von G. Das Ziel \+G gelingt genau dann, wenn das Ziel G fehlschlägt. Bei einem Aufruf von \+G versucht Prolog zunächst G zu beweisen. Wenn dies gelingt, schlägt der Aufruf von \+G fehl. Andernfalls gelingt der Aufruf von \+G, ohne dass dabei irgendwelche Variablen ersetzt werden. Aufgabe 5 Gibt es für das Spiel Schach einen Algorithmus, der ähnlich wie in der vorigen Aufgabe, in endlicher Zeit feststellen kann, ob es bei einer gegebenen Schachstellung einen Zug gibt, der dem ziehenden Spieler den Gewinn garantiert? Man sagt dann, es sei entscheidbar, ob es einen solchen Zug gibt. Begründen Sie Ihre Antwort! Aufgabe 6 Geben Sie für ((A B) (A C)) die Wahrheitswerttafel an! Aufgabe 7 Wieviele n-stellige aussagenlogische Verknüpfungen gibt es? Geben Sie alle n-stelligen aussagenlogischen Verknüpfungen für n = 0, für n = 1 und für n = 2 an! Aufgabe 8 Geben Sie alle einstelligen Prädikate auf der Menge {a, x, z} an! Geben Sie alle zweistelligen Prädikate auf der Menge {3, 4} an! Aufgabe 9 Sei D ein Individuenbereich mit k Elementen. Wieviele n-stellige Prädikate gibt es auf D? Schreiben Sie ein Prolog-Programm, das alle n-stelligen Prädikate auf D ausgibt! Aufgabe 10 Geben Sie einen Individuenbereich D und ein zweistelliges Prädikat P auf D an derart, dass die Aussage x P (x, x) x y z ( P (x, y) P (y, z) P (x, z) ) x y P (x, y) wahr ist! Wir sagen, durch D und P sei ein Modell dieser Aussage gegeben. Geht das mit einem endlichen Individuenbereich D? Aufgabe 11 Beweisen Sie durch vollständige Induktion, dass n i = i=0 für alle natürlichen Zahlen n gilt! n (n + 1) 2 Aufgabe 12 Das dreistellige Prädikat P auf der Menge der natürlichen Zahlen sei definiert durch P (x, y, z) x y = z. 3
4 Geben Sie für jede der folgenden Aussageformen über dem Individuenbereich der natürlichen Zahlen an, für welche Werte der Variablen x, y und z diese Aussageform wahr ist und für welche Werte der Variablen x, y und z sie falsch ist! Aufgabe 13 Schreiben Sie x P (x, 2, z) y P (x, y, z) z P (x, y, z) x y ( P (x, y, z) x > 1 y > 1 ) x y z P (x, y, z) x y z P (x, y, z) δ < ɛ ɛ>0 δ>0 so um, dass darin keine eingeschränkte Quantifizierung mehr vorkommt. Stellt dies als Aussage über dem Individuenbereich der ganzen Zahlen betrachtet eine wahre oder eine falsche Aussage dar? Stellt es als Aussage über dem Individuenbereich der reellen Zahlen betrachtet eine wahre oder eine falsche Aussage dar? Aufgabe 14 Sei f : R R eine Funktion auf der Menge der reellen Zahlen. Drücken Sie die Aussage f ist differenzierbar mittels eingeschränkter Quantifizierung aus! Wandeln Sie die so dargestellte Aussage um in eine Darstellung in der Logiksprache der Prädikatenlogik erster Stufe mit Quantoren ohne Einschränkungen auf Teilbereiche des Individuenbereichs! Aufgabe 15 Mengen, die in endlich vielen Schritten aus einfachen Elementen aufgebaut sind, kann man in Prolog durch (eventuell geschachtelte) Listen darstellen. Implementieren Sie die Operationen und Begriffe der Mengenlehre, die wir in der Vorlesung kennengelernt haben, in Prolog! Aufgabe 16 In Prolog lässt sich mit op ein Prolog-Funktor (also Funktionszeichen oder Prädikatszeichen) als Infix-, Präfix- oder Postfix-Operator deklarieren. Mit current_op können Sie sich alle als Infix-, Präfix- oder Postfix- Operatoren deklarierten Funktoren auflisten lassen. Schauen Sie sich die Dokumentation von op und current_op an! Im Prolog-Programm-Fragment wahrheitswert1.pl sind die zwei Funktoren nicht/1 und und/2 als Präfix- bzw. Infix-Operator deklariert. Man kann dann z.b. nicht A statt nicht(a) schreiben und A und B statt und(a,b) schreiben. Das Programm soll den Wahrheitswert einer mittels Junktoren aus den Aussagen A und B von Aufgabe 2 zusammengesetzten Aussage berechnen können. Verbessern Sie das Programm-Fragment, indem Sie zwecks besserer Lesbarkeit für die Junktoren einheitlich Präfix- und Infix-Schreibweise im Programm verwenden und indem Sie die fehlenden Fälle und Junktoren ergänzen! Das Programm soll die Wahrheitswerte der zusammengesetzten Aussagen der Aufgabe 2 berechnen können und darüberhinaus die Wahrheitswerte auch von beliebigen mit,,, und aus A und B zusammengesetzten Aussagen. Lassen Sie 4
5 sich von Prolog den Wahrheitswert von (A B) B und den Wahrheitswert von A A B berechnen! Ändern Sie schließlich noch Ihr Programm, indem Sie den Namen des Prolog- Prädikats von wahrheitswert zu hat_den_wahrheitswert ändern und dieses Prolog-Prädikat als Infix-Operator deklarieren! Verwenden Sie auch im Programmtext die Infixschreibweise! Geben Sie dann Anfragen zum Wahrheitswert jeweils einer zusammengesetzten Aussage in Infixnotation ein! Aufgabe 17 Seien A, B und C Aussagen. Geben Sie für jede der folgenden zusammengesetzten Aussagen den entsprechenden Ausdruck unter möglichst weitgehender Weglassung von Klammern aufgrund der Vorrangregeln, sowie den Strukturbaum an! A B A ( B) A ( B ( (B A))) Aufgabe 18 Geben Sie alle Tripel (d.h. 3-Tupel) von Elementen der Menge {a, b} an! Geben Sie alle Paare (d.h. 2-Tupel) von Elementen der Menge {3, 9, 11} an! Aufgabe 19 Geben Sie die Potenzmenge der Menge {2, 3, 4} an! Geben Sie die Potenzmenge der Menge {(2, 3), (4, 5)} an! Aufgabe 20 Geben Sie für jedes der folgenden Erzeugungssysteme an, welche Menge von Objekten es erzeugt! (a) Objekte sind reelle Zahlen. (b) Objekte sind reelle Zahlen. Axiom: 0 Regel: x x + 1 Axiom: 1 Regel: x y x y (c) Objekte sind reelle Zahlen. Axiom: 1 x y Regeln: x y x y x/y, wenn y 0. 5
6 (d) Gegeben sei ein Würfel im dreidimensionalen euklidischen Raum. Objekte sind Punkte des Raumes. Axiome: Regel: Die 8 Eckpunkte des Würfels x y, wenn 0 α 1. α x + (1 α) y Die Regel sagt aus, dass man aus zwei Punkten des Raumes jeden Punkt auf der Verbindungsstrecke dieser beiden Punkte erzeugen kann. (e) Gegeben seien zwei zueinander windschiefe Geraden g und h im dreidimensionalen euklidischen Raum. Objekte sind Punkte des Raumes. Axiome: Regel: x y Alle Punkte der Geraden h, wenn y aus x durch Drehung um die Achse g entsteht Aufgabe 21 Betrachten wir als Objekte (Gegenstände) die natürlichen Zahlen. Dann wird durch die folgenden Regeln ein Erzeugungssystem definiert: Axiome: 3 Regel: 5 x y x + y. Welche Zahlen sind in diesem Erzeugungssystem herleitbar? Aufgabe 22 Gegeben sei das Alphabet Σ = {a, b}. Die Sprache L 1 über dem Alphabet Σ sei die Menge aller Wörter über Σ, die nur aus a s bestehen, d.h. die das Zeichen b nicht enthalten. Die Sprache L 2 über dem Alphabet Σ sei die Menge aller Wörter über Σ, die nur aus b s bestehen. Geben Sie für jede der Sprachen L 1, L 1 L 2, L 1 L 2, L 1 \ L 2, L 1 L 2, {a, b}, {ab}, L 1 und L + 1 explizit an, aus welchen Wörtern sie besteht. Aufgabe 23 Geben Sie einen regulären Ausdruck für die Sprache L a über dem Alphabet {a, b} an! Aufgabe 24 Die Wörter ε, a, ab, aba, abab,..., b, ba, bab, baba,... sind dadurch charakterisiert, dass sie nur die Zeichen a und b enthalten, wobei sich a und b abwechseln. Die Menge {ε, a, ab, aba, abab,..., b, ba, bab, baba,... } dieser Wörter ist eine Sprache über dem Alphabet {a, b}. Geben Sie einen regulären Ausdruck an, der genau diese Sprache bezeichnet. 6
7 Aufgabe 25 Seien L und L zwei reguläre Sprachen über demselben Alphabet Σ. Zeigen Sie, dass die Sprachen L L, LL und L regulär sind! Aufgabe 26 Sei Σ ein Alphabet und L eine endliche Menge von regulären Sprachen über Σ. Zeigen Sie, dass dann die Sprache L ebenfalls regulär ist! Aufgabe 27 Ist auch die Vereinigung einer unendlichen Menge von regulären Sprachen über Σ stets wieder regulär? Begründen Sie Ihre Antwort! Aufgabe 28 Gegeben sei der deterministische endliche Automat (DEA) über dem Alphabet {a, b} mit den Zuständen p, q und r und mit der folgendermaßen definierten Übergangsfunktion δ: δ(p, a) = p δ(p, b) = q δ(q, a) = p δ(q, b) = r δ(r, a) = r δ(r, b) = r Dabei sei p der Anfangszustand des Automaten und r der einzige Endzustand des Automaten. Die Dateien dea_simulation1.pl und dea_simulation2.pl enthalten zwei Varianten eines Prolog-Programms, das diesen deterministischen endlichen Automaten simuliert. Schauen Sie sich zunächst die Programme an und probieren Sie sie mit verschiedenen Eingabewörtern aus! Nun zeichnen Sie den Graphen, der diesen endlichen Automaten darstellt! Aufgabe 29 Welche Wörter werden von diesem endlichen Automaten akzeptiert? Geben Sie einen regulären Ausdruck an, der genau die Menge der Wörter bezeichnet, die von diesem endlichen Automaten akzeptiert werden! Aufgabe 30 Geben Sie einen deterministischen endlichen Automaten an, der genau die Wörter der Sprache von Aufgabe 24 akzeptiert! Aufgabe 31 Formulieren Sie die induktive Definition des Begriffs des regulären Ausdrucks (beamer.pdf S.104) um als Regeln eines Erzeugungssystems! Zeigen Sie, dass es zu jedem regulären Ausdruck K genau eine Menge P von regulären Ausdrücken gibt derart, dass (P, K) Instanz einer Regel dieses Erzeugungssystems ist! Zeigen Sie weiter, dass zu jedem regulären Ausdruck genau ein Herleitungsbaum existiert! Der Herleitungsbaum eines regulären Ausdrucks ist also eindeutig bestimmt. Aufgabe 32 Im Prolog-Programm nea_akz_spr.pl werden zwei Prolog-Prädikate delta (3-stellig) und endzustand (1-stellig) definiert, durch die die Übergangsrelation und die Menge F der Endzustände eines nichtdeterministischen endlichen Automaten gegeben werden. Zeichnen Sie diesen Automaten! Geben Sie einen regulären Ausdruck an, der die durch diesen Automaten erzeugte Sprache bezeichnet! Lassen Sie sich vom Prolog-Programm nacheinander die vom Automaten akzeptierten Wörter ausgeben und verifizieren Sie, dass das genau die 7
8 Wörter der von Ihrem regulären Ausdruck bezeichneten Sprache sind! Versuchen Sie zu verstehen, was das Prolog-Programm tut! Zeichnen Sie schließlich einen minimalen deterministischen endlichen Automaten, der diese Sprache akzeptiert! Aufgabe 33 Sei Σ das Alphabet {,,, } aus der Musik. Die Noten,, haben Notenwerte von jeweils 1, 2 bzw. 4 Schlägen. Das Zeichen ist der Taktstrich. Unter einem Viervierteltakt wollen wir ein Wort über dem Alphabet Σ verstehen, das aus Noten gefolgt von dem Taktstrich besteht, wobei die Summe der Notenwerte 4 Schläge beträgt. Unter einem einfachen Vierviertelrhythmus wollen wir ein Wort über Σ verstehen, das eine Konkatenation von null oder mehr Viervierteltakten ist. Ein Beispiel für einen einfachen Vierviertelrhythmus ist das Wort. Zeichnen Sie einen deterministischen endlichen Automaten, der die Menge der einfachen Vierviertelrhythmen akzeptiert! Geben Sie auch, angefangen beim Anfangszustand, nacheinander alle Zustände an, die der Automat beim Lesen des Wortes durchläuft! Aufgabe 34 Die zweistellige zahlentheoretische Funktion add: N 2 N (Additionsfunktion) ist definiert durch die Rekursionsgleichungen add(x, 0) = x add(x, y ) = add(x, y). (add1) (add2) Berechnen Sie add(0, 0 ), indem Sie diese Rekursionsgleichungen wiederholt von links nach rechts anwenden! Aufgabe 35 Beweisen Sie add(0, y) = y durch vollständige Induktion nach y! Aufgabe 36 Beweisen Sie add(x, y) = add(x, y) durch vollständige Induktion nach y! Aufgabe 37 Beweisen Sie add(x, y) = add(y, x) durch vollständige Induktion nach x! Aufgabe 38 Die zweistellige zahlentheoretische Funktion mul: N 2 N (Multiplikationsfunktion) ist definiert durch die Rekursionsgleichungen mul(x, 0) = 0 mul(x, y ) = add(mul(x, y), x). (mul1) (mul2) Berechnen Sie mul(0, 0 ), indem Sie diese Rekursionsgleichungen wiederholt von links nach rechts anwenden! Aufgabe 39 Definieren Sie in ähnlicher Weise die zweistellige zahlentheoretische Funktion pot: N 2 N (Potenzierungsfunktion) durch Rekursionsgleichungen, wobei pot(x, y) = x y ist! 8
9 Aufgabe 40 Sei die einstellige zahlentheoretische Funktion f : N N definiert durch f = (ROP 2 1 ). Berechnen Sie f(0 )! Welche Funktion ist f? Welche Funktion ist (N(NO))? Welche Funktion ist (N(Nf))? Welche Funktion ist (fp 3 1 )? Welche Funktion ist (N(N(fP 3 1 )))? Welche Funktion ist ((N(Nf))P 3 1 )? Aufgabe 41 Geben Sie die Rekursionsgleichungen für die Vorgängerfunktion V an und berechnen Sie V (0 )! Stellen Sie die Funktion V als (Rfg) dar! Aufgabe 42 Stellen Sie die Funktionen add, mul und pot jeweils in der Form (Rfg) dar! Aufgabe 43 Was ist P 3 1 (8, 4, 5)? Was ist K 3 2(8, 4, 5)? Die dreistellige zahlentheoretische Funktion f : N 3 N sei definiert durch f = (add(add(mul(mul K 3 2P 3 1 )P 3 3 )(mul K 3 3P 3 2 ))K 3 7). Was ist f(8, 4, 5) und was ist allgemein f(x 1, x 2, x 3 )? Aufgabe 44 Für eine einstellige zahlentheoretische Funktion f ist die Iteration (Itf) von f eine zweistellige zahlentheoretische Funktion, die gegeben ist durch (Itf)(x, y) = f(f(... f(f(x))... )). }{{} y mal das f (a) Definieren Sie (Itf) durch Rekursionsgleichungen. (b) Zeigen Sie, dass (Itf) primitivrekursiv ist, wenn f primitivrekursiv ist. Aufgabe 45 Sei f = (RO(add P 2 1 (NP 2 2 ))) und g = (add(f add)p 2 2 ). (a) Um welche zahlentheoretische Funktion handelt es sich bei f? (b) Um welche zahlentheoretische Funktion handelt es sich bei g? Berechnen Sie den Funktionswert von g für Argumentwerte bis 3 und tragen Sie sie in einer Tabelle ein! Ist die Funktion g injektiv? Ist sie surjektiv? Aufgabe 46 Welche der folgenden Wörter sind primitivrekursive Funktionale? Geben Sie gegebenenfalls die Stelligkeit des Funktionals an und die zahlentheoretische Funktion, die durch das Funktional bezeichnet wird! O N (OO) (ON) (NO) (NN) (NNN) ((NN)N) (P 2 2NN) (ROP 2 1) Aufgabe 47 Sei P das Primzahlprädikat, < das Kleinerprädikat und das Teilerprädikat, jeweils auf der Menge der natürlichen Zahlen. P (x) bedeute also, dass x eine Primzahl ist, < (x, y) bedeute, dass x kleiner als y ist, und (x, y) bedeute, dass x ein Teiler von y ist. Geben Sie jeweils den Wert von χ P (4), χ P (7), χ < (2, 3), χ < (7, 5), χ (3, 7) und χ (5, 15) an! Aufgabe 48 Sei n eine natürliche Zahl und seien P und Q zwei n-stellige primitivrekursive Prädikate. Zeigen Sie, dass dann die Prädikate P, P Q und P Q auch primitivrekursiv sind! 9
10 Aufgabe 49 Sei P ein (n + 1)-stelliges zahlentheoretisches Prädikat. Zeigen Sie, dass dann gilt χ ( b P ) = (Πχ P ) χ ( b P ) = (sg(σχ P )) Folgern Sie daraus, dass die Prädikate ( b P ) und ( b P ) primitivrekursiv sind, wenn das Prädikat P primitivrekursiv ist! Aufgabe 50 In Programmiersprachen kommt oft ein while-konstrukt vor. Sei P ein einstelliges zahlentheoretisches Prädikat und seien f und g zwei einstellige zahlentheoretische Funktionen. Betrachten Sie den folgenden Pseudocode. x := a; while P (x) do x := f(x); return x; Nehmen wir weiter an, wir wissen, dass die while-schleife immer terminiert und dass die Anzahl der Schleifendurchläufe g(a) ist. Dann berechnet dieser Pseudocode eine einstellige zahlentheoretische Funktion h. Zu jeder Eingabezahl a wird also eine Ausgabezahl h(a) geliefert. (a) Drücken Sie die Anzahl der Schleifendurchläufe aus durch das Prädikat P, und die Funktionen f und g mit Hilfe von Komprehension, Iteration und beschränktem µ-operator. (b) Drücken Sie die gelieferte Ausgabe x entsprechend aus. (c) Zeigen Sie, dass die von dem Pseudocode berechnete Funktion h primitivrekursiv ist, wenn die Funktionen f und g und das Prädikat P primitivrekursiv sind. Aufgabe 51 Drücken Sie das Primzahlprädikat P, das Kleinerprädikat < und das Teilerprädikat mittels Komprehension aus, wobei Sie nur Variablen, natürliche Zahlen, die Additionsfunktion, die Multiplikationsfunktion und das Gleichheitsprädikat auf natürlichen Zahlen sowie Funktions- und Prädikatsanwendung und Anwendung von,,, b, b und µ b verwenden. Aufgabe 52 Berechnen Sie (RP 1 1 (NP 3 1 ))(2, 3) durch wiederholte Anwendung der Rekursionsgleichungen! Schaun Sie sich dann das Programm primrek.pl an und geben Sie eine Prologanfrage für obige Berechnung ein! Verfolgen Sie die Berechnung durch Prolog im Trace-Modus (nicht abzugeben)! Aufgabe 53 Sei p die Petersche Funktion. Berechnen Sie p(2, 3) durch wiederholte Anwendung der Rekursionsgleichungen von links nach rechts! Schaun Sie sich bitte zu der Definition und zum Lemma auf beamer.pdf S.205 auch die Ausführungen auf skript_a.pdf ab S.70 Definition 25 bis S.73 oben an! Schaun Sie sich zur Peterschen Funktion bitte auch die Ausführungen auf skript_a.pdf S an! 10
11 Aufgabe 54 Ein Kellerspeicher ist ein Speicher für eine variable Anzahl von Daten, die man sich als übereinander gestapelt veranschaulicht. Beispiele für Speicherinhalte eines Kellerspeichers sind , und Auf dem Kellerspeicher sind folgende Operationen erlaubt: Abfrage, ob der Speicher leer ist; Hinzufügen eines weiteren Eintrags x oben auf den Stapel push(x); Entfernen des obersten Eintrags vom Stapel pop liefert diesen Eintrag als Ergebnis. In obigem Beispiel führt ein pop vom linken Bild zum mittleren und liefert 25 als Ergebnis und ein push(63) führt vom mittleren Bild zum rechten. Beschreiben Sie, wie man mit einem Kellerspeicher für natürliche Zahlen die Peter sche Funktion berechnen kann und zeigen Sie die Abfolge der Speicherinhalte für das Beispiel der Berechnung von p(2, 3)! Aufgabe 55 Ein geschachtelter Aufruf der Peter schen Funktion p der Form p(x 1, p(x 2, p(x 3,..., p(x n 2, p(x n 1, x n ))... ))) wie in Aufgabe 53 oder ein entsprechender Kellerspeicherinhalt wie in Aufgabe 54 soll kodiert werden durch eine einzige natürliche Zahl x 1, x 2, x 3,..., x n 2, x n 1, x n, n. Zeigen Sie, dass es eine einstellige primitivrekursive Funktion f gibt, sodass für jeden Schritt der Berechnung der Peter schen Funktion gemäß Aufgabe 53 oder Aufgabe 54 für die Kodierung c vor dem Berechnungsschritt und für die Kodierung d nach dem Berechnungsschritt gilt f(c) = d! Aufgabe 56 Welche Funktion ist (µp 2 1 )? Berechnen Sie diese Funktion an verschiedenen Stellen händisch und mit dem Programm mypartrek.pl! Wie verhält sich das Programm bei einer Eingabe, für die die Funktion undefiniert ist? Aufgabe 57 Sei n N. Zeigen Sie, dass die n-stellige partielle zahlentheoretische Funktion, die auf ganz N n undefiniert ist, µ-partiellrekursiv ist. Die 1-stellige partielle zahlentheoretische Funktion f sei definiert durch { x f(x) := 2, wenn x gerade ist undefiniert sonst. Zeigen Sie, dass f eine µ-partiellrekursive Funktion ist. Aufgabe 58 Seien p und f zwei einstellige partielle zahlentheoretische Funktionen. Betrachten Sie den folgenden Pseudocode. x := a; while p(x) = 0 do x := f(x); return x; (a) Drücken Sie die Anzahl der Schleifendurchläufe aus durch die Funktionen p und f mit Hilfe von Komprehension, Iteration und (unbeschränktem) µ-operator. (b) Drücken Sie die gelieferte Ausgabe x entsprechend aus. 11
12 (c) Zeigen Sie, dass die von dem Pseudocode berechnete Funktion h µ-partiellrekursiv ist, wenn die Funktionen p und f µ-partiellrekursiv sind. Aufgabe 59 Zeigen Sie, dass die Peter sche Funktion µ-rekursiv 1 ist! Aufgabe 60 Wir haben mit dem Cantor schen Diagonalverfahren eine berechenbare zahlentheoretische Funktion definiert, die nicht primitivrekursiv ist. Warum kann man nicht auf entsprechende Weise mit dem Cantor schen Diagonalverfahren eine berechenbare partielle zahlentheoretische Funktion definieren, die nicht µ-partiellrekursiv ist? Aufgabe 61 Ist jede partielle zahlentheoretische Funktion µ-partiellrekursiv? Wenn nein, dann geben Sie eine partielle zahlentheoretische Funktion an, die nicht µ-partiellrekursiv ist! Aufgabe 62 Sei f eine injektive einstellige µ-partiellrekursive Funktion. Dann ist die Umkehrfunktion f 1 von f eine einstellige µ-partiellrekursive Funktion. Beweisen Sie das für den Fall, dass f total ist! Warum ist der Beweis für nichttotale f schwieriger? Aufgabe 63 Die Additionsfunktion add ist die zweistellige primitivrekursive Funktion (RP 1 1 (NP 3 1 )). Sie ist charakterisiert durch die Rekursionsgleichungen add(x, 0) = x add(x, y ) = add(x, y). Man kann diese Gleichungen auch in der Sprache der Logik ausdrücken, indem man ein Funktionszeichen f für die Nachfolgerfunktion auf den natürlichen Zahlen und ein Prädikatszeichen A einführt, wobei A(x, y, z) bedeuten soll, dass add(x, y) = z ist: x A(x, 0, x) x y z ( A(x, y, z) A(x, f(y), f(z)) ). In Prologsyntax müssen Funktionszeichen und Prädikatszeichen klein und Variablen groß geschrieben werden. Wir schreiben also add für A, f für f, 0 für 0, X für x, Y für y und Z für z. Außerdem verwendet man in Prolog die umgekehrte Implikation (in Prolog geschrieben als :-) statt der Implikation, und die Allquantorpräfixe x, y und z werden weggelassen. Wir erhalten so das Prologprogramm add.pl: add(x,0,x). add(x,f(y),f(z)):- add(x,y,z). Starten Sie Prolog und lassen Sie dieses Programm mit der Anfrage?- add(f(f(0)),f(f(f(0))),f(f(f(f(f(0)))))). 1 d.h. µ-partiellrekursiv und total 12
13 laufen. Prolog sollte darauf mit yes (oder mit true oder etwas ähnlichem) antworten. Prolog hat soeben bewiesen, dass die in der Anfrage angegebene Formel logisch aus dem Programm folgt. Schreiben Sie die Formel, die Prolog bewiesen hat, hin. Man kann die Sache aber auch so sehen: Prolog hat bewiesen, dass das Programm zusammen mit der Negation der Anfrage logisch widersprüchlich ist. Schreiben Sie die Formel hin, die Prolog widerlegt, d.h. als logisch widersprüchlich (wir sagen auch unerfüllbar) nachgewiesen hat. Stellen Sie nun die Anfrage?- add(f(f(0)),f(f(f(0))),z). Sie sehen, dass man mit unserem Prologprogramm nicht nur nachweisen kann, dass = 5 ist, sondern auch berechnen kann, wenn man das Ergebnis 5 nicht schon vorher kennt. Aufgabe 64 Zeichnen Sie eine SLD-Widerlegung für das Prologprogramm add.pl mit der folgenden Anfrage!?- add(f(f(0)),f(f(f(0))),f(f(f(f(f(0)))))). Aufgabe 65 Zeichnen Sie eine SLD-Widerlegung für das Prologprogramm add.pl mit der folgenden Anfrage!?- add(f(f(0)),f(f(f(0))),z). Aufgabe 66 Durch die Regel ab baa wird ein sogenanntes Semi-Thue-System definiert. Die Regel bedeutet, dass man die Zeichenfolge ab durch die Zeichenfolge baa ersetzen darf. Man gibt nun eine endliche Folge von Zeichen vor, z.b. die Zeichenfolge abbb. Diese Zeichenfolge wird schrittweise verändert. In jedem Schritt wird dazu ein Teilstück der Zeichenfolge gemäß der obigen Regel ersetzt. So wird zum Beispiel im ersten Schritt das Anfangsstück ab der Zeichenfolge abbb gemäß der Regel ersetzt durch baa, sodass man insgesamt die neue Zeichenfolge baabb erhält. Im zweiten Schritt wird darin wiederum das Teilstück ab durch baa ersetzt, sodass man die neue Zeichenfolge babaab erhält. Im dritten Schritt hat man nun die Wahl zwischen zwei Möglichkeiten. Eine Ableitung schaut z.b. so aus: abbb baabb babaab bababaa... Wenden Sie die Regel bitte solange an, bis sie nicht mehr anwendbar ist. Was ist das Ergebnis? Probieren Sie auch, mit der Zeichenfolge a, mit der Zeichenfolge ab, mit der Zeichenfolge abb oder mit der Zeichenfolge abbbb zu beginnen. Welche Funktion auf der Menge der natürlichen Zahlen kann man mit Hilfe dieses Semi-Thue-Systems berechnen? Semi-Thue-Systeme bilden die Grundlage für die Chomsky-Grammatiken, zu denen wir zu einem späteren Zeitpunkt in dieser Lehrveranstaltung kommen werden. Lesen Sie das Programm semithue.pl und lassen Sie es mit der Anfrage 13
14 laufen!?- maximale_ableitungen. Kontextfreie Chomsky-Grammatiken In der Datei grammar.pdf wird ein Beispiel für eine kontextfreie Chomsky-Grammatik sowie für eine Herleitung eines terminalen Wortes (d.h. eines aus terminalen Zeichen bestehenden Wortes) in dieser Grammatik und der zugehörige Syntaxbaum gezeigt. Aufgabe 67 Sei nun eine kontextfreie Chomsky-Grammatik folgendermaßen gegeben. Die terminalen Zeichen sind a, b, c, +,,, /, ( und ). Die nichtterminalen Zeichen sind S, T und U. Das Startsymbol ist S. Die Produktionen sind die folgenden. S T S S + T S S T T U T T U T T/U U a U b U c U (S) Leiten Sie in dieser Grammatik das terminale Wort (a b c/a) c her und zeichnen Sie den zu Ihrer Herleitung gehörigen Syntaxbaum! Aufgabe 68 Finden Sie eine Herleitung der Formel F F im Frege-Hilbert- Kalkül der Vorlesung! Dabei sei F eine beliebige geschlossene Formel. Aufgabe 69 Die Funktion h: N N sei definiert durch h(x) := x 2, wenn x gerade ist, und h(x) := x 1 2, wenn x ungerade ist. h ist also die Funktion der ganzzahligen Halbierung (ganzzahlige Division durch 2). In Prolog ist die ganzzahlige Division bereits eingebaut. Aber nehmen Sie an, Sie hätten ein Prolog, das als einzige arithmetische Operation die Addition enthält. Dann kann man noch den Graphen der Funktion h in Prolog als Prädikat halb/2 definieren durch das Programm halb(x,y):- X is Y+Y. halb(x,y):- X is Y+Y+1. Man könnte dann aber nicht z.b. mit der Anfrage?- halb(7,y). 14
15 die Zahl h(7) = 3 berechnen. Prolog würde versuchen Y+Y auszurechnen, kann dies aber nicht, da es Y nicht kennt. Die einzige Möglichkeit ist, Prolog die verschiedenen möglichen Werte 0,1,2,3,... für Y durchprobieren zu lassen und jeweils mit dem Prädikat halb/2 testen zu lassen, ob z.b. h(7) = Y ist. Man kann zur schrittweisen Erzeugung (rekursiven Aufzählung) aller natürlichen Zahlen in Prolog etwa die Definition nat(0). nat(x):- nat(x1), X is X1+1. verwenden. Stellen Sie die Anfrage?- nat(x). und geben Sie nach Ihrem RE- TURN und der ersten Antwort von Prolog wiederholt einen Strichpunkt ein! Das Prolog-Prädikat nat/1 zählt nacheinander alle natürlichen Zahlen auf. Die Menge der natürlichen Zahlen ist rekursiv aufzählbar. Ergänzen Sie das Prolog-Programm halb.pl in diesem Sinne zu einem Prolog- Programm, das zu jedem x N das h(x) berechnet! Beobachten Sie (etwa durch vorheriges Einschalten des trace-modus mit?- trace.), wie Prolog nacheinander die verschiedenen Werte für Y durchprobiert! Vergewissern Sie sich, dass Sie verstanden haben, warum für jede Funktion f : N N, deren Graph entscheidbar ist, gilt: f ist berechenbar. Turing-Maschinen Eine Turingmaschine ist eine Maschine, die sich ähnlich wie ein endlicher Automat zu jedem Zeitpunkt in einem von endlich vielen Zuständen befindet. Ein Zustand S ist ausgezeichnet als der Startzustand und ein Zustand H als der Haltezustand. Eine Turingmaschine hat aber zusätzlich ein nach links und rechts unbegrenztes in gleich große Felder eingeteiltes Band. Auf jedem Feld des Bandes steht ein Zeichen aus einem gegebenen Alphabet, dem Bandalphabet. Ein Zeichen des Bandalphabetes ist das Leerzeichen, das wir mit # bezeichnen. Weiters hat die Maschine einen Schreib-Lese-Kopf, der jeweils auf einem der Felder des Bandes, dem jeweiligen Arbeitsfeld sitzt. Der Schreib-Lese-Kopf kann die folgenden Aktionen ausführen. (a) lesen, welches Zeichen auf dem Arbeitsfeld steht (b) einen Elementarbefehl ausführen Elementarbefehle sind die folgenden. (a) Ersetzung des Zeichens auf dem aktuellen Arbeitsfeld durch ein gegebenes Zeichen a des Bandalphabets. Diesen Elementarbefehl bezeichnen wir einfach mit a. (b) Verschieben des Schreib-Lese-Kopfes um ein Feld nach links. Diesen Elementarbefehl bezeichnen wir mit L. (c) Verschieben des Schreib-Lese-Kopfes um ein Feld nach rechts. Diesen Elementarbefehl bezeichnen wir mit R. Die Maschine verfügt außerdem über ein Programm, das aus Zeilen der Form p a B q 15
16 besteht. Dabei sind p und q zwei Zustände, a ist ein Zeichen des Bandalphabets und B ist ein Elementarbefehl. Für jeden Zustand p außer dem Haltezustand und für jedes Zeichen a des Bandalphabets gibt es genau eine solche Programmzeile. Am Anfang einer Berechnung durch die Turingmaschine sind alle Felder auf dem Band außer endlich vielen Feldern mit dem Leerzeichen # beschriftet. Die Maschine befindet sich dabei im Startzustand S. Eine solche Konfiguration kann man z.b. folgendermaßen bildlich darstellen.... # # a a b a # #... S Der Pfeil symbolisiert den Schreib-Lese-Kopf. Unter dem Pfeil steht der momentane Zustand der Turingmaschine. Ein Rechenschritt besteht darin, dass die Maschine das Zeichen auf dem aktuellen Arbeitsfeld, also auf dem Feld, auf dem der Schreib-Lese-Kopf im Moment sitzt, liest. Wenn zum momentanen Zeitpunkt der Zustand p ist und das Zeichen a auf dem Arbeitsfeld steht und eine Programmzeile p a B q vorhanden ist, so führt die Maschine den Elementarbefehl B aus und geht in den neuen Zustand q über. So bedeutet zum Beispiel die Programmzeile p a b q soviel wie Wenn du im Zustand p bist und das Zeichen a auf dem Arbeitsfeld liest, dann ersetze auf dem Arbeitsfeld das Zeichen a durch das Zeichen b und gehe in den neuen Zustand q über. Die Programmzeile S # R p bedeutet soviel wie Wenn du im Startzustand S bist und das Leerzeichen # auf dem Arbeitsfeld liest, dann bewege den Schreib-Lese-Kopf um ein Feld nach rechts und gehe in den neuen Zustand p über. Sobald die Maschine sich im Haltezustand befindet, hält sie an. Im Prolog-Programm turingmaschine.pl ist ein Beispiel für eine Turingmaschine gegeben. Lassen Sie das Programm laufen und schauen Sie es sich genau an! Aufgabe 70 Geben Sie die Berechnung für die Turingmaschine mit der Zustandsmenge {S, p, q, H}, dem Startzustand S, dem Haltezustand H, dem Bandalphabet {a, b, #} und den Programmzeilen S a a H S b b H S # R p p a b q p b a q p # # H q a R p q b R p q # # H 16
17 an, die mit der Konfiguration... # # a a b a # #... S startet. Was bewirkt diese Turingmaschine, wenn man sie mit einer beliebigen Startkonfiguration startet? Aufgabe 71 Denken Sie sich selbst eine Turingmaschine aus, die interessante Berechnungen durchführen kann, geben Sie die Programmzeilen dieser Turingmaschine an, beschreiben Sie, was für Berechnungen diese Turingmaschine durchführen kann und geben Sie ein Beispiel für eine solche Berechnung! Aufgabe 72 Geben Sie die Berechnung der Turingmaschine R # zur Startkonfiguration S a R q S b R q S c R q S # R q q a R q q b R q q c R q q # # H... # # a b c a c b # a # #... S an! Was bewirkt diese Turingmaschine, wenn man sie mit einer beliebigen Startkonfiguration startet? Aufgabe 73 Geben Sie die Berechnung der Turingmaschine zur Startkonfiguration S a a H S b a H S c a H S # a H... # # a b c a c b # a # #... S an! Was bewirkt diese Turingmaschine, wenn man sie mit einer beliebigen Startkonfiguration startet? Aufgabe 74 Geben Sie die Berechnung der Turingmaschine S a L H S b L H S c L H S # L H 17
18 F F zur Startkonfiguration... # # a b c a c b # a # #... S an! Was bewirkt diese Turingmaschine, wenn man sie mit einer beliebigen Startkonfiguration startet? Aufgabe 75 Geben Sie die Berechnung der Turingmaschine zur Startkonfiguration S a a H S b b H S c c H S # L q q a # H q b # H q c # H q # R H... # # a b c a c b # a # #... S an! Was bewirkt diese Turingmaschine, wenn man sie mit einer beliebigen Startkonfiguration startet? Aufgabe 76 Betrachten wir die Kongruenzabbildungen (also Drehungen und Spiegelungen), die ein gegebenes Quadrat in der Ebene auf sich selbst abbilden. Die kann man sich veranschaulichen, indem man auf das Quadrat ein Bild zeich- F net, etwa vom Buchstaben F, sodass das Quadrat dann so ausschaut:. Mit a wollen wir eine 90 -Drehung gegen den Urzeigersinn bezeichnen. Die ergibt das Bild F. Mit b wollen wir eine Spiegelung um die senkrechte Achse bezeichnen. Die ergibt aus F das Bild F. Mit ab bezeichnen wir eine Drehung a gefolgt von einer Spiegelung b, was das Bild ergibt. Allgemein wollen wir mit einem Wort a 1... a n {a, b} die Kongruenzabbildung bezeichnen, die sich durch Hintereinanderausführung der mit a 1,...,a n bezeichneten Kongruenzabbildungen ergibt. Für die Kongruenzabbildungen gelten dann die Gleichungen aaaa = e, bb = e und ba = aaab, wobei e für eine Drehung um 0 steht. In der Gruppentheorie zeigt man, dass diese Kongruenzabbildungen eine Gruppe bilden und dass e das neutrale Element dieser Gruppe ist. Zeigen Sie, dass es genau 8 solche Kongruenzabbildungen gibt, und zwar e, a, aa, aaa, b, ab, aab, aaab! Zeichnen Sie dazu die entsprechenden Bilder (z.b. für ab)! Zeigen Sie weiter, dass man in dem Semi-Thue-System mit den Regeln aaaa ɛ, bb ɛ und ba aaab aus jedem Wort a 1... a n {a, b} dasjenige der Wörter e, a, aa, aaa, b, ab, aab, aaab ableiten kann, das die Kongruenzabbildung bezeichnet, die sich durch Hintereinanderausführung der mit a 1,...,a n bezeichneten Kongruenzabbildungen ergibt! 18
Aufgaben Theoretische Informatik
Aufgaben Theoretische Informatik Elmar Eder 26. Dezember 2015 Lösungen der Aufgaben bitte abgeben auf dem Abgabesystem von Dominik Kaaser auf https://ti.cosy.sbg.ac.at/ als ASCII- oder UTF-8-Dateien mit
Rekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften
Algorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
11.1 Kontextsensitive und allgemeine Grammatiken
Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert
Theoretische Informatik Testvorbereitung Moritz Resl
Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen
Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.
Turing-Maschinen Nachdem wir endliche Automaten und (die mächtigeren) Kellerautomaten kennengelernt haben, werden wir nun ein letztes, noch mächtigeres Automatenmodell kennenlernen: Die Turing-Maschine
Theoretische Informatik 2
Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder
Berechenbarkeit und Komplexität
Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 17. DIE KONTEXTFREIEN SPRACHEN II: ABSCHLUSSEIGENSCHAFTEN, MASCHINENCHARAKTERISIERUNG, KOMPLEXITÄT Theoretische
Brückenkurs Mathematik
Brückenkurs Mathematik 6.10. - 17.10. Vorlesung 1 Logik,, Doris Bohnet Universität Hamburg - Department Mathematik Mo 6.10.2008 Zeitplan Tagesablauf: 9:15-11:45 Vorlesung Audimax I 13:00-14:30 Übung Übungsräume
8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
Theorie der Informatik
Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax
Kapitel 3. Natürliche Zahlen und vollständige Induktion
Kapitel 3 Natürliche Zahlen und vollständige Induktion In Kapitel 1 haben wir den direkten Beweis, den modus ponens, kennen gelernt, der durch die Tautologie ( A (A = B) ) = B gegeben ist Dabei war B eine
Zusammenfassung Grundzüge der Informatik 4
Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1
Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie
Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen
Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).
1 Grammatiken Autor: Tilman Blumenbach Letzte Änderung: 28. Juni 2012 18:15 Ziel von Grammatiken Wollen die Struktur von Sprachen modellieren und charakterisieren. Beispiel Ein Satz der deutschen Sprache
Ausgewählte unentscheidbare Sprachen
Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar
1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,
Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs
6 Kontextfreie Grammatiken
6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,
Rekursive Funktionen Basisfunktionen
Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P
Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für
Endliche Sprachen Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für L. 447 Zusammenfassung Beschreibungsformen für reguläre Sprachen:
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Hackenbusch und Spieltheorie
Hackenbusch und Spieltheorie Was sind Spiele? Definition. Ein Spiel besteht für uns aus zwei Spielern, Positionen oder Stellungen, in welchen sich das Spiel befinden kann (insbesondere eine besondere Startposition)
Aufgabentypen die in der Klausur vorkommen
Aufgabentypen die in der Klausur vorkommen können 1. Nennen Sie fünf wichtige Anwendungsgebiete der Computerlinguistik. 2. Für welches der drei Anwendungsgebiete Maschinelle Übersetzung, Rechtschreibkorrektur
FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie
Wiederholung FORMALE SYSTEME 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Markus Krötzsch Formale Sprachen sind in Praxis und Theorie sehr wichtig Ein Alphabet ist eine nichtleere, endliche Menge
3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:
FORMALISIERUNG VON ALGORITHMEN Wegen der beobachteten Zusammenhänge zwischen Berechnungs-, Entscheidungs- und Aufzählungsverfahren genügt es Berechnungsverfahren zu formalisieren. Weiter genügt es Verfahren
Einführung in Berechenbarkeit, Komplexität und formale Sprachen
Johannes Blömer Skript zur Vorlesung Einführung in Berechenbarkeit, Komplexität und formale Sprachen Universität Paderborn Wintersemester 2011/12 Inhaltsverzeichnis 1 Einleitung 2 1.1 Ziele der Vorlesung...................................
Vorlesung Theoretische Informatik
Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester
GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, [email protected]
GTI Hannes Diener ENC B-0123, [email protected] 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange
Was bisher geschah. Darstellung von Sprachen Ausführen von Berechnungen
Was bisher geschah Alphabet, Wort, Sprache Operationen auf Wörtern: Spiegelung R, Verkettung Palindrome Relationen zwischen Wörtern: Präfix, Infix, Postfix Wortersetzungssystem S: Regeln (l r), Ersetzungsschritt
3 Vom Zählen zur Induktion
7 3 Vom Zählen zur Induktion 3.1 Natürliche Zahlen und Induktions-Prinzip Seit unserer Kindheit kennen wir die Zahlen 1,, 3, 4, usw. Diese Zahlen gebrauchen wir zum Zählen, und sie sind uns so vertraut,
Einführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie
Automaten, Spiele, und Logik
Automaten, Spiele, und Logik Woche 2 25. April 2014 Inhalt der heutigen Vorlesung 1. Reguläre Ausdrücke 2. der Satz von Kleene 3. Brzozowski Methode 4. grep und perl Reguläre Ausdrücke Rekursive Definition,
Theoretische Informatik
Theoretische Informatik - das Quiz zur Vorlesung Teil I - Grundzüge der Logik In der Logik geht es um... (A) die Formen korrekten Folgerns (B) die Unterscheidung von wahr und falsch (C) das Finden von
Weitere Beweistechniken und aussagenlogische Modellierung
Weitere Beweistechniken und aussagenlogische Modellierung Vorlesung Logik in der Informatik, HU Berlin 2. Übungsstunde Aussagenlogische Modellierung Die Mensa versucht ständig, ihr Angebot an die Wünsche
Surjektive, injektive und bijektive Funktionen.
Kapitel 1: Aussagen, Mengen, Funktionen Surjektive, injektive und bijektive Funktionen. Definition. Sei f : M N eine Funktion. Dann heißt f surjektiv, falls die Gleichung f(x) = y für jedes y N mindestens
Hilbert-Kalkül (Einführung)
Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle
2.4 Kontextsensitive und Typ 0-Sprachen
Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik
Programmiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre
Vorlesung Einführung in die mathematische Sprache und naive Mengenlehre Allgemeines RUD26 Erwin-Schrödinger-Zentrum (ESZ) RUD25 Johann-von-Neumann-Haus Fachschaft Menge aller Studenten eines Institutes
Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.
Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ. (ii) ε ist ein regulärer Ausdruck über Σ. (iii) Für jedes a Σ ist a ein regulärer
Automaten und Formale Sprachen
Automaten und Formale Sprachen Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2011/12 WS 11/12 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken
(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)
3. Untergruppen 19 3. Untergruppen Nachdem wir nun einige grundlegende Gruppen kennengelernt haben, wollen wir in diesem Kapitel eine einfache Möglichkeit untersuchen, mit der man aus bereits bekannten
Formale Sprachen, reguläre und kontextfreie Grammatiken
Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache
abgeschlossen unter,,,, R,
Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen
Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur
äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:
3. Reguläre Sprachen Bisher wurden Automaten behandelt und Äquivalenzen zwischen den verschiedenen Automaten gezeigt. DEAs erkennen formale Sprachen. Gibt es formale Sprachen, die nicht erkannt werden?
5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56
5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten
SWP Prüfungsvorbereitung
20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c
Geometrische Objekte im 3-dimensionalen affinen Raum oder,... wie nützlich ist ein zugehöriger Vektorraum der Verschiebungen
Geometrische Objekte im -dimensionalen affinen Raum Bekanntlich versteht man unter geometrischen Objekten Punktmengen, auf die man die üblichen Mengenoperationen wie z.b.: Schnittmenge bilden: - aussagenlogisch:
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 1. ALPHABETE, WÖRTER, SPRACHEN. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2011
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2011 1. ALPHABETE, WÖRTER, SPRACHEN Theoretische Informatik (SoSe 2011) 1. Alphabete, Wörter, Sprachen 1 / 25 Vorbemerkung:
Theoretische Informatik
Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis
Empfehlenswerte Referenzen
Wenn Google etwas nicht finden kann, fragen sie Jack Bauer. ("Fakten über Jack Bauer") Inhalt Empfehlenswerte Referenzen...1 0 Wozu reguläre Ausdrücke?...1 1 Die Elemente regulärer Ausdrücke...2 2 Ein
Lösungen zur 3. Projektaufgabe TheGI1
Marco Kunze ([email protected]) WS 2001/2002 Sebastian Nowozin ([email protected]) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle
b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel
2. Turingmaschinen Zur Formalisierung von Algorithmen benutzen wir hier Turingmaschinen. Von den vielen Varianten dieses Konzeptes, die sich in der Literatur finden, greifen wir das Konzept der on-line
Sprachen/Grammatiken eine Wiederholung
Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:
a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume
Kap 3: Grammatiken Chomsky-Hierarchie 32 Kap 3: Grammatiken Kontextfreie 33 a n b n c n ist kontextsensiti Beispiel 3111 modifizieren: Σ = {a, b, c G = (Σ, V, P, X ) V = {X, Y, Z P : X ε X axyz ZY YZ ay
1 Aussagenlogik und Mengenlehre
1 Aussagenlogik und engenlehre 1.1 engenlehre Definition (Georg Cantor): nter einer enge verstehen wir jede Zusammenfassung von bestimmten wohl unterschiedenen Objekten (m) unserer Anschauung oder unseres
1 Varianten von Turingmaschinen
1 Varianten von Turingmaschinen Es gibt weitere Definitionen für Turingmaschinen. Diese haben sich aber alle als äquivalent herausgestellt. Ein wiederkehrendes Element der Vorlesung: Äquivalenz von Formalismen
Theoretische Informatik I
Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften
Übungen Mathematik I, M
Übungen Mathematik I, M Übungsblatt, Lösungen (Stoff aus Mathematik 0) 09.0.0. Kommissar K hat 3 Tatverdächtige P, Q und R. Er weiß: (a) Wenn sich Q oder R als Täter herausstellen, dann ist P unschuldig.
Halbgruppen, Gruppen, Ringe
Halbgruppen-1 Elementare Zahlentheorie Einige Bezeichnungen Halbgruppen, Gruppen, Ringe Die Menge N 0 der natürlichen Zahlen 0, 1, 2, Die Menge N = N 1 der von Null verschiedenen natürlichen Zahlen Die
Klausur Formale Systeme Fakultät für Informatik 2. Klausur zum WS 2010/2011
Fakultät für Informatik 2. Klausur zum WS 2010/2011 Prof. Dr. Bernhard Beckert 08. April 2011 Vorname: Matrikel-Nr.: Platz: Klausur-ID: **Platz** **Id** Die Bearbeitungszeit beträgt 60 Minuten. A1 (17)
Übung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013
Übung zu Grundbegriffe der Informatik Simon Wacker 15. November 2013 Vollständige Induktion über die Wortlänge Es sei B ein Alphabet. Dann ist B = n N 0 B n. Für jedes Wort w B sei A w eine Aussage, die
1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,
Grundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: [email protected]
Induktive Definitionen
Induktive Definitionen Induktive Definition: Konstruktive Methode zur Definition einer Menge M von Objekten aus Basisobjekten mittels (Erzeugungs-) Regeln Slide 1 Rekursion über den Aufbau: Konstruktive
Mathematische Grundlagen der Informatik 2
Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss [email protected] 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert
TU8 Beweismethoden. Daniela Andrade
TU8 Beweismethoden Daniela Andrade [email protected] 12.12.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;) 2
Eigenschaften regulärer Sprachen
= {} {0} {0} {} = {0} {} Für L(A) benötigen wir gemäß Gleichung.3 die Mengen R 3 und R3 3. R 3 = R R3 (R33) R3 = {0} {00} {0} {} ({ε} {0, } {0} {}) {0, } {00} = {0} {00} {0} {} ({0, } {0} {}) {0, } {00}
Übung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
1 Syntax von Programmiersprachen
1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme
Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften
Endlichkeitstest Eingabe: DFA/NFA M. Frage: Ist die von M akzeptierte Sprache endlich? Nahe liegende Beobachtung: In einem DFA/NFA, der eine unendliche Sprache akzeptiert, muss es einen Kreis geben, der
2. Vorlesung. Slide 40
2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b
Theoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010
Klausur Formale Systeme Fakultät für Informatik Name: Mustermann Vorname: Peter Matrikel-Nr.: 0000000 Klausur-ID: 0000 WS 2009/2010 Prof. Dr. Bernhard Beckert 18. Februar 2010 A1 (15) A2 (10) A3 (10) A4
Theoretische Informatik für Wirtschaftsinformatik und Lehramt
Theoretische Informatik für Wirtschaftsinformatik und Lehramt Reguläre Sprachen Priv.-Doz. Dr. Stefan Milius [email protected] Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Formale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten
6. Induktives Beweisen - Themenübersicht
6. Induktives Beweisen - Themenübersicht Ordnungsrelationen Partielle Ordnungen Quasiordnungen Totale Ordnungen Striktordnungen Ordnungen und Teilstrukturen Noethersche Induktion Anwendung: Terminierungsbeweise
Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q,
Wiederholung Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, einem Anfangszustand q 0 Q, einer Menge von Endzuständen Q E Q, einer
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Proseminar: Primzahlen 1. Vortrag Der erweiterte euklidische Algorithmus
Proseminar: Primzahlen 1. Vortrag Der erweiterte euklidische Algorithmus Max Zoller 14. April 8 1 Der klassische euklidische Algorithmus Beispiel: ggt 15, 56? 15 = 1 56 + 49 56 = 1 49 + 7 49 = 7 7 + =
7. Formale Sprachen und Grammatiken
7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)
ALP I Rekursive Funktionen
ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive
Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen
Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner [email protected] Research Institute for Symbolic Comutation (RISC) Johannes Keler University,
Sprachen und Automaten. Tino Hempel
Sprachen und Automaten 11 Tino Hempel Bisherige Automaten Automat mit Ausgabe/Mealy-Automat Akzeptor, Sprache eines Akzeptors Grenze: L = {a n b n } Kellerautomat erkennt L = {a n b n } Grenze:? T. Hempel
Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)
Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:
ist ein regulärer Ausdruck.
Dr. Sebastian Bab WiSe 12/13 Theoretische Grlagen der Informatik für TI Termin: VL 11 vom 22.11.2012 Reguläre Ausdrücke Reguläre Ausdrücke sind eine lesbarere Notation für Sprachen Denition 1 (Regulärer
