Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik: Theoretische Informatik; Weilburg XII/111 Berechenbarkeit (Eine Unterrichtsreihe für Q3)

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik: Theoretische Informatik; Weilburg XII/111 Berechenbarkeit (Eine Unterrichtsreihe für Q3)"—  Präsentation transkript:

1 Informatik: Theoretische Informatik; Weilburg XII/111 Berechenbarkeit (Eine Unterrichtsreihe für Q3)

2 Informatik: Theoretische Informatik; Weilburg XII/112 Gliederung Algorithmen mit exponentieller Laufzeit Vergleich von exponentieller und polynomialer Laufzeit P und NP Probleme Berechenbarkeit Beispiele und Klassifizierung Überabzählbarkeit von Problemen Grenzen der Berechenbarkeit (Halteproblem) Übungen

3 Das Abgeordnetenproblem Die Abgeordneten eines Parlaments gehören n verschiedenen Ausschüssen an. Jeder Ausschuss tagt jede Woche genau einmal. Ist ein Abgeordneter Mitglied in zwei verschiedenen Ausschüssen, so dürfen diese nicht zur gleichen Zeit stattfinden. Wir möchten wissen, ob wir mit k verschiedenen Sitzungsterminen auskommen. Lösen Sie dieses Färbungsproblem für den folgenden Graphen mit 12 Ausschüssen (Knoten): Informatik: Theoretische Informatik; Weilburg XII/113

4 Der Algorithmus geht alle Färbemöglichkeiten durch und testet dabei jede einzelne, ob die Bedingung (zwei Knoten, die verbunden sind, haben nicht dieselbe Farbe) erfüllt ist. Informatik: Theoretische Informatik; Weilburg XII/114 Allgemeine Lösung mit einem Algorithmus Für k=3 ergibt sich damit die folgenden Anzahl von Überprüfungen: Färbemöglichkeiten bei k Farben und n Ausschüssen: Prüfung der Bedingung bei jeder Färbung:

5 Informatik: Theoretische Informatik; Weilburg XII/115 Zeitkomplexität Grundlage: Computer mit 1 Milliarde Rechenschritte pro Sekunde; k=3. Knoten Laufzeit0,03 sec11,04 min2,84 Jahreca. 27 Mrd. Jahre Vergleich zwischen Polynomial- und Exponentiallaufzeit (in sec): T(n) n2* * * * , , n2n2 4* * ,6* ,5* ,000010,001 n5n5 0,00320,02430,10240, n2n 0, , , ,2* ,1*10 292

6 Informatik: Theoretische Informatik; Weilburg XII/116 Zeitkomplexität Selbst bei einem Rechner, der 1000mal schneller ist, würde sich das Problem nicht anders darstellen. Bespiel: Bei T(n)=2 n hat ein Rechner bei n= sec = 18Minuten benötigt. Welchen Umfang n bewältigt ein Rechner der 1000mal schneller ist in derselben Zeit? Der Umfang nimmt nur um log 2 (1000)  9,97 zu Ergebnis: Man unterscheidet Algorithmen bezüglich ihrer Laufzeit folgendermaßen berechenbar und durchführbar (polynomiale Laufzeit) berechenbar, aber nicht durchführbar (exponentielle Laufzeit)

7 Informatik: Theoretische Informatik; Weilburg XII/117 P und NP- Probleme Die Komplexität der Lösungsalgorithmen eignet sich gut, um die Probleme in Klassen einzuteilen. Def.: Alle Probleme, die in polynomialer Zeit mit deterministischen Algorithmen gelöst werden können heißen P-Probleme. Ein deterministischer Algorithmus ist ein Algorithmus, bei dem nach jedem Schritt genau ein weiterer folgt und das Problem nach endlich vielen Schritten gelöst ist. Def.: Ein Problem welches von einem nichtdeterministischen Algorithmus in polynomialer Zeit gelöst werden kann, heißt NP- Problem.

8 Informatik: Theoretische Informatik; Weilburg XII/118 P und NP- Probleme es sind Lösungsverfahren mit exponentiellem Aufwand bekannt ein effizienterer Algorithmus ist bislang nicht bekannt die Lösung ist durch Raten (also nichtdeterministisch) zu ermitteln Da jedes P-Problem per se auch NP ist, sind die P-Probleme zumindest eine Teilmenge von NP-Problemen. NP-Probleme haben meist folgende Eigenschaften: Eine derzeit nicht gelöstes Problem ist die Frage, ob die beiden Klassen P und NP gleich sind, oder ob die P- Probleme eine echte Teilmenge der NP-Probleme sind.

