Praktische Grenzen der Berechenbarkeit - Informatik
Praktische Grenzen der Berechenbarkeit - Informatik Praktische Grenzen der Berechenbarkeit - Informatik
Dabei bezeichnet ggt(n, a) den größten gemeinsamen Teiler und J(a, n) die Jacobifunktion, die wie folgt rekursiv definiert ist: ⎧ 1 falls a = 1 ⎪⎨ J J(a, n) = ⎪⎩ a 2 , n falls a mod 2 = 0 und n2−1 8 mod 2 = 0 −J a 2 , n falls a mod 2 = 0 und n2−1 8 mod 2 = 0 J(n mod a, a) falls a mod 2 = 0 und (a−1)·(n−1) 4 mod 2 = 0 −J(n mod a, a) falls a mod 2 = 0 und (a−1)·(n−1) 4 mod 2 = 0 . Ist n jedoch keine Primzahl, so ist für mindestens die Hälfte der möglichen Werte für a mindestens eine der beiden Bedingungen nicht erfüllt. Daraus lässt sich der in Abbildung 21 angegebene Algorithmus konstruieren, der eine ungerade natürliche Zahl n daraufhin testet, ob sie eine Primzahl ist oder nicht. Ist n eine Primzahl, so erkennt der Algorithmus dies immer korrekt. Ist n keine Primzahl, so erkennt er das manchmal nicht. Die Wahrscheinlichkeit für ein falsches Ergebnis beträgt 1 2x. Für x = 20 ist das bereits weniger als ein Millionstel. Die Zuverlässigkeit des Algorithmus kann über den Parameter x also beliebig erhöht werden — allerdings zu Lasten der Laufzeit. Algorithmus Prim (Gegeben: eine ungerade natürliche Zahl n und eine natürliche Zahl x) begin i←1 prim←true while i≤x and prim=true do a←random(n) if ggt(a,n)= 1 or a^((n-1)/2) mod n=J(a,n) then prim←false i←i+1 if prim=true then Ausgabe: n ist Primzahl else Ausgabe: n ist keine Primzahl end Abbildung 21: Probabilistischer Algorithmus Prim Dieser letzte Abschnitt hat gezeigt, dass es oft Wege gibt, mit NP–vollständigen Problemen in der Praxis fertig zu werden. Andererseits kann für viele NP– vollständige Probleme bewiesen werden, dass es unmöglich ist, eine akzeptable Näherungslösung zu finden — es sei denn, es gilt P = NP. 38
Literatur — Dewdney A. K.: The (new) Turing Omnibus. New York: Henry Holt and Company 2001 — Engelmann L. (Hrsg.): Kleiner Leitfaden Informatik und ihre Anwendungen. Berlin: Paetec, Ges. für Bildung und Technik 2000 — Gasper F., Leiß I., Spengler M., Stimm H.: Technische und theoretische Informatik. München: Bayerischer Schulbuch-Verlag 1992 — Goldschlager L., Lister A.: Informatik: eine moderne Einführung. München, Wien: Carl Hanser Verlag 1990 — Gumm H.-P., Sommer M.: Einführung in die Informatik. München: Oldenbourg Wissenschaftsverlag 2002 — Knuth D. E.: The Art of Computer Programming, 2. Ed., Vol. 1/Fundamental Algorithms. Reading (Mass.): Addison-Wesley Publishing Company 1973 — Knuth D. E.: The Art of Computer Programming, 2. Ed., Vol. 2/Seminumerical Algorithms. Reading (Mass.): Addison-Wesley Publishing Company 1981 — Knuth D. E.: The Art of Computer Programming, Vol. 3/Sorting And Searching. Reading (Mass.): Addison-Wesley Publishing Company 1973a — Mayr U.: Komplexität/NP–vollständige Probleme. Skript zum SIL-Kurs Informatik VI, ohne Datum — Rechenberg P.: Was ist Informatik? München, Wien: Carl Hanser Verlag 2000 — Schöning U.: Theoretische Informatik – kurzgefasst. Heidelberg, Berlin: Spektrum Akademischer Verlag 2001 — Socher R.: Theoretische Grundlagen der Informatik. München, Wien: Fachbuchverlag Leipzig im Carl Hanser Verlag 2003 39
- Seite 1 und 2: Praktische Grenzen der Berechenbark
- Seite 3 und 4: Tag Kurs GuV Tag Kurs GuV 1 150 1 1
- Seite 5 und 6: n 20 40 60 80 100 ta1(n) 1540 11480
- Seite 7 und 8: earbeitet, unabhängig davon, wie a
- Seite 9 und 10: darstellt. Aussagekräftige Abschä
- Seite 11 und 12: komplexität tbin(n) der binären S
- Seite 13 und 14: Um das oben gestellte Problem der T
- Seite 15 und 16: Definition 7. Ein Algorithmus heiß
- Seite 17 und 18: a c B A C Abbildung 8: Skizze zum K
- Seite 19 und 20: Abbildung 11: Graphen mit bzw. ohne
- Seite 21 und 22: Entscheidungsvariante: Gibt es eine
- Seite 23 und 24: 1 2 3 4 5 2 3 5 2 5 5 6 7 8 5 6 8 5
- Seite 25 und 26: Von zentraler Bedeutung — aber bi
- Seite 27 und 28: Um nun die NP-Vollständigkeit eine
- Seite 29 und 30: 7 8 6 5 1 2 Abbildung 15: Graph zum
- Seite 31 und 32: aw af bw bf cw cf dw df Abbildung 1
- Seite 33 und 34: die Klausel, die dem Teilgraphen en
- Seite 35 und 36: Beispiel 40. Das Problem des Handlu
- Seite 37: eispielsweise bei der Kreuzung der
Dabei bezeichnet ggt(n, a) den größten gemeinsamen Teiler und J(a, n) die Jacobifunktion,<br />
die wie folgt rekursiv definiert ist:<br />
⎧<br />
1 falls a = 1<br />
⎪⎨ J<br />
J(a, n) =<br />
⎪⎩<br />
a<br />
2 , n falls a mod 2 = 0 und n2−1 8 mod 2 = 0<br />
−J a<br />
2 , n falls a mod 2 = 0 und n2−1 8 mod 2 = 0<br />
J(n mod a, a) falls a mod 2 = 0 und (a−1)·(n−1)<br />
4 mod 2 = 0<br />
−J(n mod a, a) falls a mod 2 = 0 und (a−1)·(n−1)<br />
4 mod 2 = 0 .<br />
Ist n jedoch keine Primzahl, so ist für mindestens die Hälfte <strong>der</strong> möglichen Werte<br />
für a mindestens eine <strong>der</strong> beiden Bedingungen nicht erfüllt. Daraus lässt sich<br />
<strong>der</strong> in Abbildung 21 angegebene Algorithmus konstruieren, <strong>der</strong> eine ungerade<br />
natürliche Zahl n daraufhin testet, ob sie eine Primzahl ist o<strong>der</strong> nicht. Ist n eine<br />
Primzahl, so erkennt <strong>der</strong> Algorithmus dies immer korrekt. Ist n keine Primzahl,<br />
so erkennt er das manchmal nicht. Die Wahrscheinlichkeit für ein falsches Ergebnis<br />
beträgt 1<br />
2x. Für x = 20 ist das bereits weniger als ein Millionstel. Die<br />
Zuverlässigkeit des Algorithmus kann über den Parameter x also beliebig erhöht<br />
werden — allerdings zu Lasten <strong>der</strong> Laufzeit.<br />
Algorithmus Prim<br />
(Gegeben: eine ungerade natürliche Zahl n und eine natürliche Zahl x)<br />
begin<br />
i←1<br />
prim←true<br />
while i≤x and prim=true do<br />
a←random(n)<br />
if ggt(a,n)= 1 or a^((n-1)/2) mod n=J(a,n) then<br />
prim←false<br />
i←i+1<br />
if prim=true then<br />
Ausgabe: n ist Primzahl<br />
else<br />
Ausgabe: n ist keine Primzahl<br />
end<br />
Abbildung 21: Probabilistischer Algorithmus Prim<br />
Dieser letzte Abschnitt hat gezeigt, dass es oft Wege gibt, mit NP–vollständigen<br />
Problemen in <strong>der</strong> Praxis fertig zu werden. An<strong>der</strong>erseits kann für viele NP–<br />
vollständige Probleme bewiesen werden, dass es unmöglich ist, eine akzeptable<br />
Näherungslösung zu finden — es sei denn, es gilt P = NP.<br />
38