High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Christian Schindelhauer
Schwierigkeit von Aufgabenstellungen
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Kontextfreie Grammatiken
3. Kapitel: Komplexität und Komplexitätsklassen
2. Kapitel: Komplexität und Komplexitätsklassen
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
Algorithmen und Komplexität
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Einführung in Algorithmen und Komplexität
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
Christian Schindelhauer
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
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
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.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Algorithmen und Komplexität
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
Effiziente Algorithmen
Chromatische Zahl.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
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
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
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.
Arne Vater Wintersemester 2006/ Vorlesung
Das Traveling Salesman Problem (TSP)
Wintersemester 2005 / Vorlesung
 Präsentation transkript:

High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Algorithmen und Komplexität SS2004

Friedhelm Meyer auf der Heide 2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Was haben wir bisher gemacht? -Rechenmodell: Turingmaschine -Entscheidbare, rekursiv aufzählbare Sprachen, berechenbare Funktionen -Nicht entscheidbare, nicht rekursiv aufzählbare Sprachen -Grammatiken -Reguläre Grammatiken und endliche Automaten -Kontextfrei Grammatiken und Kellerautomaten

Friedhelm Meyer auf der Heide 3 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität -Wieviele Ressourcen (Zeit, Speicherplatz) sind notwendig, um eine (berechenbare) Funktion auszuwerten / eine (entscheidbare) Sprache zu entscheiden? - Obere Schranken (Zeit t(n) reicht für Eingabe der Länge n aus) Algorithmenentwicklung und –analyse DuA - Untere Schranke (Jeder Algo für dieses Problem benötigt mindestens Zeit t(n)) Komplexitätstheorie

Friedhelm Meyer auf der Heide 4 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Ziele der Vorlesung -Vorstellung eines der wichtigsten Konzepte der Komplexitätstheorie: NP-Vollständigkeit. - Wir werden sehen: - NP-vollständige Probleme haben sehr große worst-case Laufzeit (falls ) - viele wichtigen (Optimierungs-) Probleme sind NP-vollständig -Aber: NP-vollständige Probleme sind überall: Wie gehen wir mit ihnen um? - Heuristiken - Approximationsalgorithmen

Friedhelm Meyer auf der Heide 5 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiele: Problem 1: Minimaler Spannbaum: Eingabe: Graph G = (V,E), Kantengewichte c : E Gesucht: Ein minimaler Spannbaum in G Problem 2: Problem des Handlungsreisenden (Traveling Salesman Problem, TSP) Eingabe: - wie oben – Gesucht: Ein Kreis in G, der alle Knoten enthält und minimale Länge hat. Problem 1 kann effizient gelöst werden, Zeit Problem 2 ist NP-vollständig!

Friedhelm Meyer auf der Heide 6 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Wie können wir TSP lösen? Nicht alle Anwendungen verlangen gute worst-case Laufzeit und optimale Lösungen! Heuristiken entwickeln, die für sehr viele Eingaben schnell eine optimale oder zumindest gute Lösung finden. Approximationsalgorithmen entwickeln, die immer schnell sind, und immer eine Lösung liefert, deren Güte beweisbar nahe bei der optimalen Güte ist.

