Schwierigkeit von Aufgabenstellungen

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Christian Scheideler SS 2009
Der k-d-Baum Richard Göbel.
Polynomial Root Isolation
Schnelle Matrizenoperationen von Christian Büttner
Constraint Satisfaction Problems
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
3. Kapitel: Komplexität und Komplexitätsklassen
2. Kapitel: Komplexität und Komplexitätsklassen
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Marco Barz Seminar über Algorithmen SoSe2007
Verifizieren versus Berechnen
Algorithmen und Komplexität
Einführung in 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.
Christian Schindelhauer
Spielbäume Richard Göbel.
Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Sortierverfahren Richard Göbel.
Parser für CH3-Sprachen
Motivation Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Effizienz: Indexstrukturen
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Semantik von Prolog & Unifikation
Ganzzahligkeit in LP-Modellen
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Christian Schindelhauer
The Rectilinear Steiner Tree Problem is NP-complete
FH-Hof Analyse des R-Baums - Teil 1 Richard Göbel.
Rekursion Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Praktische Grenzen der Berechenbarkeit
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
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.
Arne Vater Wintersemester 2006/ Vorlesung
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.
Das Traveling Salesman Problem (TSP)
Analyse der Laufzeit von Algorithmen
Berechenbarkeit Klaus Becker Berechenbarkeit.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Präsentation transkript:

Schwierigkeit von Aufgabenstellungen Richard Göbel

Gibt es Aufgabenstellungen die nicht lösbar sind? Fragestellungen Gibt es Aufgabenstellungen die nicht lösbar sind? Gibt es unterschiedlich schwierige Aufgabenstellungen? Schwierigkeit einer Aufgabenstellung: Laufzeit Speicherplatzverbrauch . . .

Existieren unlösbare Aufgabenstellungen? Betrachte die folgende Aufgabenstellung: Existiert ein Programm U für eine RAM, das für ein anderes Programm P einer RAM und dessen Eingabe E entscheidet, ob das Programm P mit der Eingabe E nach endlich vielen Schritten anhält (terminiert)? Ausgabe für Programm U: Programm hält (‘1’, ‘true’, ‘yes’ oder 'Ja' ) Programm hält nicht (‘0’, ‘false’, ‘no’ oder 'Nein') STOPS? : PRAM  A*  { true, false } Bezeichnung: Halteproblem

Beispiel einer Eingabe für die RAM 1 r e a d ; 2 i f t h n 3 w r i t e ; 4 n d / 1

Programm U für das Halteproblem - Analyse Annahme: es gibt ein solches Programm U Modifiziere das Programm U wie folgt: Programm U gibt „false“ aus, falls das Programm P mit Eingabe E nicht anhält Programm U läuft unendlich lang, falls das Programm P mit Eingabe E anhält (i: goto i) Starte das Programm U mit dem Programm U als Eingabe sowie dem Programm U als Daten Wie verhält sich das Programm U in diesem Fall?

Menge aller denkbaren Funktionen Wie groß ist die Menge der Funktionen? Eine Funktion ordnet jeder Zeichenkette aus A*: entweder eine Zeichenkette oder den Wert „undefiniert“ zu Eine Funktion lässt sich durch eine unendliche lange Sequenz von Zeichenketten darstellen Diese unendliche lange Zeichenkette lässt sich als reelle Zahl kodieren Wie ist die Mächtigkeit der Menge der reellen Zahlen?

Menge aller denkbaren Programme Jedes Programm besteht aus einer endlichen Menge von Anweisungen Jedes Programm lässt sich als natürliche Zahl darstellen Wie ist die Mächtigkeit der Menge der natürlichen Zahlen?

Vergleich der Mengen Die Menge der Programme bildet eine abzählbar unendliche Menge Die Menge der Funktionen bildet eine überabzählbar unendliche Menge Die Menge der Funktionen ist deutlich größer als die Menge der Programme!

