Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Christian Schindelhauer

Ähnliche Präsentationen


Präsentation zum Thema: "Christian Schindelhauer"—  Präsentation transkript:

1 Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Christian Schindelhauer

2 Kapitel I Motivation Motivation

3 Automaten und Formale Sprachen
Was kann man mit einem endlichen Speicher berechnen? Wie kann man diese Probleme charakterisieren? Was sind Automaten? Wie kann man die Grammatik einer Sprache formal fassen? Wie charakterisiert man die Komplexität einer Grammatik?

4 Berechenbarkeitstheorie: Richtig/Falsch?
Computer können alles berechnen (wenn sie genügend schnell und groß sind). Supercomputer im Kernfoschungszentrum Jülich

5 Berechenbarkeitstheorie Richtig/Falsch?
Manche Probleme kann man nur mit speziellen Programmiersprachen lösen. © Luis Guillermo

6 Berechenbarkeitstheorie Richtig/Falsch?
Durch genügend scharfes Hinsehen kann man jedes Programm verstehen.

7 Komplexitätstheorie Was ist schwieriger? Kopfrechnen Kreuzworträtsel
Schach Sokoban Puzzle © Netzhaut

8 Komplexitätstheorie Kann ein Computer die Faktorisierung einer 500-stelligen Zahl berechnen? 6 = 2  3 100 = 2  2  5  5 = ?  ?  ?  ? … ? Wenn das schwierig ist, wie schwierig ist es zu entscheiden, ob das eine Primzahl ist? Wie schwierig ist es, Koffer in einen Kofferraum zu packen?

9 Kapitel II Organisation

10 Wie erreicht man uns? Wie erreicht man mich? nach der Vorlesung
per per Telefon: siehe Webseite: in der Sprechstunde: Donnerstags Uhr oder nach Vereinbarung Wie erreicht man irgendeinen? Tutoren: -Adressen stehen auf der Web-Seite Auf der Webseite gibt es auch ein Forum, um mit Leidensgenossen Kontakt aufzunehmen

11 oder über Google: Schindelhauer Formale Sprachen Inhalt:
Webseite URL: (link) oder über Google: Schindelhauer Formale Sprachen Inhalt: Vorlesungsfolien als PPT/PDF vor der Vorlesung Übungsaufgaben Literatur Klausur Termine Forum

12 Übungsbetrieb Gruppeneinteilung über StudInfo
Anmeldung erst im Laufe der Woche möglich Siehe Web-Seite Übungsblätter: werden zu Hause gelöst werden in der Übungsgruppe besprochen Studenten stellen ihre Lösungen vor kommen mittwochs heraus können bis Montag vor der Vorlesung in die Kästen im D-Gebäude abgegeben werden werden nicht bewertet, nur korrigiert Die Miniklausuren bestehen aus Aufgaben aus vorangegangenen Übungen!

13 Miniklausuren Ziel: Vorbereitung auf die Klausur Schnelles Feedback
Kontinuierliches Lernen Ort und Zeit Mittwochs, Uhr im Audimax Viermal: Keine Voranmeldung Inhalt: Aufgaben aus der Übung Motivation: Jeder Punkt aus den Miniklausuren verbessert das Ergebnis der Endklausur, wenn die Klausur ohne diese Punkte bestanden wäre Maximale Verbesserungsmöglichkeit: Eine Notenstufe Einsicht in der jeweiligen Übung Besprechung der Lösung in der Zentralübung

14 Klausur Nach Voranmeldung durch StudInfo Anmeldeschluss: 03.02.2006
Ort und Zeit der Klausur werden noch bekanntgegeben Durchführung: Schriftliche Klausur Inhalt vergleichbar mit Miniklausuren Dauer: 3 Stunden Hilfsmittel: keine außer ein eigenhändig handbeschriebenes A4-Blatt Lehramtsstudenten erhalten eine mündliche Prüfung Mit ähnlicher Berücksichtigung der Miniklausur

