Problem beim Unterrichten der Berechenbarkeit


22

Ich habe Schwierigkeiten, das Konzept berechenbarer Funktionen zu vermitteln. Ich versuchte die Idee zu entwickeln, warum Forscher wie Hilbert / Ackermann / Godel / Turing / Church / ... den Begriff der "Berechenbarkeit" erfanden. Die Schüler fragten sofort: "Was bedeutet Berechenbarkeit?" und ich kann nur antworten, wenn ich ihnen Turing-Maschinen beibringe, und dann antworten: "Eine Funktion ist berechenbar, wenn eine Turing-Maschine sie berechnet."

So,

Gibt es eine Beschreibung der Berechenbarkeit, bei der nicht auf Turingmaschinen, λ-Kalkül oder ähnliche Berechnungsmodelle zurückgegriffen werden muss? Schon eine intuitive Beschreibung wird ausreichen.


10
"Jede Funktion, die ein Computer berechnen kann"? Normalerweise greife ich auf Programmiersprachen zurück, da die Schüler wahrscheinlich eine beherrschen. Ich habe auch versucht, "ein beliebiges Rezept zur Berechnung einer Funktion" als intuitive Definition eines Algorithmus zu verwenden.
Michaël Cadilhac

5
Ein Problem ist berechenbar, wenn es durch ein endliches Regelwerk gelöst werden kann, das die Entwicklung eines diskreten dynamischen Systems in endlichen Schritten steuert.
Mohammad Al-Turkistany

1
Sie können Hilberts zehntes Problem auch verwenden, um den Schülern zu erklären, warum es unlösbar ist und dass der Nachweis der Unlösbarkeit unter anderem die Formalisierung des Begriffs der Rechenbarkeit in der Mathematik erforderlich macht.
Mohammad Al-Turkistany

Eine andere Frage: Die Church-Turing-These besagt, dass eine Funktion nur dann von einer Turing-Maschine berechnet werden kann, wenn sie von einer Maschine eines anderen „vernünftigen und allgemeinen“ Berechnungsmodells berechnet werden kann [Goldreich, 2008]. Ist also ein modellunabhängiger Begriff der Berechenbarkeit denkbar?
MS Dousti

Antworten:


36

Vor 75 Jahren gab es keine Computer. Man musste also die mathematische Idee eines Computers sehr sorgfältig erklären .

Heute weiß jeder, was ein Computer ist, und trägt wahrscheinlich die meiste Zeit einen bei sich. Dies kann beim Unterrichten sehr erfolgreich verwendet werden, da Sie die veraltete Idee einer Maschine mit einem Band überspringen können. Ich meine, wer benutzt ein Band? (Ich weiß, ich weiß, du fühlst dich beleidigt und Turing war ein großartiger Mann und das alles, und ich stimme dir zu).

Sie gehen einfach in die Klasse und fragen: Können Ihre iPhones dort etwas nicht berechnen? Dies bringt Sie sofort auf Fragen zu begrenzten Ressourcen. Dann sagen Sie: Angenommen, Ihr Computer verfügt tatsächlich über unbegrenzten Speicher. Gibt es etwas, das nicht berechnet werden kann? Und Sie idealisieren etwas mehr und beschränken Ihre Aufmerksamkeit auf zahlentheoretische Funktionen (weil Sie sich momentan nicht für Facebook interessieren). Sie müssen ein wenig erklären, wie Computer funktionieren (wie in den Kommentaren erwähnt, ist es gut, wenn die Schüler eine Programmiersprache beherrschen, weil Sie diese verwenden können, anstatt Hardware zu beschreiben), aber danach können Sie alle klassischen Argumente der Berechenbarkeit verwenden Theorie, um Ergebnisse abzuleiten. Es spielt keine Rolle, dass das mentale Bild Ihrer Schüler von einer Maschine das iPhone ist. In der Tat ist es wichtig:relevanter für sie zu wissen, dass ihr iPhone bestimmte Dinge nicht tun kann.


2
Ich mag dieses Argument sehr, weil es vom konkreten (dem iPhone) zum abstrakten geht.
Suresh Venkat

2
Hier ist ein interessantes Rätsel: Was sind die smn- und utm-Sätze in Haskell?
Andrej Bauer

18
"Vor 75 Jahren gab es keine Computer." Das ist einfach falsch. Vor 75 Jahren gab es viele Computer. Sie waren Menschen, meistens Frauen; Sie hatten fortgeschrittene Mathematikabschlüsse, ein paar rudimentäre mechanische Berechnungswerkzeuge (wie das Hinzufügen von Maschinen und Rechenschablonen) und jede Menge Papier. Diese Computer waren während des Zweiten Weltkriegs das Rückgrat des Manhattan-Projekts und des Bletchley-Parks (ungeachtet der Bombe und der Bombe). Dies ist die Computerumgebung, die Turing modellierte: Menschen mit Bleistift und Papier.
Jeffs

10
@Jeffe: Komm schon, du weißt was ich meinte.
Andrej Bauer

