Informatik: Theoretische Informatik; Weilburg XII/11

Slides:



Advertisements
Ähnliche Präsentationen
Seminar über Algorithmen
Advertisements

Christian Schindelhauer
Programmieren in Logik
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
Institut für Informatik Abt. Intelligente Systeme
Fragedateien für „Wer wird Millionär“ selbst erstellen
Listen [mia, vincent, jules, yolanda] [mia, robber(honey_bunny), X, 2, mia] [] [mia, [vincent, jules], [butch, girlfriend(butch)]] [[], dead(zed), [2,
Kapitel 7 State-Machines/Zustandsautomaten
Grammatiken, Definitionen
Christian Schindelhauer
Parser generieren Yet Another Compiler – Compiler YACC.
HTML - Einführung Richard Göbel.
Java: Dynamische Datentypen
Parser für CH3-Sprachen
Stoyan Mutafchiev Betreuer: Ilhan, Tim
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
PGP II/08 Projekte im Informatikunterricht Ernst-Reuter-Schule 1 Oberstufengymnasium Peter G. Poloczek.
Technische Informatik I
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Programmierung 1 - Repetitorium
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
6. Zusammengesetzte Daten (Verbund)
Theoretische Informatik 2
Julien Gaugaz 7. April 2011.
32. Hessische Landestagung des MNU
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Eine Präsentation von Lena Sauter & Corinna Nawatzky
Akzeptor & Sprache.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Entwurf und Implementierung eines Scanner-Generatorsystems
Algorithmen und Datenstrukturen SS 2005
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Städtisches Gymnasium Beverungen Friedel Berlage
BURGGYMNASIUM FRIEDBERG BURGGYMNASIUM FRIEDBERG
Spracherkennung mit Automaten
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Turing-Maschine als Akzeptor.
(Eine Unterrichtsreihe für Q3)
Rechnerstrukturen 3b. Endliche Automaten.
Technische Informatik II Übung 1: Konvertieren von Zahlen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Wintersemester 2005 / Vorlesung
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
Übungsaufgabe 1: Getränkeautomat
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Programmierungssprache PERL
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
Denksportaufgaben mit Prolog lösen
 Präsentation transkript:

Informatik: Theoretische Informatik; Weilburg XII/11 Automaten mit Prolog Peter G. Poloczek Informatik: Theoretische Informatik; Weilburg XII/11

Zu Prolog: Lehrplan Informatik 1 „Im Leistungskurs lernen die Schülerinnen und Schüler mindestens eine weitere Programmiersprache mit prädikativem oder funktionalem Sprachparadigma kennen. Der Einsatz von Prolog wird durch geeignete Unterrichtsmaterialien auf dem Hessischen Bildungsserver unterstützt….“ Deklarative Programmiersprache Informatik: Theoretische Informatik; Weilburg XII/11

Zu Prolog: Lehrplan Informatik 2 Q4: Wahlthema: Prolog als Sprache der künstlichen Intelligenz „In diesem Kurs kann – sofern noch nicht an einer anderen Stelle geschehen – die Behandlung einer zweiten Programmiersprache mit einem nicht imperativen Sprachparadigma erfolgen. Prolog bietet sich als deklarative Sprache aus mehreren Gründen an…“ Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Materialien zu Prolog Auf dem Bildungsserver (http://dms.bildung.hessen.de/), genauer: http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/prolog.html Buch 12 € Es gibt eine CD dazu Auszug: herzlichen Dank an den Autor G. Röhner Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Automaten - Einstieg Kap. 18.1 und 18.2: Technische Automatik Kap. 18.3: Automaten aus der Theor.Inf. Zustandsdiagramme Syntaxdiagramme Kap. 18.4: Definition Endlicher Automat Eingabealphabet, Ausgabealphabet Zustände, Anfangszustand, Endzustand Übergangsfunktion Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Umsetzung in Prolog – 18.5 Member-Prädikat: Eingesetzt (mindestens) bei: Eingabe, Ausgabe, Zustand Beispiel: eingabe(X):- member(X, [f, h, c, l, k]). Definition von Anfags- und Endzustand: anfangszustand(0). endzustand(0). Informatik: Theoretische Informatik; Weilburg XII/11

Umsetzung in Prolog: Übergänge % uebergang(+Zustand, +Eingabe, -Ausgabe, -NeuerZustand]) uebergang(Zustand, f, -, NeuerZustand):- Zustand =< 100, NeuerZustand is Zustand + 50, !. (Hinweis: Der „Cut“ (!) verhindert die Suche nach alternativen Lösungen.) uebergang(150, f, f, 150):- !. uebergang(Zustand, h, -, NeuerZustand):- Zustand =< 50, NeuerZustand is Zustand + 100, !. Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Vorgehensweise - 1 Die angegebenen Komponenten bestimmen einen speziellen endlichen Automaten. Die Arbeitsweise hingegen ist für alle Automaten gleich. Der Automat wird in den Anfangszustand gesetzt. Dann liest er ein Zeichen, führt den durch Zustand und gelesenes Zeichen bestimmten Zustandsübergang durch und gibt dabei das Ausgabezeichen aus. Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Vorgehensweise - 2 Dies macht er solange, wie noch Eingabezeichen da sind. Wenn sich nach Abarbeitung der Eingabe der Automat in einem Endzustand befindet, so hat er die Eingabe akzeptiert. Informatik: Theoretische Informatik; Weilburg XII/11

Steuerprädikat: automat Eine Klausel startet den Automaten Eine zweite Klausel führt die Arbeitsschritte aus Mit der dritten Klausel beendet der Automat seine Arbeit Zur Vereinfachung der Eingabe setzen wir das Systemprädikat atom_chars/2 ein, das ein eingegebenes Atom in eine Liste der Zeichen zerlegt Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Präd. automat: Start automat(Eingabe):- anfangszustand(Zustand), atom_chars(Eingabe, Liste), automat(Zustand, Liste). Informatik: Theoretische Informatik; Weilburg XII/11

Präd. automat: Arbeitsschritte automat(Zustand, [Eingabe|Rest]):- uebergang(Zustand, Eingabe, Ausgabe, NeuerZustand), write(Zustand), tab(2), write(Eingabe), write(' -> '), write(Ausgabe), tab(2), writeln(NeuerZustand), automat(NeuerZustand, Rest). Informatik: Theoretische Informatik; Weilburg XII/11

Präd. automat: Ende+ Beispiel automat(Zustand, []): endzustand(Zustand). Beispielhafter Aufruf: ?- automat(ffkfhflk). Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Getränkeautomat Eingaben : 50 Ct (F), 1 € (H), Colataste (C), Limotaste (L), Korrekturtaste (K) Ausgaben: 50 Ct (F), 1 € (H), 1,50 € (G), Cola (C) Limo (L), nichts (-) Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Präd. automat: Ablauf ?- automat(ffkfhflk). 0 f -> - 50 50 f -> - 100 100 k -> h 0 50 h -> - 150 150 f -> f 150 150 l -> l 0 0 k -> - 0 true Informatik: Theoretische Informatik; Weilburg XII/11

Modellierung von Akzeptoren Bei erkennenden endlichen Automaten entfällt das Ausgabealphabet. Die Übergangsfunktion liefert zu einem Zustand und einem Eingabezeichen nur den Folgezustand. Das Argument Ausgabe fällt also weg und das Prädikat uebergang wird dreistellig: % uebergang(+Zustand, +Eingabe, -FolgeZustand) Informatik: Theoretische Informatik; Weilburg XII/11

Nützliche Systemprädikate Mit Hilfe der Systemprädikate is_alpha und is_alnum lässt sich feststellen, ob ein Buchstabe (groß oder klein) bzw. ein alphanumerisches Zeichen (Buchstabe oder Ziffer) vorliegt is_digit überprüft, ob eine Ziffer vorliegt Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Weitergehendes Kap 18.7: Erzeugte Sprache - ein Graphenproblem Kap. 18.8 Nichtdeterministischer endlicher Automat Kap. 18.9 Automaten mit ε-Übergängen Kap. 18.10 Reguläre Ausdrücke …… Kap. 18.13 Alternative Zugänge Informatik: Theoretische Informatik; Weilburg XII/11

Quellen und Materialien http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/prolog.html Gerhard Röhner: Informatik mit Prolog; 3. vollständig neu überarbeitete Auflage, Frankfurt, 2007.; ISBN 3-88327-499-2 (Auszug Kap. 18 anbei) http://classes.soe.ucsc.edu/cmps112/Spring03/languages/prolog/PrologIntro.pdf (als PDF anbei) „How-to“: http://www.cs.ucl.ac.uk/staff/mahmed/teaching/intro.html IKF-Material: http://ikf.ers1.de/wb07/Prolog%20im%20LK%20Informatik.pdf Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Vielen Dank für die Aufmerksamkeit! Informatik: Theoretische Informatik; Weilburg XII/11

Informatik: Theoretische Informatik; Weilburg XII/11 Aufgaben: Starten sie die Prolog-Umgebung und testen Sie das Programm „Getränkeautomat“ Testen Sie die drei Beispiele aus 18.13 Bauen Sie eines oder mehrere der Code-Elemente von 18.6 bis 18.9 in das System ein. Bearbeiten Sie einige der Aufgaben aus 18.16. Informatik: Theoretische Informatik; Weilburg XII/11