9 Informatik: Theoretische Informatik; Weilburg XII/119 Grenzen der Berechenbarkeit Lange Zeit glaubten Philosophen und Mathematiker, dass jedes mathematische Problem algorithmisch lösbar sei. Zwei mathematische Probleme im Vergleich: Eine gerade Zahl n  4 hat die Goldbach-Eigenschaft, wenn sich die Zahl als Summe zweier Primzahlen darstellen lässt. Beispiel: 10 = Man startet mit einer beliebigen Zahl. Ist die Zahl ungerade, so ist die Folgezahl das Dreifach der Zahl, erhöht um 1. Ist die Zahl gerade, so ist die Folgezahl die Hälfte dieser Zahl. Die Startzahl heißt wundersam, falls die Folge irgendwann auf die 1 stößt. Beispiel: 5  16  8  4  2  1

10 Informatik: Theoretische Informatik; Weilburg XII/1110 Exkurs – wundersame Zahlen Wenn man den Algorithmus mit beliebig großen Zahlen ausprobiert, stellt man fest, dass er eine wild aussehenden Zahlenfolge durchlaufen kann, die erstaunlich hohe Werte annimmt und unvorhersehbar schwankt. Dabei wurde nie eine Periodizität festgestellt, mit der man eine Eingabe als nichtwundersam identifizieren könnte. Algorithmus für wundersame Zahlen: 1. Solange x  1 mache folgendes 1.1 falls x gerade ist, setze x  x/2 1.2 falls x ungerade ist, setze x  3x+1 2. halte an. Die wundersamen Zahlen sind damit ein seit über 60 Jahren ungelöstes Problem aus der Zahlentheorie

11 Informatik: Theoretische Informatik; Weilburg XII/1111 Entscheidbarkeit Def.: Ein Problem ist eine Funktion f: IN  IN In unseren Beispielen wäre f eine Funktion mit der Wertemenge {0,1}. 1 bedeutet, dass die Zahl die jeweilige Eigenschaft hat; 0, dass die Funktion die Eigenschaft nicht hat. Ein solches Problem heißt auch Entscheidungsproblem. Im Fall des Goldbachproblems gibt es einen Algorithmus, der feststellt, ob eine Zahl die Goldbacheigenschaft hat oder aber nicht. Das Goldbachproblem ist damit entscheidbar. Im Fall der wundersamen Zahl gibt es bis jetzt nur einen Algorithmus, der bei wundersamen Zahlen zur Ausgabe 1 kommt. Gibt man eine unwundersame Zahl ein, kommt der Algorithmus zu keinem Ende. Das Problem der wundersamen Zahlen ist damit semi- entscheidbar.

12 Informatik: Theoretische Informatik; Weilburg XII/1112 Gibt es mehr Probleme als Programme? Für die Lösung eines Problems muss der Funktionswert berechnet werden, dazu benötigt man einen Algorithmus. Der Algorithmus besteht aus Buchstaben, Zahlen und Sonderzeichen, diese sind letztendlich eine Folge aus 0 und 1, also ist ein Programm eine Zahl aus IN. Somit gibt es nur so viele Programme wie Zahlen in IN. Wie viele Probleme, d.h. wie viele Funktionen f: IN  IN gibt es? Da allein der Definitionsbereich eine Teilmenge von IN ist, gibt es mindestens so viele Funktionen wie Teilmengen von IN. Def.: Die Menge aller Teilmengen von M heißt die Potenzmenge P(M)

13 Informatik: Theoretische Informatik; Weilburg XII/1113 Abzählbar und überabzählbar Def.: Eine Menge M ist „gleichmächtig zu IN“, wenn man die Elemente von M durchnumerieren kann: M = {m 1, m 2, m 3,...}. Statt ‘M ist gleichmächtig zu IN’ sagen wir auch: ‘M ist abzählbar unendlich’. Gegeben sei die Menge A ={a, b, c} a)Bestimmen Sie P(A). (Auch die leere Menge ist eine Teilmenge von A.) b)Füge der Menge A ein weiteres Element hinzu und bestimme für die so entstehende Menge A’ wiederum die Menge aller Teilmengen! c)Eine Menge M habe n Elemente. Wie viele Teilmengen hat M? Fazit: |P(M)|=2 n Lösung: P(A)={ {}, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}} |P(A)|=8 fügt man ein Element d hinzu, verdoppelt sich die Anzahl der Elemente.