8
@ JeffE: Wir können Ihre Hypothese testen. Gehen Sie zu Ihren Kollegen und bitten Sie sie, ein Bild von "einem Computer in einem kurzen Rock" zu zeichnen. Bitte melden Sie, wie viele einen Menschen gezeichnet haben.
Andrej Bauer

12

"Eine Funktion ist berechenbar, wenn es ein 'effektives Verfahren' gibt, um von der Eingabe zur Ausgabe zu gelangen." Bei der Einführung dieses Themas habe ich in der Vergangenheit darauf hingewiesen, dass sie (die Schüler) ein effektives Verfahren zum Lösen quadratischer Gleichungen haben, jedoch kein Verfahren zum Lösen von Gleichungen der Stufe 5 oder höher. Dies kann in eine Diskussion über die Formalisierung eines „effektiven Verfahrens“ übergehen, aber diese Diskussion soll geschehen, und ich denke, das ist eher ein Feature als ein Bug.


3
Nitpicking: Abel-Ruffini-Theorem besagt, dass es keine allgemeine algebraische Lösung - dh Lösung in Radikalen - für Polynomgleichungen des Grades fünf oder höher gibt. Es gibt jedoch Methoden wie das Bring-Radikal , um geschlossene Lösungen von Quint-Gleichungen zu erhalten.
MS Dousti

Ihre Nitpicking ist eigentlich richtig. Wenn Sie die Berechenbarkeit diskutieren, möchten Sie über Dinge wie "erlaubte Operationen" sprechen, und Lösungen für Polynome sind eines der Dinge, die komplexer werden, je genauer Sie sie betrachten. Aber zur Einführung denke ich, dass die Worte "effektives Verfahren" und eine Erwähnung der quadratischen Formel einen guten Ausgangspunkt darstellen. Sie sind nicht ganz korrekt, aber die Intuition stimmt, IMO.
Peter Boothe

8

Vielleicht ist der Punkt, dass alle diese Modelle darauf abzielten, den Begriff der Berechenbarkeit zu erfassen. Die Tatsache, dass sie alle gleichwertig sind, bedeutet, dass der Begriff, den sie erfassen möchten, robust ist. Obwohl dies Ihrem Dilemma nicht entgeht, stützt diese Robustheit den Gedanken, dass "eine Funktion berechenbar ist, wenn es eine Turing-Maschine gibt, die sie berechnet".


6

Ich fange an zu fragen: "Gibt es eine Frage, die kein Computer jemals überzeugend beantworten könnte?" und führe die Diskussion zu philosophischen Fragen wie "Wenn ein Baum in den Wald fällt, macht es dann ein Geräusch?" oder "Gibt es ein Leben nach dem Tod?" Wir sind uns schnell einig, dass die menschliche Sprache Ja / Nein-Fragen ausdrücken kann, bei denen es sich um Paradoxe oder Konzepte handelt, die nicht mathematisch ausgedrückt werden können. Es gibt also nicht berechenbare Fragen.

Dann frage ich rhetorisch, ob es nicht berechenbare Fragen zu Begriffen gibt , die in einem Computer dargestellt werden können, z. B. Ganzzahlen und Graphen. Ich sage ja, ein Beispiel ist das berühmte Halteproblem, bei dem es darum geht, eine Beschreibung eines Programms zu untersuchen und zu sagen, ob es Endlosschleifen hat. Intuitiv stellt sich heraus, dass Endlosschleifen wie schwarze Löcher sind und jedes Programm, das eine Endlosschleife beobachtet, in einer Endlosschleife selbst gefangen werden kann. Daher kann jedes Verfahren, das dieses Problem beantwortet, für immer ausgeführt werden. Gemäß der Definition von "Algorithmus" kann kein Algorithmus das Problem des Anhaltens beantworten.

Dann tauche ich wieder in Proofs auf Turing-Maschinen ein.


0

Nun, eine Funktion ist berechenbar, wenn sie Eingaben akzeptiert, die von einem bestimmten Muster gebildet oder generiert werden. Ein bestimmtes Muster bedeutet, dass alle Eingaben eine Beziehung haben sollten. Eine bestimmte Eingabe kann durch die vorherige oder nächste Eingabe generiert werden. Wenn die Eingänge keine solche Sequenz haben, gibt es keine Möglichkeit, ein Modell oder eine Funktion zu entwickeln, die akzeptiert werden kann. Eine Sache, die ich noch sagen möchte, ist, dass es einen grundlegenden Unterschied zwischen einer Maschine und einem Menschen gibt. Eine Maschine konnte nicht für nicht-sequentielle Eingaben gebildet werden, aber Menschen sind es. Dies ist auch eine große Unterbrechung der Herstellung von Robotern, die sich tatsächlich menschlich verhalten.


Die Frage ist, wie man Berechenbarkeit lehrt. Es wäre gut, wenn Sie Ihre Antwort auf Material beschränken, das diese Frage beantwortet. Denken Sie daran, dass das OP Studenten unterrichtet, sodass persönliche Meinungen (wie Ihre letzten drei Aussagen) möglicherweise nicht berücksichtigt werden.
Vijay D
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.