Einführung in die Weihnachtliche Informatik

Ähnliche Dokumente
6.3 Erfüllbarkeit von Wünschen

Das SAT Problem oder Erfüllbarkeitsproblem. Formale Systeme. Teilklassen. Satz von Cook. SAT Instanz: Eine aussagenlogische Formel F For 0

Formale Systeme. Das Erfu llbarkeitsproblem. Prof. Dr. Bernhard Beckert, WS 2017/2018

Einige Grundlagen der Komplexitätstheorie

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn

Übungsblatt Nr. 5. Lösungsvorschlag

Das P=NP-Problem. Besitzen (Entscheidungs-)Probleme mit einer Nichtdeterministischen. deterministische Polynomielle Lösung?

Dank. Theoretische Informatik II. Teil VI. Vorlesung

Logik für Informatiker

Einführung Erfüllbarkeitsproblem NP-Vollständigkeit Definition von NP Was wäre, wenn Was tun? Ideen und Konzepte der Informatik.

Kapitel L:II. II. Aussagenlogik

Logik für Informatiker

Grundlagen der Künstlichen Intelligenz

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2)

NP Vollständigkeit. Patryk Mazur

Weitere NP-vollständige Probleme

NP-vollständige Probleme. Michael Budahn - Theoretische Informatik 1

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Logik für Informatiker

Logik für Informatiker

Probleme aus NP und die polynomielle Reduktion

Gliederung. 1. Einführung. 2. Polynominal Reduktion und NP-Vollständigkeit. 3. Geschichte. 4. Reale Probleme und Lösungsansetze 5.

Die Klasse NP und die polynomielle Reduktion

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Grundlagen der Informatik Kapitel 20. Harald Krottmaier Sven Havemann

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

Kochrezept für NP-Vollständigkeitsbeweise

Einführung in die Informatik 2

Übung Theoretische Grundlagen

Logik für Informatiker

Kurt Mehlhorn und Adrian Neumann Max Planck Institute for Informatics and Saarland University 1. Dezember 2013

THEORETISCHE INFORMATIK UND LOGIK

NP-Vollständigkeit des Erfüllbarkeitsproblems

Minesweeper ist NP-vollständig

Berechenbarkeit und Komplexität: Polynomielle Reduktion / NP-Vollständigkeit / Satz von Cook und Levin

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:

6.3 NP-Vollständigkeit. alle anderen Probleme in NP darauf polynomiell reduzierbar. 1 Polynomielle Reduzierbarkeit p

Logik für Informatiker

Komplexitätsklassen THEORETISCHE INFORMATIK VORGETRAGEN VON: ELIAS DROTLEFF

Wissenschaftliche Arbeitstechniken und Präsentation. NP-Vollständigkeit

Komplexitätstheorie P versus NP

Logik für Informatiker

Theoretische Grundlagen der Informatik

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Die Klassen P und NP. Formale Grundlagen der Informatik 1 Kapitel 11. Die Klassen P und NP. Die Klasse P

Algorithmische Methoden für schwere Optimierungsprobleme

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Berechenbarkeits- und Komplexitätstheorie

Polynomielle Verifizierer und NP

NP-Vollständigkeit und der Satz von Cook und Levin

Kapitel L:II. II. Aussagenlogik

Wie komme ich von hier zum Hauptbahnhof?

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

NP-Vollständigkeit einiger Zahlprobleme

Weihnacht im Himmel. Herta Kraßnitzer Stubenberg am See 191 Austria Tel.: (+43) 3176 / 8700

Informatik-Grundlagen

Theoretische Grundlagen der Informatik

Praktische Grenzen der Berechenbarkeit

Theoretische Grundlagen der Informatik

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

1. Zwischentest Formale Systeme Fakultät für Informatik WS 2009/2010

Grundlagen der Programmierung

Übungsblatt Nr. 6. Lösungsvorschlag

Überlegungen zum P-NP-Problem