15 Literatur Introduction to the Theory of Computation, von: Michael Sipser, PWS, 1997 Introduction to Automata Theory, Languages, and Computation, von: John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Addsion Wesley, 2001 (auch übersetzt: Einführung in die Automatentheorie, Formale Sprachen und Komplexität, ... , Pearson Studium, 2002) Computers and Intractability - A Guide to the Theory of NP-Completeness, von: Michael R. Garey, David S. Johnson, W.H. Freeman & Company, 1997 Theoretische Informatik, von: Christel Baier, Alexander Asteroth, Pearson Studium, 2002 Theoretische Informatik - Eine algorithmenorientierte Einführung, von: Ingo Wegener, Teubner, 1993 The Theory of Computation, von Bernard M. Moret, Pearson Education, 1998 Computational Complexity, von: Christos H. Papadimitriou, Addison-Wesley, 1994 Theoretische Informatk - kurzgefaßt, von: Uwe Schöning, Spektrum, akad. Verlag, Heidelberg, 1997 Elements of the Theory of Computation, von: Harry R. Lewis, Christos H. Papadimitriou, Prentice Hall, 1998 Theory of Computing - A Gentle Introduction, von: Efim Kinber, Carl Smith, Prentice Hall, 2001

16 Literatur Algorithmen
Algorithmen, von: Robert Sedgewick, Pearson Studium, 2002 (übersetzt aus dem Englischen, gibt es in verschiedenen Ausgaben mit Schwerpunkten in Java, C, C++) Algorithmen, von: Ellis Horowitz, Sartaj Sahni, Springer, 1981 The Design and Analysis of Computer Algorithms, von: Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman Addison Wesley, 1974 Data Structures and Algorithms, von: Alfred V. Aho, J. D. Ullman, J. E. Hopcroft, Addison Wesley, 1983 Algorithmik - Theorie und Praxis, von: Gilles Brassard, Paul Bratley, Prentice Hall, 1993 Approximation Algorithms for NP-Hard Problems, von: Dorit S. Hochbaum, Wadsworth Publishing Company, 1997 Randomized Algorithms, von: Rajeev Motwani, Prabhakar Raghavan, Cambridge University Press, 1995 The Art of Computer Programming (Vol.1-3), Donald Knuth, Addison Wesley 1997/1998 1: Fundamental Algorithms 2: Seminumerical Algorithms 3: Sorting and Searching

17 Literatur Mathematik für Informatiker
Concrete Mathematics, von: Ronald L. Graham, Donald E. Knuth, Oren Patashnik, Addison-Wesley, 1994 Diskrete Mathematik für Informatiker, von: Rod Haggarty, Pearson Studium, 2004

18 Noch ein Buch

19 StudInfo Datenbanksystem aus der FG Kastens Notwendig für
Übungseinteilung Miniklausur (Bekanntgabe der Note) Rundschreiben per Klausuranmeldung Anmeldung Adresse wird auf der Web-Seite bekanntgegeben bis Sonntag, wünschenswert

20 Was muss ich tun? Einmalig: Bei StudInfo anmelden
Montags: Vorlesung besuchen Übungslösung in Kasten einwerfen Dienstags: Vorlesung besuchen Mittwochs: Zentralübung besuchen Übungsblatt herunterladen Jede Woche: Aktiv in der Übungsgruppe mitarbeiten Viermal mittwochs: An der Miniklausur teilnehmen nämlich am , , , ohne Voranmeldung Gegen Vorlesungsende: Über StudInfo für Klausur anmelden Vorlesungsfreie Zeit: Klausur schreiben

21 Vorlesung Orientiert sich stark an Sipsers Buch
Introduction to the Theory of Computation, von: Michael Sipser, PWS, 1997 Buch für die Vorlesung nicht notwendig Gliederung Endliche Automaten Formale Sprachen Reguläre Sprachen Kontextfreie Sprachen Berechenbarkeitstheorie Komplexitätstheorie Ergänzungen Chomsky Hierarchie Approximationsalgorithmen Randomisierte Algorithmenn Skript: Es wird kein Skript zur Verfügung gestellt Folien: Können von der Web-Seite heruntergeladen werden Kurz vor (!) der Veranstaltung verfügbar

22 Kapitel III Reguläre Sprachen
Endliche Automaten

23

24 Ein einfacher Automat Lift mit zwei Stockwerken Eingaben:
Im Lift will jemand nach oben Im Lift will jemand nach unten Unten Bedarf Oben Bedarf Zwei Zustände: Lift oben Lift unten

