Entscheidbarkeit
Entscheidbarkeit
Entscheidbarkeit = Frage ob Problem / Sprache rekursiv ist
Rekursive Sprachen
Wenn deterministische Turingmaschine, die diese Sprache akzeptiert -
und bei anderen Sprachen auch immer hält.
entscheidbare bzw. rekursiv entscheidbare Probleme / Sprachen
Die Turingmaschineentscheidetdie Sprache.
Wenn deterministische Turingmaschine, die uns bei Problemen "ja" oder "nein" antworten kann. Sie hält immer, wir schauen nur ob ein Endzustand erreicht wurde oder nicht.
Rekursiv-aufzählbare Sprache
Wenn deterministische Turingmaschine, die diese Sprache akzeptiert -
und bei anderen Sprachen möglicherweise nicht hält.
recursively-enumerable, semi-decidable, turing-recognizable
Nicht-rekursiv-aufzählbare Sprachen
Wir wollen beweisen, dass es Sprachen gibt die nicht rekursiv aufzählbar sind.
Codierung von Turingmaschinen (Voraussetzung für Beweis)
Man kann eine Turingmaschine zu einem String umwandeln:
Einzelne Abbildungen der Übergangsfunktion:
(Es werden nur 0er potenziert)
Man setzt bestimmte Anzahl an Nullern um den Index für zu definieren und trennt die Nuller mit einsen.
Dann trennt man alle diese Strings mit "11" und listet dadurch alle möglichen Abbildungen auf.
Beweis
-
Eine Sprache
über
ist genau dann rekursiv-aufzählbar wenn es eine deterministische Turingmaschine gibt die immer nur diese akzeptiert und keine
andere.
ist überabzählbar
-
: Jede Turingmaschine
kann selbst mit
codiert werden.
ist abzählbar
Daraus folgt: Es gibt also überabzählbar viele Sprachen, von denen jedoch nur abzählbar viele von einer Turingmaschine akzeptiert werden.
Sätze
Church-Turing-These
Es gibt keine anderen Modelle die mehr formale Sprachen als Turingmaschinen akzeptieren können. (Bisher nicht widerlegt)
Quasi: Turingmaschinen können alles berechnen was berechenbar ist.
Wennrekursiv ist, ist auchrekursiv
Man antwortet mit der Negation von der ursprünglichen Antwort.
Wenn sowohlals auchrekursiv-aufzählbar sind, sind sie beide dadurch rekursiv
Die "ja" antwort des Komplements, ist die "nein" Antwort der ursprünglichen Sprache.
Es kann nur eines gelten:
- und sind beide rekursiv
- und sind beide nicht-rekursiv-aufzählbar (außerhalb der Menge der rekusiv-aufzählbaren Sprachen)
- Eines der beiden ist rekursiv-aufzählbar (aber nicht rekursiv) und das andere nicht-rekursiv-aufzählbar
Halteproblem
Das Halteproblem
Das Halteproblem ist eine Sprache, bestehend aus Tupeln bei denen gilt, dass das Wort akzeptiert, also .
Das Halteproblem ist rekursiv-aufzählbar aber nicht rekursiv .
ist rekursiv-aufzählbar
Es gibt universelle Turingmaschinen die mit Code und Input ein Verhalten simulieren können.
Universelle Turingmaschine nimmt Maschinencode und und hält genau dann, wenn es tun würde.
ist nicht rekursiv
Indirekter Beweis
Angenommen Maschine die immer hält und dadurch ist rekursiv:
Ja und Nein beziehen sich darauf, obund obeinen Endzustand erreicht, aberhält immer.
Dann Maschine die das Gegenteil von dem macht was machen würde:
Man könnte jedes beliebige Wort nutzen - aber wir wollen, dass nur eine Eingabe hat - den Code der Maschine:
Wir setzen als Argument für ein:
Paradoxon: Dadurch verhält sich immer gegensätzlich zu dem wie es der Haltealgorithmus vorausgesagt hat.
ist nicht rekursiv-aufzählbar
Angenommen wäre auch rekursiv aufzählbar, dann wären sie dadurch gemeinsam rekursiv.
Berechenbarkeit
Partiell berechenbar
Wenn für eine Turingmaschine existiert, sodass
-
Wenn
definiert ist, dann hält
wenn es mit startet und schreibt auf das Band.
-
Wenn
nicht definiert ist, dann hält
nicht
wenn es mit startet.
Total berechenbar
Wenn für alle definiert ist und partiell berechenbar ist.
Reduktion von Sprachen
Reduktion
lässt sich auf reduzieren wenn es eine total berechenbare Funktion
gibt, sodass
Reduktion nutzen für Beweise
Angenommen :
- nicht rekursiv nicht rekursiv
- nicht rekursiv-aufzählbar nicht-rekursiv-aufzählbar
- rekursiv rekursiv
- rekursiv-aufzählbar rekursiv-aufzählbar
Beispiel
Sprache aus allen Codes die nur empty akzeptieren
Sprache aus allen Codes die nicht empty akzeptieren
ist rekursiv-aufzählbar
(nicht-deterministisch) nützt die universelle Maschine mit den Eingaben: und ein random Wort .
Die universelle Maschine simuliert mit der Eingabe .
Wenn akzeptiert
ist nicht rekursiv
Wir reduzieren das Halteproblem auf das Nonempty-Problem:
-
Angenommen
Wenn von akzeptiert wird, dann bedeutet das, dass mit hält.
-
Daraus folgt
Wenn das wort akzeptiert, dann kann die Sprache nicht sein.
Dadurch, dass wir wissen dass existiert, daber nicht rekursiv ist, folgt daraus, dass auch nicht rekursiv ist.
Eigenschaft
Eigenschaft
Eine Eigenschaft ist eine Teilmenge von allen rekursiv-aufzählbaren Sprachen (über ein Alphabet).
Eine Teilmenge aller möglichen rek-aufzählbaren Sprachen über das Alphabet.
Beispiele
Die folgenden Eigenschaften treffen auf die rekursiv-aufzählbare Sprache zu ( ist ein Element dieser Eigenschaften - also )
(da der Sternoperator idempotent ist)
Aber nicht die Eigenschaften (keine möglichen Teilmengen)
Triviale Eigenschaften
ist von keiner rekursiv-aufzählbaren Sprache die Teilmenge
Die Eigenschaft(keine Sprache) ist nicht dasselbe wie die Eigenschaft(diese trifft zb auf die Leer-Sprache zu)
ist von jeder rekursiv-aufzählbaren Sprache die Teilmenge
Satz von Rice
Sagt ob eine Eigenschaft (Sprachenmenge) rekursiv ist.
Wie kann eine Menge an Sprachen rekursiv sein?
ist rekursiv wenn es für eine deterministische Turingmaschine gibt:
Die Menge aller Maschinen-Codes, die eine Sprache aus Menge akzeptieren.
Satz von Rice
Eigenschaft nicht trivial Eigenschaft nicht rekursiv
Beispiele
1)
Sprache mit 7 oder mehr Elementen
Maschine die nur Sprachen mit mehr als 7 Wörtern akzeptiert
Beweis: (für nicht Trivialität)
rekursiv-aufzählbare Sprache mit dieser Teilmenge
rekursiv-aufzählbare Sprache ohne dieser Teilmenge:
2)
Maschine die nur reguläre Sprache akzeptiert
Beweis:
rekursiv-aufzählbare Sprache mit dieser Teilmenge
rekursiv-aufzählbare Sprache ohne dieser Teilmenge
Fällen wo Anwendung von Satz von Rice ungültig ist
Satz ausgenommen: Es handelt sich nicht um eine Bedingung der akzeptierten Sprache der Turingmaschine sondern um eine Bedingung der Turingmaschine selbst.
Beispiele
1)
Bezieht sich auf Maschine und nicht Sprache
2)
Ist für jede rekursiv-aufzählbare Sprache erfüllt.
Beispiel: Nicht-rekursive Probleme
Postsches Korrespondenz Problem: Rekursiv-aufzählbar, nicht rekursiv
Gegeben
- Alphabet
- Folge von Wortpaaren
wobei für
Frage
Folge von Indizes für die Paare, sodass gillt:
10. Hilbertsches Problem: nicht rekursiv
Gegeben
Polynom
Frage
Besitzt ganzzahlige Nullstellen?