subexponentielle Algorithmen (d.h. Laufzeiten wie z. B. 2 n oder

Einführung in die Informatik 2

Künstliche Intelligenz Logische Agenten & Resolution

Die Klassen P und NP. 4. Dezember / 39

Theoretische Grundlagen der Informatik

NP-Vollständigkeit. Anfang der 70er Jahre: Erfolg in der Lösung wichtiger algorithmischer Probleme. Aber viele Probleme widersetzen sich:

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reduktion. Komplexitätsklassen.

Probabilistische Pfadsuche

Nachklausur Bitte in Druckschrift leserlich ausfüllen!

Prädikatenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Normalformen und Grenzen der Prädikatenlogik 1. Stufe

abgeschlossen unter,,,, R,

Grundlagen der Theoretischen Informatik

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Die Klassen P und NP. 5. Dezember / 39

Theoretische Informatik Mitschrift

Grundlagen der Theoretischen Informatik

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 13

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen

Logik für Informatiker

Kapitel 9: Lineare Programmierung Gliederung

Zunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:

Willkommen zur Vorlesung Komplexitätstheorie

Das große O. Aufwandsklasse O(g) für g : N R + enthält alle Funktionen f : N R + mit. f(n) c g(n) für alle n n 0

VL-18: Jenseits von P und NP. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Theoretische Informatik II

Diskrete Strukturen Wiederholungsklausur

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Theoretische Grundlagen der Informatik. Vorlesung am 27. November INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.4 Aussagenlogik SAT-Solver 61. SAT-Solver

Wie man das Poissonsche Problem löst

Transkript:

Frohe Weihnachten! Einführung in die Weihnachtliche Informatik A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 1

Kathrinchens Wunschzettel Weihnachtswünsche Vor langer, langer Zeit, im Jahre 1989, als Kinder sich noch keinen Multimedia Computer von Aldi, sondern allerhöchstens einen Taschenrechner wünschten, geschah dem Weihnachtsmann etwas Seltsames. Von Kathrinchen bekam er einen Wunschzettel, der anders war, als alle Wunschzettel, die er bisher bekommen hatte. Da Kathrinchen die Adresse des Weihnachtsmannes nicht kannte, hatte sie ihre Wünsche in der ZEIT aufgeschrieben. Aber das war es nicht, was dem Weihnachtsmann Sorgen machte. Sein Problem war: Er verstand Kathrinchens Wünsche nicht! Der Weihnachtsmann wandte sich in seiner Not an Professor N. I. Claus, einen himmlischen Experten für Weihnachtliche Informatik. Der konnte ihm weiterhelfen. A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 2

Weihnachtswünsche Hier ist Kathrinchens Wunschzettel: Lieber Weihnachtsmann! Wenn ich zum Fest von Dir einen Tennisschläger bekomme, dann möchte ich kein Fernrohr haben. Und wenn Du mir ein paar tolle Jeans bringst, dann möchte ich keinen Taschenrechner bekommen. Doch bringst Du mir einen Puppenherd, dann, lieber Weihnachtsmann, wünsche ich mir dazu einen Tennisschläger und einen Dackel. Wenn Du mich nicht mit einem Taschenrechner beschenkst, dann möchte ich entweder einen Puppenherd oder einen Baukasten bekommen. Wenn Du mir aber keinen Baukasten auf den Gabentisch legst, dann bitte ich Dich, sofern ich eine Babypuppe bekommen sollte, ein Paar tolle Jeans dazuzulegen../. A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 3

Weihnachtswünsche Bringst Du mir eine Babypuppe, dann möchte ich bitte keinen Baukasten bekommen. Wenn Du mir entweder einen Tennisschläger oder einen Taschenrechner schenkst, (also genau eines von beiden), dann möchte ich, falls ich kein Fernrohr kriege, auch keinen Dackel geschenkt bekommen. Wenn Du mir meinen Wunsch, einen Taschenrechner zum Fest zu erhalten, erfüllst, dann möchte ich, sofern ich nicht ein paar tolle Jeans, wohl aber einen Dackel bekomme, keinen Baukasten zu Weihnachten haben. Und wenn Du mir keinen Puppenherd schenken magst, dann lege mir, bitte, bitte eine Babypuppe unter den Weihnachtsbaum. Mehr Wünsche habe ich nicht! Dein Kathrinchen A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 4

Erfüllbarkeit Die Erfüllbarkeit von Wünschen Professor Claus erkannte sofort, dass es sich im Fall von Kathrinchens Wunschzettel um eine Instanz des Erfüllbarkeitsproblems handelte. Er erschreckte den Weihnachtsmann mit folgender Definition Eine aussagenlogische Formel α(x 1... x n ) in n Variablen heißt erfüllbar, wenn es ein (x 1... x n ) Bool n mit α(x 1... x n ) = true gibt. Das Erfüllbarkeitsproblem (SAT) besteht darin, einen guten Algorithmus zu finden, der für jedes α = α(x 1... x n ) entscheidet, ob α erfüllbar ist.... und erklärte: Verstehen Sie, verehrter Weihnachtsmann, gefragt ist ein ω : n 0 A n Bool, das für jedes α A n dessen Erfüllbarkeit feststellt. A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 5

Erfüllbarkeit Der Weihnachtsmann verstand nicht. Er nickte aber sicherheitshalber mit gütiger Miene und fragte: Und was wünscht sich Kathrinchen nun? Um das zu ermitteln, verwandeln wir Kathrinchens Wunschzettel in eine aussagenlogische Formel. Der Professor notiert α(x 0,..., x 7 ) = (x 0 x 1 ) (x 2 x 3 ) (x 4 (x 0 x 5 )) ( x 3 (x 4 x 6 )) ( x 6 (x 7 x 2 )) (x 7 x 6 ) ((x 0 x 3 ) ( x 1 x 5 )) (x 0 ( x 2 x 5 x 6 )) ( x 4 x 7 ) mit x 0 = Tennisschläger, x 1 = Fernrohr, x 2 = tolle Jeans, x 3 = Taschenrechner, x 4 = Puppenherd, x 5 = Dackel, x 6 = Baukasten, x 7 = Babypuppe. Also, ganz einfach, jetzt müssen wir nur noch die 28 möglichen Kombinationen für die Werte der x i durchprobieren. A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 6

Erfüllbarkeit Der Professor schreibt die Formel als Java Methode: // true, wenn alle Wuensche erfuellt sind static boolean wunschzettel( boolean tennis, boolean fernrohr, boolean jeans, boolean rechner, boolean puppenherd, boolean dackel, boolean baukasten, boolean babypuppe) { return wenndann( tennis,!fernrohr ) && wenndann( jeans,!rechner ) && wenndann( puppenherd, tennis & dackel ) && wenndann(!rechner, puppenherd baukasten ) && wenndann(!baukasten, wenndann( babypuppe, jeans ) ) && wenndann( babypuppe,!baukasten ) && wenndann( tennis ^ rechner, wenndann(!fernrohr,!dackel ) ) && wenndann( tennis, wenndann(!jeans & dackel,!baukasten ) ) && wenndann(!puppenherd, babypuppe ); } // x => y static boolean wenndann( boolean x, boolean y ) { return (!x) y; } A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 7

Erfüllbarkeit Er verpackt das Ganze in eine Java Klasse namens Kathrinchen. Die hat noch zwei weitere Methoden: In der einen wird in einer achtfach (!) geschachtelten for Schleife für jede mögliche Kombination von boolean Werten der Parameter geprüft, ob der Wunschzettel dafür erfüllt ist. Die zweite Methode dient der Ausgabe. Der Professor führt dem Weihnachtsmann sein Programm vor, und jetzt versteht dieser alles! >> java Kathrinchen Kathrinchen wünscht sich: Tennisschläger Taschenrechner Puppenherd Dackel Wie schön, meint der Weihnachtsmann, dass wir Kathrinchens Wünsche nun kennen und dass ich sie erfüllen kann! A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 8

Unerfüllbare Wünsche? Alle Wünsche kann man nicht erfüllen... Der Professor für Weihnachtliche Informatik weiß: Er hat Glück gehabt (und natürlich Kathrinchen und der Weihnachtsmann auch). Das Problem SAT, von dem er eben eine Instanz gelöst hat, ist nämlich ein schwieriges Problem. Sogar ein extrem schwieriges. Sollte einmal ein Wunschzettel eintreffen, der nicht von 8, sondern vielleicht von 150 Wünschen handelt (vielleicht von einer Schulklasse?), dann sieht es mit dem Lösen zappenduster aus! Dann müsste der Computer mit der eben benutzten Methode sage und schreibe 2 150 = 1427247692705959881058285969449495136382746624 mögliche Zusammenstellungen von Geschenken auf ihre Wunschzettelkonformität hin durchprobieren. Das geht nur auf sehr speziellen Rechnern... A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 9

P, NP und der Weihnachtsmann Nikolaus-polynomielle Probleme Definition Die Menge aller auf einem irdischen Computer (mit überirdisch viel Speicherplatz) in polynomieller Laufzeit lösbaren Probleme nennt man P. Die Menge aller auf einem Nikolaus Computer in polynomieller Laufzeit lösbaren Probleme nennt man NP. Ein Nikolaus Computer ist in der Lage, immer dann, wenn er eine Entscheidung treffen muss, die richtige Entscheidung zu erraten. Man kann beweisen: Ein Problem liegt genau dann in NP, wenn man jede vermutete Lösung auf einem irdischen Computer in polynomieller Zeit verifizieren kann. A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 10

P, NP und der Weihnachtsmann Probleme α, β NP kann man nach Schwierigkeit (teil )ordnen: Wenn man mit einem Algorithmus für α auch das Problem β unter höchstens polynomiellem Zusatzaufwand lösen kann, dann gilt β poly α. Die Probleme α NP, die bzgl. dieser Ordnung maximal schwer sind, bilden die Menge NPC (Nikolaus Polynomielle Christkind Probleme). Satz (von Stephen A. Cook, 1971) Das Problem SAT liegt in NPC. Aber nur das Christkind weiß, ob SAT wirklich ein schwieriges Problem ist! Allen anderen im Himmel und auf Erden ist nämlich unbekannt, ob P NP gilt. Vielleicht kennt ja das Christkind einen polynomiellen Algorithmus für das Erfüllbarkeitsproblem... A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 11

... und ein gutes Neues Jahr! Der Weihnachtsmann und die Mitarbeiter der Vorlesung wünschen Ihnen allen Frohe Weihnachten! A. Clausing, Einführung in die Weihnachtliche Informatik, 23. 12. 2004 EWI 12