Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik: Theoretische Informatik; Weilburg XII/111 Automaten mit Prolog Peter G. Poloczek."—  Präsentation transkript:

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

2 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/112

3 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/113

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

5 Automaten - Einstieg Kap 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/115

6 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/116

7 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/117

8 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/118

9 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/119

10 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/1110

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

12 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/1112

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

14 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/1114

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

16 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/1116

17 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/1117

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

19 Quellen und Materialien Gerhard Röhner: Informatik mit Prolog; 3. vollständig neu überarbeitete Auflage, Frankfurt, 2007.; ISBN (Auszug Kap. 18 anbei) (als PDF anbei)http://classes.soe.ucsc.edu/cmps112/Spring03/languages/prolog/PrologIntro.pdf „How-to“: IKF-Material: Informatik: Theoretische Informatik; Weilburg XII/1119

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

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


Herunterladen ppt "Informatik: Theoretische Informatik; Weilburg XII/111 Automaten mit Prolog Peter G. Poloczek."

Ähnliche Präsentationen


Google-Anzeigen