1 / 105

Berechenbarkeit

Berechenbarkeit. Klaus Becker 2004. Die Möglichkeiten von Software. Herausgeber einer Software-Zeitschrift:.

yul
Télécharger la présentation

Berechenbarkeit

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Berechenbarkeit Klaus Becker 2004

  2. Die Möglichkeiten von Software Herausgeber einer Software-Zeitschrift: „Geben Sie einem Computer die richtige Software, und er wird tun, was immer Sie wünschen. Die Maschine selbst mag Grenzen haben, doch für die Möglichkeiten von Software gibt es keine Grenzen.“ (zitiert nach D. Harel: Das Affenpuzzle und weitere bad news aus der Computerwelt)

  3. Teil 1 Berechenbarkeit als Problem

  4. Grenzen von Software Grundsatzfrage: Gibt es Grenzen für die Möglichkeiten von Software? Daten Software ?

  5. Der Kern von Software Algorithmen – der Kern von Software: Wo liegen die Grenzen algorithmisch gesteuerter Systeme? Gibt es Grenzen des algorithmisch Machbaren?

  6. Die Suche nach Grenzen Grundsatzfrage: Gibt es Grenzen für die Möglichkeiten von Software?Gibt es Grenzen für die Möglichkeiten von Algorithmen? Möglichkeitsnachweis: Unmöglichkeitsnachweis: Man entwickelt einen Algorithmus und implementiert die zugehörige Software. Man muss zeigen, dass es keinen Algorithmus gibt, der das gestellte Problem löst. D. h.: Jeder mögliche Algorithmus löst nicht das gestellte Problem. Vorgehensweise: Um Aussagen über alle möglichen Algorithmen zu treffen, muss zunächst der Algorithmusbegriff präzisiert werden.

  7. Was ist ein Algorithmus ? Einfache Frage – viele Antworten: Aho, Hopcroft, Ullman Ein Algorithmus ist eine endliche Folge von Instruktionen, die alle eindeutig interpretierbar und mit endlichem Aufwand in endlicher Zeit ausführbar sind. Algorithmen enthalten Instruktionen zur Formulierung von (beliebig vielen) Wiederholungen anderer Instruktionen. Unabhängig von den Werten der Eingangsgrößen endet ein Algorithmus stets nach endlich vielen Instruktionsschritten. Ein Programm ist dann ein Algorithmus, wenn für alle möglichen Eingabewerte sichergestellt ist, dass keine Instruktion unendlich oft wiederholt wird. Kronsjö Ein Verfahren, beschrieben durch eine endliche Menge von eindeutig interpretierbaren Regeln, das eine endlich lange Folge von Operationen zur Lösung eines Problems oder einer speziellen Problemklasse beschreibt, wird Algorithmus genannt. (http://www.swe.uni-linz.ac.at/teaching/lva/ss02/algo1_vorlesung/hinweise.html)

  8. Was ist ein Algorithmus ? Einfache Frage – viele Antworten: Knuth Ein Algorithmus muss nach endlich vielen Schritten enden. Jeder Schritt eines Algorithmus muss exakt beschrieben sein; die in ihm verlangten Aktionen müssen präzise formuliert und in jedem Falle eindeutig interpretierbar sein. Ein Algorithmus hat keine, eine oder mehrere Eingangsgrößen, d.h. Größen, die von ihm benutzt und deren Werte vor Beginn seiner Ausführung festgelegt werden müssen. Ein Algorithmus hat eine oder mehrere Ergebnisgrößen, d.h. Größen, deren Werte in Abhängigkeit von den Eingangsgrößen während der Ausführung des Algorithmus berechnet werden. Ein Algorithmus muss so geartet sein, dass die in ihm verlangten Aktionen im Prinzip von einem Menschen in endlicher Zeit mit Papier und Bleistift ausgeführt werden können. (http://www.swe.uni-linz.ac.at/teaching/lva/ss02/algo1_vorlesung/hinweise.html)

  9. Was ist ein Algorithmus ? Einfache Frage – viele Antworten: Bauer, Goos Ein Algorithmus ist eine präzise, d.h. in einer festgelegten Sprache abgefasste, endliche Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer elementarer (Verarbeitungs-) Schritte. Rechenberg Ein Algorithmus ist ein endliches schrittweises Verfahren zur Berechnung gesuchter aus gegebenen Größen, in dem jeder Schritt aus einer Anzahl ausführbarer eindeutiger Operationen und einer Angabe über den nächsten Schritt besteht. (http://www.swe.uni-linz.ac.at/teaching/lva/ss02/algo1_vorlesung/hinweise.html)

  10. Der intuitive Algorithmusbegriff „Definition:“ Ein Algorithmus ist eine Folge von Handlungsanweisungen zur Lösung eines Problems, die folgende Anforderungen erfüllt: - Endlichkeit: Die Anweisungsfolge ist durch einen endlichen Text beschrieben. - Ausführbarkeit: Die Anweisungen sind für den Empfänger (Mensch oder Maschine) verständlich formuliert und ausführbar. - Eindeutigkeit: An jeder Stelle ist der Ablauf der Anweisungen eindeutig festgelegt. - Allgemeinheit: Die Anweisungen besitzen Gültigkeit für die Lösung einer ganzen Problemklasse, nicht nur für ein Einzelproblem. (nach Gasper, Leiß, Spengler, Stimm: Technische und theoretische Informatik. bsv)

  11. Unzulänglichkeit informeller Klärungen „Definition:“ Ein Algorithmus ist eine Folge von Handlungsanweisungen zur Lösung eines Problems, die folgende Anforderungen erfüllt: - Endlichkeit: Die Anweisungsfolge ist durch einen endlichen Text beschrieben. - Ausführbarkeit: Die Anweisungen sind für den Empfänger (Mensch oder Maschine) verständlich formuliert und ausführbar. - Eindeutigkeit: An jeder Stelle ist der Ablauf der Anweisungen eindeutig festgelegt. - Allgemeinheit: Die Anweisungen besitzen Gültigkeit für die Lösung einer ganzen Problemklasse, nicht nur für ein Einzelproblem. Was heißt das? Die oben aufgeführte Begriffsklärung ist keine präzise Definition im mathematischen Sinne.

  12. Ziel: Präzisierung „Definition:“ Ein Algorithmus ist eine Folge von Handlungsanweisungen zur Lösung eines Problems, die folgende Anforderungen erfüllt: - Endlichkeit: Die Anweisungsfolge ist durch einen endlichen Text beschrieben. - Ausführbarkeit: Die Anweisungen sind für den Empfänger (Mensch oder Maschine) verständlich formuliert und „ausführbar“. - Eindeutigkeit: An jeder Stelle ist der Ablauf der Anweisungen eindeutig festgelegt. - Allgemeinheit: Die Anweisungen besitzen Gültigkeit für die Lösung einer ganzen Problemklasse, nicht nur für ein Einzelproblem. Muss präzisiert werden Ziel ist es, die informelle Begriffsklärung durch eine präzise Definition im mathematischen Sinne zu ersetzen.

  13. Präzisierungsansätze Grundschema eines algorithmisch gesteuerten Systems Eingaben “Prozessor” Anweisungen Ausgaben Präzisierungsansätze: Maschinenorientierter Ansatz: Präzisierung des Prozessors Zuordnungsorientierter Ansatz: Präzisierung der E/A-Zuordnungen Anweisungsorientierter Ansatz: Präzisierung der zulässigen Anweisungen

  14. Grundidee: Berechnungsmodelle Präzisierung mit Berechnungsmodellen Die Festlegung, was ein Algorithmus ist, bezieht sich auf ein streng definiertes Berechnungsmodell, das genau vorschreibt, was unter „ausführbar“ zu verstehen ist. Grundlegende Schwierigkeit des Präzisierungsverfahrens Wird mit Hilfe des Berechnungsmodells wirklich der intuitive Algorithmusbegriff adäquat erfasst?

  15. Teil 2 Kara als Berechnungsmodell

  16. Kara Kara ist ein Marienkäfer. Kara lebt in einer Welt mit • unbewegliche Baumstümpfen, • Pilzen, die Kara verschieben kann und • Kleeblättern, die Kara legen und aufnehmen kann. Lit.:: Reichert / Nievergelt / Hartmann: Programmieren mit Kara, Springer-Verlag 2004.Software: www.educeth.ch/karatojava

  17. Kara Kara hat Sensoren, mit denen er/sie die Umwelt wahrnimmt: Kara versteht einige Befehle, die er/sie folgsam ausführt: stehe ich vor einem Baumstumpf? mache einen Schritt vorwärts! drehe um 90° nach links! ist links von mir ein Baumstumpf? ist rechts von mir ein Baumstumpf? drehe um 90° nach rechts! stehe ich vor einem Pilz? lege ein Kleeblatt hin! stehe ich auf einem Kleeblatt? nimm ein Kleeblatt auf!

  18. Kara soll ein Problem lösen Kara soll bis zum nächsten Baumstumpf, einmal um ihn herum und anschließend zurück zum Ausgangspunkt laufen. AZ: ... ZZ:

  19. Kara-Algorithmus Akt. Zustand: Bedingung: Aktionen: Neuer Zustand: markieren hin hin nein hin hin ja ... zurück zurück nein zurück zurück ja stop Vor Baum? nein / vorwärts Auf Blatt? nein / vorwärts Vor Baum? ja / links; ... Auf Blatt? ja / links; links / Blatt hinlegen mark. hin zurück stop

  20. Übung Entwickeln Sie einen Kara-Algorithmus zur Lösung des Problems: Kara sieht in Blickrichtung eine beliebig lange Baumstumpfreihe. AZ: Kara umläuft die Baumstümpfe und bleibt stehen. ZZ:

  21. Übung Entwickeln Sie einen Kara-Algorithmus zur Lösung des Problems: Kara umläuft die Baumstumpfreihe und bleibt in der Verlängerung seines Wegs stehen. Kara sieht in Blickrichtung eine beliebig lange vertikale Baumstumpfreihe. ZZ: AZ:

  22. Übung Gibt es einen Kara-Algorithmus zur Lösung des Problems, bei dem Kara keine Blätter ablegen darf? ZZ: AZ:

  23. Präzisierung des Algorithmusbegriffs Von klaren Vorgaben zu präzisen Begriffsdefinitionen Sei A die Menge der Kara-Aktionen: A = {move, turnLeft, turnRight, putLeaf, removeLeaf} Sei A´ die Menge der eingeschränkten Kara-Aktionen: A´ = {move, turnLeft, turnRight} Sei B die Menge der Kara-Bedingungen: B = {treeFront, treeLeft, treeRight, mushroomFront, onLeaf, not treeFront, treeFront and (not onLeaf), ..., true}

  24. Präzisierung des Algorithmusbegriffs Akt. Zustand: Bedingung: Aktionen: Neuer Zustand: markieren hin hin nein hin hin ja ... zurück Definition: Ein Kara-Algorithmus ist eine Paar (Z, F) bestehend aus einer endlichen Menge Z von Zuständen, die einen ausgezeichneten Startzustand enthält, und einer Funktion F, die die Arbeitsweise von Kara wie folgt festlegt: F ordnet Zustands-Bedingungs-Kombinationen (z, b) mit zZ und bB eine Aktionen-Zustands-Kombination (a, z´) zu, wobei a eine endliche (evtl. leere) Folge von Aktionen aus A ist und z´Z den Folgezustand darstellt. Ein Read-Only-Kara-Algorithmus ist ein Kara-Algorithmus, bei dem nur Aktionen aus der eingeschränkten Menge A´vorkommen.

  25. Zur Lösung des Baumumrundungsproblems Von präzisen Begriffsdefinitionen zu nachweisbaren Aussagen Satz: Es gibt einen Kara-Algorithmus, der das „vertikale Baumumrundungsproblem“ löst. (Möglichkeits-) Beweis: Der Beweis erfolgt konstruktiv, indem man einen geeigneten Kara-Algorithmus angibt. Grundidee: Kara legt beim Weg „nach oben“ neben jeden Baumstumpf ein Kleeblatt. Kara zählt auf diese Weise mit, an wie vielen Baumstümpfen er/sie vorbeiläuft. Kara transportiert anschließend jedes dieser abgelegten Kleeblätter auf die „andere Seite des Baumstumpfs“. Damit ist Kara in der Lage, die gewünschte Endposition zu bestimmen.

  26. Zur Lösung des Baumumrundungsproblems Von präzisen Begriffsdefinitionen zu nachweisbaren Aussagen Satz: Es gibt keinen Read-Only-Kara-Algorithmus, der das „vertikale Baumumrundungsproblem“ löst. (Unmöglichkeits-) Beweis: Der Beweis wird durch Widerspruch geführt: Man nimmt an, es gebe einen solchen Algorithmus und führt diese Annahme zum Widerspruch. Da das „vertikale Baumumrundungsproblem“ für Read-Only-Kara-Algorithmen strukturell ähnlich zum „anbn-Spracherkennungs-problem“ für endliche Automaten ist, kann der Nachweis, dass es keinen Read-Only-Kara-Algorithmus gibt, der das „vertikale Baumumrundungsproblem“ löst, völlig analog zum „anbn-Spracherkennungsproblem“ geführt werden.

  27. Teil 3 Kara-Berechenbarkeit

  28. Kara lernt rechnen Im Folgenden betrachten wir eine spezielle Klasse von Problemen, die Kara lösen soll. Es handelt sich hier um „Berechnungs-probleme“, die Kara mit Hilfe von Kleeblättern ausführen soll.

  29. Übung Entwickeln Sie einen Kara-Algorithmus zur Addition: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können). AZ: Kara hat eine Blattreihen der Länge m+n erzeugt. ZZ:

  30. Übung Entwickeln Sie einen Kara-Algorithmus zur Subtraktion: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können). AZ: Falls mn ist, hat Kara eine Blattreihe der Länge m-n erzeugt. ZZ:

  31. Übung Entwickeln Sie einen Kara-Algorithmus zur Subtraktion: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können). AZ: Falls m<n ist, kommt Kara nicht mehr klar und dreht sich ständig im Kreis herum. ZZ:

  32. Übung Entwickeln Sie einen Kara-Algorithmus zum Verdoppeln: Kara steht vor einer beliebig langen Blattreihe der Länge n (die auch 0 sein kann). AZ: Kara hat eine Blattreihe der Länge 2n erzeugt. ZZ:

  33. Übung Entwickeln Sie einen Kara-Algorithmus zur Multiplikation: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können). AZ: Kara hat eine Blattreihe der Länge mn erzeugt. ZZ:

  34. Übung Entwickeln Sie einen Kara-Algorithmus zur Multiplikation: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können). AZ: Kara hat eine Blattreihe der Länge mn erzeugt, ohne die Zellenreihe, in der die Blätter liegen, zu verlassen. ZZ:

  35. Berechnete Funktion Vom informellen Begriff zur präzisen Begriffsdefinition Verdoppeln: Kara steht vor einer beliebig langen Blattreihe der Länge n (die auch 0 sein kann). AZ: Kara hat eine Blattreihe der Länge 2n erzeugt. ZZ: Kara berechnet die Verdopplungsfunktion f: N  N mit f(n) = 2n.

  36. Berechnete Funktion Subtraktion: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können). AZ: Falls m<n ist, kommt Kara nicht mehr klar und dreht sich ständig im Kreis herum. ZZ: Kara berechnet die Subtraktionsfunktion f: N x N  N mit: m-n falls m  n f(m,n) = undefiniert falls m < n

  37. Präzisierung von Berechenbarkeit Definition: Eine Funktion f: N  N heißtKara-berechenbar, gdw gilt:Es gibt einen Kara-Algorithmus mit der folgenden Eigenschaft: AZ: Kara steht vor einer Blattreihe der Länge n. ZZ: Fall 1: f(n) ist definiert: Kara hat eine Blattreihe der Länge f(n) erzeugt und hält. Fall 2: f(n) ist undefiniert: Kara hält nicht. Analog für f: N x N x ... x N  N

  38. Berechenbarkeitsaussagen Satz: Die folgenden Funktionen sind Kara-berechnenbar: • f(n) = 2n • f(m, n) = m + n • f(m, n) = IF(mn, m-n, ) • f(m, n) = mn Neue Fragen Welche Funktionen sind Kara-berechnenbar, welche evtl. nicht?

  39. Teil 4 Turingmaschinen

  40. Alan Turing http://www.alanturing.net/ Alan Mathison Turing FRS OBE (born 23 June 1912 at 2 Warrington Crescent, London W9, died 7 June 1954 at his home in Wilmslow, Cheshire) contributed to mathematics, cryptanalysis, logic, philosophy, biology, and formatively to computer science, cognitive science, Artificial Intelligence and Artificial Life. Educated at Sherborne School in Dorset, Turing went up to King's College, Cambridge in October 1931 to read Mathematics. He was elected a Fellow of King's in March 1935, at the age of only 22. In the same year he invented the abstract computing machines - now known simply as Turing machines - on which all subsequent stored-program digital computers are modelled. ...

  41. Turings Idee Vom Rechnen zu den „Computing maschines“ „Computing is normally done by writing certain symbols on paper. We may suppose this paper is divided into squares like a child's arithmetic book. In elementary arithmetic the two-dimensional character of the paper is sometimes used. 3 6  2 7 7 2 2 5 2 9 7 2 (Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 1936)

  42. Turings Idee Vom Rechnen zu den „Computing maschines“ „Computing is normally done by writing certain symbols on paper. We may suppose this paper is divided into squares like a child's arithmetic book. In elementary arithmetic the two-dimensional character of the paper is sometimes used. But such a use is always avoidable, and I think that it will be agreed that the two-dimensional character of paper is no essential of computation. I assume then that the computation is carried out on one-dimensional paper, i.e. on a tape divided into squares. ...“ 3 6  2 7 2 5 2 7 2 (Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 1936)

  43. Turings Idee Vom Rechnen zu den „Computing maschines“ „The behaviour of the computer at any moment is determined by the symbols which he is observing and his “state of mind” at that moment. ...“ „Let us imagine the operations performed by the computer to be split up into “simple operations” which are so elementary that it is not easy to imagine them further divided. ...“ Ein-/Ausgabeband 3 6  2 7 Zustandsbasierte Verarbeitungseinheit Schreib-/Lesekopf q0 (Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 1936)

  44. Turingmaschine Ein-/Ausgabeband ... I I I I I ... Zustandsbasierte Verarbeitungseinheit Schreib-/Lesekopf Turingmaschine

  45. Turingmaschine Zustandsübergang: Aktion a ; b ; R Geschriebenes Zeichen Gelesenes Zeichen Turingmaschinenaktionen: R ein Feld nach rechts L ein Feld nach links S stopp

  46. Beispiel Berechnungsproblem: Addition von „Strichzahlen“ AZ: I I I I I z0 ZZ: I I I I I S Turingmaschine (dargestellt mit einem Zustandsgraphen): I; I; R I; I; R I; I; L I; I; S ; I; R ; ; L I; ; L ; ; R z0 z1 z2 z3 z4

  47. Beispiel Turingmaschine (dargestellt mit einem Zustandsgraphen): I; I; R I; I; R I; I; L I; I; S ; I; R ; ; L I; ; L ; ; R z0 z1 z2 z3 z4 Turingmaschine (dargestellt mit einer Zustandstafel): alter gelesenes geschrieb. Kopf- neuer Zustand Zeichen Zeichen bewegung Zustand Z0 I I R Z0Z0 ' ' I R Z1 Z1 I I R Z1Z1 ' ' ' ' L Z2 ...

  48. Präzisierung Definition:Eine Turingmaschine ist ein Tupel T = (X, B, b, Z, z0, ) bestehend aus - einer endlichen, nichtleeren Menge X von Eingabezeichen, - einer Menge B mit X  B von Bandzeichen,- einem speziellen Bandzeichen b  B \ X („Blank“), - einer endlichen, nichtleeren Menge Z von Zuständen,- einem Anfangszustand z0Z,- einer Überführungsfunktion : Z x B  B x {L, R, S} x Z alter gelesenes geschrieb. Kopf- neuer Zustand Zeichen Zeichen bewegung Zustand Z0 I I R Z0Z0 ' ' I R Z1 Z1 I I R Z1Z1 ' ' ' ' L Z2 ...

  49. Übung Berechnungsproblem: Verdopplung von „Strichzahlen“ Entwickeln und testen Sie eine Turingmaschine zur Verdopplung von Strichzahlen. Beschreiben Sie die Turingmaschine mit einem Zustandsgraph und einer Zustandstabelle. Zum Testen können Sie den MPG-Turing-Simulator benutzen. AZ: I I z0 ZZ: I I I I

  50. Präzisierung von Berechenbarkeit Definition: Eine Funktion f: N  N heißtTuringmaschinen-berechenbar, gdw gilt: Es gibt eine Turingmaschine T mit der folgenden Eigenschaft: AZ: Auf dem Band befindet sich n dargestellt als Strichzahl. ZZ: Fall 1: f(n) ist definiert: T hält und hat f(n) dargestellt als Strichzahl erzeugt. Fall 2: f(n) ist undefiniert: T hält nicht. I I z0 I I I I Analog für f: N x N x ... x N  N

More Related