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

Slides:



Advertisements
Ähnliche Präsentationen
Seminar über Algorithmen
Advertisements

Christian Schindelhauer
Christian Schindelhauer
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Kontextfreie Grammatiken
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Einführung in Berechenbarkeit und Formale Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Universelle Turingmaschinen Eine universelle Turingmaschine.
Programmiertechniken: Zustand fungiert als „endlicher Speicher“
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Verifizieren versus Berechnen
Christian Schindelhauer
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele Beispiel 1 Konstruieren Sie für folgende Sprachen über = { a, b, c.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken III Christian Schindelhauer
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.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 28.
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.
Informatik III Christian Schindelhauer Wintersemester 2006/07
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
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.
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 Arne Vater Wintersemester 2006/07 26.
Wintersemester 2005 / Vorlesung
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
 Präsentation transkript:

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

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Das Mysterium der Turing-Maschinen Fragen über Fragen: –Gibt es ein Sondersymbol am Anfang des Bands? –Was bringt ein beidseitig unendliches Band verwenden? –Müssen wir die Turingmaschine als Übergangsdiagramm darstellen? Wenn Nein, wie dann? –Gibt es NTM mit mehreren Bändern? –Was für Tricks kann man bei DTMs verwenden? Endliches Gedächtnis Bandalphabet-Erweiterung: Marker Spuren –Tricks bei NTMs: Erst raten, dann verifizieren

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-3 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Vorab ein paar Bemerkungen Die Turing-Maschine ist eines der einfachsten Berechnungsmodelle. –deswegen verwenden wir sie. Die Turing-Maschine ist aber ein Alleskönner. Sie programmiert sich aber ausgesprochen besch....en (lies bescheiden). Die praktische Relevanz von Turing-Maschinen-Programmen ist äußerst gering. Daher: –Es wird im Rahmen dieser Vorlesung keinen Programmierkurs für TM geben. –Die TM ist ein Hilfsmittel. Mehr nicht.

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-4 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Das Sondersymbol am Anfang des Bandes Streng formal gibt es keine Möglichkeit das Anfang des Bandes ohne Sondersymbol festzustellen –Das selbe Problem haben wir auch im Keller des PDAs Aber: –Wir können jede Turing-Maschine so modifizieren, dass sie zuerst ein Symbol dort hinschreibt hierzu kann es notwendig sein die Eingabe vorher nach rechts zu verschieben. Der letzte Schritt (verschieben) ist aber nicht notwendig: –Erweitert man das Alphabet zum Alphabet = {,_} –Dann muss man nur das erste Zeichen (a,_) durch (a, ) ersetzen –Diesen Trick nennt man Erweiterung des Bandalphabets

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-5 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Was bringt ein beidseitig unendliches Band? Nicht mehr als ein einseitig unendliches Band. –siehe Tafel...

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-6 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Müssen wir die Turing-Maschine als Übergangsdiagramm darstellen? Nein, nur wenn es explizit verlangt wird. Wenn nein, wie dann? –Es reicht eine algorithmische Beschreibung, welche die Einzelschritte der Berechnung darstellt. Beispiele für Erlaubte Grundbausteine: –Kopiere Teilstring von Band 1 nach Band 2 –Laufe auf Band 2 ganz nach rechts –while, repeat until, if then else –Band 3 fungiert als Stack: Zugriff mit Push, Pop –Band 4 fungiert als Queue (Warteschlange): Zugriff Put, Get –Auf Band 5 wird der Graph als Adjazensliste gespeichert Suche Nachfolger/Vorgänger für Knoten –Auf Band 6 wird die Funktion als Wertetabelle gespeichert Achtung: –Beim Zugriff auf Knoten und Werte einer Funktion, kann das Argument länger als ein Zeichen sein: Also: Argument auf einem Extra-Band speichern Hat man dann 100 Bänder benutzt, reduziert man das Ganze mit einem Satz auf 1 Band: –Wie in der Vorlesung gezeigt, kann eine k-Band-TM mit einer 1-Band-TM dargestellt werden.

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-7 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Gibt es NTMs mit mehreren Bänder? Ja. Wurde nicht in der Vorlesung eingeführt, darf man aber benutzen. Auch hier kann man k Bänder mit einem Band ersetzen.

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-8 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Tricks bei NTM Erst raten, dann deterministisch rechnen: –Zuerst kann auf einem Zusatzband eine beliebige Folge von {0,1}- Kombinationen erzeugt werden –Diese Folge dient als Hilfsmittel um den Rest der Berechnung deterministisch durchzuführen Vorstellungen für nicht-deterministischen Übergang –Raten: Die NTM rät immer richtig (da sie alles rät) –Existenz-Quantor: Folgende Frage kann eine NTM leicht beantworten: Existiert ein x,y,z so dass F(x,y,z) gilt? Das kann die NTM nicht: Gilt für alle x,y,z: F(x,y,z)?

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie 02-9 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Endliches Gedächtnis Eine TM kann in der Zustandsmenge endliche Information speichern: –Z.B. einen Buchstaben (oder 2) –oder das Ergebnis einer Berechnung (ja/nein) Man schreibt dann: –Die TM merkt sich diesen Buchstaben im endlichen Gedächtnis und läuft auf Band 3 nach rechts bis dieser gefunden wurde oder man auf _ stößt. –Oder: Das Ergebnis dieser Berechnung wird im endlichen Gedächtnis gespeichert Achtung: –Natürlich kann man nur endlich häufig etwas im endlichen Gedächtnis speichern.

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Bandalphabet-Erweiterung Durch Aufblähen des Band-Alphabet kann man schön tricksen Marker: –Erweitere Alphabet {a,b,c} um die Buchstaben {a,b,c} –Dann hat die Bandinschrift ababac mit ababac zwei Markierungen –Man kann natürlich beliebig viele und endlich viele verschieden Marker benutzen Spuren –Erweitert man das Alphabet zu 2 dann kann man zwei Buchstaben des Alphabets in einem speichern –Dies kann man als verschiedene Spuren des Bandes interpretieren oder als Bandkompression –Dadurch braucht man nur noch halb so viel Platz –kodiert man nun zwei Schritte der Berechnung einer TM in einem Schritt durch Erweiterung der Zustandsübergänge erhält man eine Lineare Beschleunigung –Ist die Eingabe erst mal gelesen, kann man jede Turing-Maschine linear beschleunigen

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Mehr Tricks und Tipps Zusatzinformation –Man kann einer TM eine endliche Menge an Zusatzinformation kodieren Z.B. Kann eine TM die Antwort auf die Frage Gibt es unendlich viele Primpaarzwillinge? verwenden obgleich die Antwort nicht bekannt ist Verschieben und Kopieren von Bandinschriften Zähler –unäre, z.B –oder binäre, z.B. 0,1,10,11,100, etc. Hintereinanderschaltung von TMs –Man kann die Berechnung von zwei TMs hintereinander ausführen lassen wenn die erste immer hält Unterprogramme –Benutzt man ein Band als Keller (Stack), kann man wie von höheren Programmiersprachen gewohnt, Unterprogramme oder sogare rekursive Programmierung verwenden

Berechenbarkeit, Formale Sprachen, Komplexitätstheorie HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Nächsten Mittwoch ist die 2. Miniklausur Keine Anmeldung notwendig! Keine Hilfsmittel erlaubt! Bitte pünktlich erscheinen und automatisch mit Sicherheitsabstand (möglichst zwei Sitze zum Nachbarn hinsetzen) Bitte Übungsgruppe darauf notieren Klausureinsicht und Austeilung –in der jeweiligen Übungsgruppe Thema der nächsten Klausur: –Kontextfreie Sprachen und Kellerautomaten

13 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 4. Zentralübung Nächste Zentralübung: Mi Nächste Vorlesung:Mo Nächste Miniklausur:Mi