Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

(Eine Unterrichtsreihe für Q3)

Ähnliche Präsentationen


Präsentation zum Thema: "(Eine Unterrichtsreihe für Q3)"—  Präsentation transkript:

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

2 Informatik: Theoretische Informatik; Weilburg XII/11
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 Informatik: Theoretische Informatik; Weilburg XII/11

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/11 3

4 Allgemeine Lösung mit einem Algorithmus
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. Färbemöglichkeiten bei k Farben und n Ausschüssen: Prüfung der Bedingung bei jeder Färbung: Für k=3 ergibt sich damit die folgenden Anzahl von Überprüfungen: Informatik: Theoretische Informatik; Weilburg XII/11 4

5 Informatik: Theoretische Informatik; Weilburg XII/11
Zeitkomplexität Grundlage: Computer mit 1 Milliarde Rechenschritte pro Sekunde; k=3. Knoten 12 20 30 50 Laufzeit 0,03 sec 11,04 min 2,84 Jahre ca. 27 Mrd. Jahre Vergleich zwischen Polynomial- und Exponentiallaufzeit (in sec):  T(n) 20 30 40 50 100 1000 n 2*10-8 3*10-8 4*10-8 5*10-8 0, 0,000001 n2 4*10-7 9*10-7 1,6*10-6 2,5*10-6 0,00001 0,001 n5 0,0032 0,0243 0,1024 0,3125 10 2n 0,001049 1,073742 1099,512 1,2*1021 1,1*10292 Informatik: Theoretische Informatik; Weilburg XII/11 5

6 Informatik: Theoretische Informatik; Weilburg XII/11
Zeitkomplexität Selbst bei einem Rechner, der 1000mal schneller ist, würde sich das Problem nicht anders darstellen. Bespiel: Bei T(n)=2n 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 log2(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) Informatik: Theoretische Informatik; Weilburg XII/11 6

7 Informatik: Theoretische Informatik; Weilburg XII/11
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. Informatik: Theoretische Informatik; Weilburg XII/11 7

8 Informatik: Theoretische Informatik; Weilburg XII/11
P und NP- Probleme NP-Probleme haben meist folgende Eigenschaften: 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. 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. Informatik: Theoretische Informatik; Weilburg XII/11 8

9 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 = 7 + 3 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. 516 8 4 2 1 Informatik: Theoretische Informatik; Weilburg XII/11 9

10 Exkurs – wundersame Zahlen
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. 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. Die wundersamen Zahlen sind damit ein seit über 60 Jahren ungelöstes Problem aus der Zahlentheorie Informatik: Theoretische Informatik; Weilburg XII/11 10

11 Informatik: Theoretische Informatik; Weilburg XII/11
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. Informatik: Theoretische Informatik; Weilburg XII/11 11

12 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) Informatik: Theoretische Informatik; Weilburg XII/11 12

13 Abzählbar und überabzählbar
Def.: Eine Menge M ist „gleichmächtig zu IN“, wenn man die Elemente von M durchnumerieren kann: M = {m1, m2, m3, ...}. Statt ‘M ist gleichmächtig zu IN’ sagen wir auch: ‘M ist abzählbar unendlich’. Gegeben sei die Menge A ={a, b, c} Bestimmen Sie P(A). (Auch die leere Menge ist eine Teilmenge von A.) Füge der Menge A ein weiteres Element hinzu und bestimme für die so entstehende Menge A’ wiederum die Menge aller Teilmengen! Eine Menge M habe n Elemente. Wie viele Teilmengen hat M? 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. Fazit: |P(M)|=2n Informatik: Theoretische Informatik; Weilburg XII/11 13

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

15 Informatik: Theoretische Informatik; Weilburg XII/11
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 Informatik: Theoretische Informatik; Weilburg XII/11 15

16 Informatik: Theoretische Informatik; Weilburg XII/11
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 Informatik: Theoretische Informatik; Weilburg XII/11 16

17 Informatik: Theoretische Informatik; Weilburg XII/11
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“) Informatik: Theoretische Informatik; Weilburg XII/11 17

18 Informatik: Theoretische Informatik; Weilburg XII/11
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 Informatik: Theoretische Informatik; Weilburg XII/11 18

19 Informatik: Theoretische Informatik; Weilburg XII/11
Zusammenfassung Informatik: Theoretische Informatik; Weilburg XII/11 19

20 Informatik: Theoretische Informatik; Weilburg XII/11
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 Informatik: Theoretische Informatik; Weilburg XII/11 20


Herunterladen ppt "(Eine Unterrichtsreihe für Q3)"

Ähnliche Präsentationen


Google-Anzeigen