Friedhelm Meyer auf der Heide 7 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Komplexitätsmaße T M (x) = Anzahl Schritte, die Turingmaschine M gestartet mit Eingabe x ausführt S M (x) = Anzahl Speicherzellen, die M bei Rechnung gestartet mit x besucht T M (n) = max{T M (x), |x|· n} (worst case Laufzeit) M hat Laufzeit O(t(n)) (M ist O(t(n) zeitbeschränkt), falls T M (n) = O(t(n)) gilt.

Friedhelm Meyer auf der Heide 8 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einschub: Spurentechnik M sei 2-Band TM, die auf Band 2 höchstens s(n) Platz benötigt. Dann kann M durch eine 1-Band TM simuliert werden, die Zeit O(T M (n) ¢ s(n)) benötigt.

Friedhelm Meyer auf der Heide 9 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einschub: Kellerautomaten

Friedhelm Meyer auf der Heide 10 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Kellerautomaten (Push Down Automata, PDAs) sind nichtdeterministische endliche Automaten, die über einen Speicher verfügen, der als Stack (Stapel, Keller) organisiert ist. D.h.: in jedem Schritt darf der PDA Elemente vom Stack entfernen (nur von oben!) und neue Elemente auf den Stack legen (POP und PUSH).

Friedhelm Meyer auf der Heide 11 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Kellerautomaten

Friedhelm Meyer auf der Heide 12 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Kellerautomaten

Friedhelm Meyer auf der Heide 13 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Kellerautomaten

Friedhelm Meyer auf der Heide 14 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Ein Beispiel PDA für L = {0 n 1 n | n¸ 1} 1.Lege $ auf (leeren) Stack 2.Solange 0 gelesen wird: lege Null auf Stack (PUSH) 3.Solange 1 gelesen wird: streiche NULL vom Stack (POP) falls keine NULL mehr da ist, oder eine 0 nach einer 1 gelesen wird: verwerfe 4. Akzeptiere, falls am Ende des Wortes nur $ auf dem Stack liegt.

Friedhelm Meyer auf der Heide 15 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Kellerautomaten und kontextfreie Sprachen Satz: L ist kontextfrei genau dann, wenn es einen PDA gilt der L akzeptiert.

Friedhelm Meyer auf der Heide 16 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einschub Ende

Friedhelm Meyer auf der Heide 17 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Komplexitätsklassen t : N ! N sei monoton wachsend. DTIME(t(n)) = { L | L kann von einer TM in Zeit O(t(n)) entschieden werden} P = k ¸ 0 DTIME(n k ) P ist die Klasse der Spachen, die von einer deterministischen TM in polynomieller Zeit entschieden werden können. P ist robust : z. B ergibt sich die gleiche Klasse, wenn wir TMs durch Registermachinen oder Java-Programme ersetzen.

Friedhelm Meyer auf der Heide 18 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Über die Klasse P -Minimaler Spannbaum - -Sei mittels Reduktionsfunktion f, die in polynomieller Zeit berechenbar ist, so ist auch ( ist polynomiell reduzierbar auf L)

Friedhelm Meyer auf der Heide 19 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Bemerkungen zu Minimalen Spannbäumen Eingabe: G, c, k muss über endlichen Alphabet beschrieben werden. z.B.: durch Matrix A, mit Einträgen Dabei wird c(i,j) in Binärdarstellung beschrieben, ist ein Sonderzeichen in. -Laufzeit laut DuA (Kruskal Algo): Aber: Dort waren Eingaben ganze Zahlen (kein endliches Alphabet) und Operationen (Kosten 1) konnten ganze Zahlen manipulieren! Hier: Eingabe über endlichen Alphabet (z.B. Eingabegröße Operation im Kruskal-Algo dauerte Zeit Beachte: Laufzeit bleibt polynomiell! P ist robuste Komplexitätsklasse!

Friedhelm Meyer auf der Heide 20 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Laufzeiten

Friedhelm Meyer auf der Heide 21 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Laufzeiten

Friedhelm Meyer auf der Heide 22 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Über die Klasse P Jede Mehrband-TM mit Laufzeit t(n) kann durch 1-Band-TM mit Laufzeit O(t(n)²) simuliert werden. Jede RAM mit Laufzeit t(n) kann durch 1-Band-TM mit Laufzeit O(t(n) 3 ) simuliert werden. Jede 1-Band-TM mit Laufzeit t(n) kann durch RAM mit Laufzeit O(t(n)) simuliert werden. P ist robust!

Friedhelm Meyer auf der Heide 23 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sprachen in P -MST: Eingabe: (G, c, k); entscheide, ob der gewichtete Graph (G,c) einen Spannbaum mit Gewicht · k enthält. -Path: Eingabe: (G, s, t); entscheide, ob im gerichteten Graphen G ein gerichteter Weg von s nach t existiert. -Rel_Prim: Eingabe: (x, y) 2 ; entscheide ob x and y relativ prim sind. -Matching: Eingabe (G, c, k); entscheide, ob der gewichtete Graph (G, c) ein Matching mit Gewicht ¸ k enthält.