14 Informatik: Theoretische Informatik; Weilburg XII/1114 Beweis durch Widerspruch Annahme: P(IN) ist abzählbar unendlich Satz: P(N) ist nicht abzählbar unendlich. Man kann die Teilmengen von IN durchnumerieren P(IN) = {T 1, T 2, T 3,...} Die Nummer i einer Teilmenge kann nun als Zahl in der Teilmenge T i vorkommen oder nicht. Fassen wir alle Zahlen zusammen, die in ihrer entsprechenden Teilmenge nicht enthalten sind: D = {i  IN: i  T i }. D ist eine Zahlenmenge, also D  IN. Damit muss D eine der Teilmengen T sein, z.B. sei D = T n. Was ist nun mit der Zahl n? Ist n  D, so ist n  T n. Folgt: D  T n. Ist n  D, so ist n  T n. Folgt: D  T n Beides steht im Widerspruch zu D = T n. Die Annahme ist demnach falsch. Resultat: Die Potenzmenge der natürlichen Zahlen ist nicht abzählbar

15 Informatik: Theoretische Informatik; Weilburg XII/1115 Fazit Die Menge aller Programme ist eine unendliche Teilmenge von IN, also abzählbar. Die Menge aller Probleme ist mindestens so groß wie die Potenzmenge von IN, also nicht abzählbar. Es gibt mehr Probleme als Programme. Die Menge der Algorithmen reicht nicht aus, um jede Funktion zu berechnen. Es gibt also nichtberechenbare Funktionen bzw. unlösbare Probleme Ein typisches algorithmisch unlösbares Problem ist das Halteproblem

16 Informatik: Theoretische Informatik; Weilburg XII/1116 Das Halteproblem Hinter dem Halteproblem verbirgt sich die Frage, ob ein Algorithmus formuliert werden kann, der für ein gegebenes beliebiges Programm mit einer gegebenen Eingabe überprüft, ob dieses Programm terminiert oder nicht. Die Problematik des Halteproblems ist den Schülern seit dem Umgang mit while-Schleifen oder Rekursion vertraut. Turing hat 1936 bewiesen, dass ein solcher Algorithmus nicht existiert

17 Informatik: Theoretische Informatik; Weilburg XII/1117 Das Halteproblem Das Problem ist eine Funktion f: IN  IN mit Angenommen es gebe einen Algorithmus, der imstande wäre f(P) zu berechnen und würde damit einer Variablen endlos den Wert true oder false zuweisen: Haelt(P, x) //weise nach Test endlos den Wert true oder false zu wenn endlos=true dann Ausgabe(„Das Progamm enthält eine Endlosschleife“) sonst Ausgabe(„Das Progamm enthält keine Endlosschleife“)

18 Informatik: Theoretische Informatik; Weilburg XII/1118 Das Halteproblem Das Programm Haelt kann man jetzt ein klein wenig verändern: Seltsam(P, x) //weise nach Test endlos den Wert true oder false zu wenn endlos=true dann Gebeaus(„Das Progamm enthält eine Endlosschleife“) sonst Gebeaus(„Das Progamm enthält keine Endlosschleife“) und solange 1==1 führe aus keine Aktion Der Unterschied zwischen den beiden Programmen ist lediglich die eingebaute Endlosschleife. Wendet man nun Seltsam auf Seltsam an. Was kann passieren? 1. Angenommen Seltsam terminiert  endlos = false  das Programm geht in eine Endlosschleife. 2. Angenommen Seltsam terminiert nicht  endlos = true  Ausgabe „Das Progamm terminiert nicht“ und das Programm stoppt Wir erhalten also jeweils einen Widerspruch  Es gibt keinen Algorithmus Haelt

19 Informatik: Theoretische Informatik; Weilburg XII/1119 Zusammenfassung

20 Informatik: Theoretische Informatik; Weilburg XII/1120 Quellen: Battenfeld u.a.: Theoretische Informatik – Planung eines Kurses in der Jahrgangsstufe 13I, 1996 David Harel: Das Affenpuzzle und weitere bad news aus der Computerwelt, 2002 Duden: Informatik Abitur – Basiswissen Schule, 2003 Niedermeier, Rolf u.a.: Das Knotenüberdeckungsproblem, Log in 146/147, S53ff Steinert, Markus: Grenzen der Berechenbarkeit, Log in 168 S.42ff Schwill, Andreas: Praktisch unlösbare Probleme, Log in 14, S. 16ff Hromkovic, Juraj: Sieben Wunder der Informatik, 2006


Herunterladen ppt "Informatik: Theoretische Informatik; Weilburg XII/111 Berechenbarkeit (Eine Unterrichtsreihe für Q3)"

Ähnliche Präsentationen


Google-Anzeigen