Gruppen unlösbarer Probleme Entscheidungsprobleme haben ein binäres Ergebnis (true, false) Fall 1: Es gibt ein Programm das immer terminiert falls das Ergebnis „true“ ist. Fall 2: Es gibt ein Programm das immer terminiert falls das Ergebnis „false“ ist. Fall 3: Es gibt kein Programm das für einen dieser beiden Fälle terminiert Programme mit anderen Ausgaben Semientscheidbare Probleme

Beispiel für verschiedene unlösbare Probleme Hält ein Programm mit einer Eingabe an (Halteproblem)? Erfüllt ein Programm eine Bedingung für alle Ausgaben? Liefern zwei Programme dieselbe Ausgabe für jede Eingabe?

Gibt es lösbare Aufgabenstellungen, die aber trotzdem schwierig sind? Schwierige Probleme Gibt es lösbare Aufgabenstellungen, die aber trotzdem schwierig sind? Schwierig kann bedeuten: viel Speicherplatzverbrauch lange Laufzeit . . . Komplexitätsmaß

Diskussion –was wird gemessen? Laufzeit ist zum Beispiel abhängig von: der Rechnertechnologie dem Befehlssatz des Rechners weiteren Prozessen auf diesem Rechner der Menge der zu verarbeitenden Daten Zentral: Schwierigkeit des Aufgabenstellung und nicht Laufzeit eines Programms Der Aufwand wächst mindestens linear mit der Menge der zu verarbeitenden Daten!

Wähle ein Komplexitätsmaß Ansatz - Zielsetzung Wähle ein Komplexitätsmaß Analysiere das Verhältnis zwischen Menge der zu verarbeitenden Daten und dem Komplexitätsmaß Betrachte nur den qualitativen Verlauf, wie zum Beispiel: linear: O(n) quadratisch: O(n2) exponentiell: O(2n) Die Komplexität einer Aufgabenstellung ist die Komplexität des effizientesten Programm RAM als Referenzmaschine

Ober- und Untergrenze für die Komplexität einer Aufgabenstellung A: Ansatz - Methode Ober- und Untergrenze für die Komplexität einer Aufgabenstellung A: Die Komplexität eines Programms für A ist eine Obergrenze für die Komplexität von A Ein Untergrenze ergibt sich aus der Transformation von A in eine Aufgabenstellung B mit bekannter Komplexität Transformation von A in B Transformiere die Eingabe von B in A Transformiere die Ausgabe von A in B Aufwand für die Transformation muss im Verhältnis zur Komplexität der Problems B gering sein.

Aufgabenstellung – Erfüllbarkeit logischer Ausdrücke Logischer Ausdruck in konjunktiver Normalform Klauseln mit logisches UND verknüpft Jede Klausel enthält mit logischem ODER verknüpfte Literale Jedes Literal besteht aus einer Variable und optional einem logischen NICHT (l11  l12  . . .  l1n1)  (l21  l22  . . .  l1n2)  . . .  (lm1  lm2  . . .  lmnm) mit lij : xij oder xij Für welche Werte ist dieses Ausdruck erfüllt? Beschränkung auf drei Literale pro Klausel: 3SAT (l11  l12  l13)  (l21  l22  l13)  . . . (lm1  lm2  lm3)

Aufgabenstellung - Rucksackproblem Optimales Füllen eines Rucksacks Gegeben: n Gegenstände Gewichte: g1, g2, . . ., gn Nutzen: a1, a2, . . ., an Gesamtgewicht von G nicht überschreiten Finde Auswahl von Gegenständen mit maximalem Nutzen Modifiziertes Problem Gewicht G muss genau erreicht werden Nutzen wird nicht berücksichtigt

Aufgabenstellung – Problem des Handlungsreisenden Kürzeste Rundweg durch n Orte Für je zwei Orte i und j wird die Entfernung dij angegeben (nicht direkt erreichbar: ) Ergebnis ist die Reihenfolge in der die Orte zu besuchen sind