25 Ein Beispiel

26 Startzustand q1

27 Lesen des ersten Zeichens: 0

28 Zustandsübergang zu q1

29 Lesen des 2. Zeichens: 1

30 Neuer Zustand: q2

31 3. Zeichen: 0

32 Neuer Zustand: q3

33 Lesen von “1”

34 Zustandsübergang zu q2

35 Letztes Zeichen: “1”

36 Wort “01011” wird akzeptiert

37 Automaten akzeptieren Sprachen
Ein Alphabet  besteht aus einer endlichen Menge von Zeichen, z.B. 1 = {a,b,c} 2 = {0,1}  = {0,1,x,y,z} Eine Zeichenkette (String/Wort) ist eine endliche Folge (Tupel) von Zeichen, z.B. w = abba Notation: w1=a, w2=b, w3=b, w4=a Die Länge eines Worts wird mit |w| beschrieben: |w| = 4 * bezeichnet die Menge aller Zeichenketten über Alphabet  z.B.: “abba“  {a,b}* Die leere Zeichenkette wird mit  bezeichnet. Es gilt: || = 0 Eine Menge von Zeichenketten wird als Sprache bezeichnet

38 Worte und Sprachen Worte: “010010”, “otto”, “abba” Sprachen:
{abba, bab, aa} = {, 0, 1, 00, 11, 000, 111, 0000, 1111, 00000, 11111, ...}

39 ACHTUNG, ACHTUNG !!! Verwechslungsgefahr:
Die Sprache, die aus keinem Wort besteht, ist die leere Menge:   ist kein Wort! Das leere Wort  ist keine Sprache, sondern eine Folge der Länge 0.  ist keine Sprache.  ist kein Zeichen. Es gibt Sprachen, die  beinhalten. Es gibt Sprachen, die  nicht beinhalten.

40 Komponenten des Beispielautomaten
Zustände Q = {q1, q2, q3} Alphabet  = {0,1} Übergangsfunktion: (q1,0) = q1 (q1,1) = q2 (q2,0) = q3 (q2,1) = q2 (q3,0) = q3 (q3,1) = q3 Startzustand q0 = q1 F = {q2}

41 Komponenten eines endlichen Automats (DFA - Deterministic Finite Automaton)
Definition Ein endlicher Automat wird durch die fünf Komponenten (Q, , , q0, F) beschrieben Q: Eine endliche Menge von Zuständen : Eine endliche Menge; das Alphabet : Q    Q ist die Übergangsfunktion q0  Q: ist der Startzustand F  Q: ist die Menge der akzeptierenden Zustände Später wird statt von fünf Komponenten auch von einem 5-Tupel gesprochen

42 Formale Definition der Berechnung eines endlichen Automaten (DFA)
Sei M= (Q, , , q0, F) ein endlicher Automat und w = w1 w2 ... wn eine Zeichenkette über dem Alphabet . Dann akzeptiert M das Wort w genau dann, falls es ein Folge r0 r1 ... rn von Zuständen aus Q gibt mit r0 = q0 (ri,wi+1) = ri+1, für alle i =0, ..., n-1 rn  F Wir sagen M akzeptiert die Sprache A falls A = {w | M akzeptiert w }

43 Reguläre Sprachen Definition
Eine Sprache heißt regulär, falls ein endlicher Automat sie akzeptiert. Wir schreiben auch REG für die Klasse (Menge) aller regulären Sprachen

44 Reguläre Operationen Definition
Die regulären Operationen Vereinigung, Konkatenation und Stern werden wie folgt definiert Vereinigung: Konkatenation Stern

45 Beispiel Sei ={a,b,c,d,..., z} A = {wadda, hadda} B = {du, da}
Vereinigung Konkatenation Stern

46 Vielen Dank Ende der 1. Vorlesung Nächste Vorlesung:. Di. 18. 10
Vielen Dank Ende der 1. Vorlesung Nächste Vorlesung: Di Bitte über StudInfo anmelden! Heinz Nixdorf Institut & Institut für Informatik Universität Paderborn Fürstenallee 11 33102 Paderborn Tel.: / Fax: /


Herunterladen ppt "Christian Schindelhauer"

Ähnliche Präsentationen


Google-Anzeigen