Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.

Ähnliche Präsentationen


Präsentation zum Thema: "1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester."—  Präsentation transkript:

1 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Christian Schindelhauer

2 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Kapitel I Motivation Motivation

3 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-3 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-4 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Berechenbarkeitstheorie: Richtig/Falsch? –Computer können alles berechnen (wenn sie genügend schnell und groß sind). Supercomputer im Kernfoschungszentrum Jülich

5 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-5 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Berechenbarkeitstheorie Richtig/Falsch? Manche Probleme kann man nur mit speziellen Programmiersprachen lösen. –© Luis Guillermo

6 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-6 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Berechenbarkeitstheorie Richtig/Falsch? Durch genügend scharfes Hinsehen kann man jedes Programm verstehen.

7 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-7 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Komplexitätstheorie Was ist schwieriger? –Kopfrechnen –Kreuzworträtsel –Schach –Sokoban –Puzzle © Netzhaut

8 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-8 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Komplexitätstheorie Kann ein Computer die Faktorisierung einer 500-stelligen Zahl berechnen? –6 = 2 3 –100 = – = ? ? ? ? … ? 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 01-9 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Kapitel II Organisation Organisation

10 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Wie erreicht man uns? 1.Wie erreicht man mich? –nach der Vorlesung –per –per Telefon: –siehe Webseite: –in der Sprechstunde: Donnerstags Uhr oder nach Vereinbarung 2.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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Webseite URL: –http://www.upb.de/cs/ag-madh/WWW/Teaching/2005WS/EinfKomplex/ (link)link –oder über Google: Schindelhauer Formale Sprachen Inhalt: –Vorlesungsfolien als PPT/PDF vor der Vorlesung –Übungsaufgaben –Literatur –Klausur –Termine –Forum

12 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Ü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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Klausur Nach Voranmeldung durch StudInfo –Anmeldeschluss: 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Noch ein Buch

19 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Kapitel III Reguläre Sprachen Endliche Automaten

23 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer

24 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Ein Beispiel

26 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Startzustand q 1

27 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lesen des ersten Zeichens: 0

28 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zustandsübergang zu q 1

29 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lesen des 2. Zeichens: 1

30 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Neuer Zustand: q 2

31 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 3. Zeichen: 0

32 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Neuer Zustand: q 3

33 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lesen von 1

34 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zustandsübergang zu q 2

35 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Letztes Zeichen: 1

36 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Wort wird akzeptiert

37 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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: w 1 =a, w 2 =b, w 3 =b, w 4 =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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Worte und Sprachen Worte: –010010, otto, abba Sprachen: –{abba, bab, aa} – = {, 0, 1, 00, 11, 000, 111, 0000, 1111, 00000, 11111,...}

39 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Komponenten des Beispielautomaten 1.Zustände Q = {q 1, q 2, q 3 } 2.Alphabet = {0,1} 3.Übergangsfunktion: (q 1,0) = q 1 (q 1,1) = q 2 (q 2,0) = q 3 (q 2,1) = q 2 (q 3,0) = q 3 (q 3,1) = q 3 4.Startzustand q 0 = q 1 5. F = {q 2 }

41 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Komponenten eines endlichen Automats (DFA - Deterministic Finite Automaton) Definition –Ein endlicher Automat wird durch die fünf Komponenten (Q,,, q 0, F) beschrieben 1.Q: Eine endliche Menge von Zuständen 2. : Eine endliche Menge; das Alphabet 3. : Q Q ist die Übergangsfunktion 4.q 0 Q: ist der Startzustand 5. F Q: ist die Menge der akzeptierenden Zustände Später wird statt von fünf Komponenten auch von einem 5-Tupel gesprochen

42 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Formale Definition der Berechnung eines endlichen Automaten (DFA) Definition –Sei M= (Q,,, q 0, F) ein endlicher Automat und w = w 1 w 2... w n eine Zeichenkette über dem Alphabet. Dann akzeptiert M das Wort w genau dann, falls es ein Folge r 0 r 1... r n von Zuständen aus Q gibt mit 1.r 0 = q 0 2. (r i,w i+1 ) = r i+1, für alle i =0,..., n-1 3.r n F –Wir sagen M akzeptiert die Sprache A falls A = {w | M akzeptiert w }

43 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer 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 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Reguläre Operationen Definition –Die regulären Operationen Vereinigung, Konkatenation und Stern werden wie folgt definiert 1.Vereinigung: 2.Konkatenation 3.Stern

45 Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Beispiel Sei ={a,b,c,d,..., z} –A = {wadda, hadda} –B = {du, da} Vereinigung Konkatenation Stern

46 46 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Heinz Nixdorf Institut & Institut für Informatik Universität Paderborn Fürstenallee Paderborn Tel.: / Fax: / Vielen Dank Ende der 1. Vorlesung Nächste Vorlesung: Di Bitte über StudInfo anmelden!


Herunterladen ppt "1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester."

Ähnliche Präsentationen


Google-Anzeigen