Transformation - 3SAT  mod. Rucksackproblem Erzeuge einen Gegenstand: für jede Variable für jede negierte Variable Gewicht für einen Gegenstand ist eine Dezimalzahl mit einer Stelle für jede Klause Die Stelle gibt die Anzahl an, in der dieses Literal in der zugehörigen Klausel vorkommt Ziel: Summe der Gewichte muss an jeder Stelle größer als Null sein Beispiel: (x1 x2  x3)  (x2  x3  x4)  (x1  x2  x4)

Transformation - Themen Zielgewicht muss genau eingehalten werden Definiere „hohes“ Zielgewicht . . . . . . sowie Füllgewicht . . . . . . die bei einer Summe von 1 oder größer das Zielgewicht erreichbar machen Variable und negierte Variable dürfen nicht gleichzeitig gewählt werden Führe eine weitere Stelle für jede Variable ein . . . . . . an dieser Stelle Wert 1 für zugehörige Variable . . . . . . sonst 0 . . . . . . sowie Zielgewicht hat 1 an dieser Stelle

Ergebnisse Mit diesem Ansatz konnten verschiedene Komplexitätsklassen identifiziert werden Es gibt keinen Beweis, dass zwei Klassen wirklich unterschiedliche Komplexitäten haben Es fehlen also Referenzprobleme mit bekannter Komplexität

Diskussion Eventuell existieren keine unterschiedlichen Komplexitätsklassen? Dann müssten alle Aufgabenstellungen mit linearer Komplexität lösbar sein: Sehr unwahrscheinlich! Eventuell existieren nur wenige Komplexitätsklassen? Dann würden Komplexitätsklassen ohne Aufgabenstellungen existieren: Unwahrscheinlich! Die identifizierten Komplexitätsklassen werden heute allgemein akzeptiert!

Zwei bekannte Klassen Zeitaufwand für die Lösung einer Aufgabenstellung wird durch ein Polynom begrenzt: Rechenoperation wir Addition und Subtraktion Sortieren . . . Zeitaufwand für die Lösung einer Aufgabenstellung wächst mindestens exponentiell: Rucksackproblem Problem des Handlungsreisenden Erfüllbarkeit eines booleschen Ausdrucks in konjunktiver Normalform

Nichtdeterministische Turingmaschine Mehrere Regeln sind in einem Zustand anwendbar Rechenaufwand Sequenz von Regeln welche die Aufgabenstellung löst Minimale Sequenz definiert den Rechenaufwand Diese Maschine löst zum Beispiel das 3SAT-Problem mit einem polynomialen Aufwand Lässt sich eine solche Maschine herstellen?

Klassen von Aufgabenstellungen - Begriffe P: Polynomialer Zeitaufwand auf einer deterministischen Turingmaschine NP: Polynomialer Zeitaufwand auf einer nichtdeterministischen Turingmaschine NP-Hart: Problem lässt sich auf einer deterministischen Turingmaschine nicht mit polynomialen Zeitaufwand lösen. NP-Vollständig: Problem ist NP-Hart und lässt sich auf einer nichtdeterministischen Turingmaschine mit polynomialen Aufwand lösen

Komplexitätsskala NP-Hart Exponentieller Zeitaufwand NP-Vollständig Polynomialer Zeitaufwand P Linearer Zeitaufwand

Bedeutung für die Praxis Vermeide unlösbare Probleme NP-harte Probleme Ändere ggf. die Spezifikation . . . . . . oder finde einen einfach zu lösenden Spezialfall

Merkmale schwieriger Aufgabenstellungen Unlösbare Probleme beziehen sich auf eine unendlich große Menge Die Lösung NP-harter Probleme besteht in der Regel aus einer Vielzahl von einzelnen „Entscheidungen“, wie zum Beispiel: ganze Zahlen in einem Gleichungssystem Planungsentscheidungen . . .