nicht deterministische Maschinen
Nicht deterministische Maschinen sind Anti-Manager. Wenn ein Manager "Nein" sagt, bedeutet dies "Nein", und wenn er "Ja" sagt, bedeutet dies "Vielleicht".
Nicht deterministische Maschinen machen das Gegenteil: Wenn sie "Ja" sagen, bedeutet dies "Ja", und wenn sie "Nein" zu sagen scheinen (Anhalten in einer nicht akzeptierenden Konfiguration), bedeutet dies "Vielleicht". Der Grund dafür ist vielleicht, dass es mit einer anderen nicht deterministischen Auswahl einiger Übergänge mit Ja geantwortet hat. Tatsächlich sollten nicht deterministische Automaten genauer gesagt niemals eine negative Antwort geben. Es ist praktisch mit deterministischen Automaten, bedeutet aber nichts mit nicht deterministischen. Es ist auch "vielleicht", wenn sie aus zwei Gründen nicht beendet werden: (1) Eine andere Übergangswahl hat möglicherweise zu einer Akzeptanz geführt, und (2) Sie können keine Nichtakzeptanz geltend machen, da die Berechnung möglicherweise fortgesetzt wird.
Daher ist es nicht einfach, eine Sprache zu ergänzen, die von einem nicht deterministischen oder nicht haltenden Gerät erkannt wird. Sie können nicht einfach "Ja" und "Nein" austauschen, da Sie nur "Ja" und "Vielleicht" haben. Sie würden nur eine Verwaltungsmaschine erhalten, die nur mit "Nein" oder "Vielleicht" antwortet und von der Automata Theory Union nicht anerkannt wird. Automaten müssen akzeptieren, indem sie "Ja" eindeutig beenden und beantworten, wenn das zu erkennende Wort in der Sprache vorliegt. In einigen Fällen mit Nein antworten zu können, ist nur ein Bonus deterministischer Maschinen, wenn sie so freundlich sind, anzuhalten.
Sie müssen also zuerst Ihre Maschine in eine deterministische umwandeln. Dann können Sie akzeptierende und ablehnende Konfigurationen austauschen (unter Berücksichtigung des vorherigen Punktes oben), vorausgesetzt, dass die Maschine immer anhält.
Um die Ergänzung eines regulären Satzes zu erhalten, ist es zweckmäßig, zuerst einen DFA zu erstellen, der ihn erkennt.
Eine Turing-Maschine kann immer in eine deterministische verwandelt werden, aber sie kann nicht anhalten und so Raum für "vielleicht" lassen. Daher ist es nicht immer möglich, eine von einer Turingmaschine erkannte Sprache zu ergänzen, wie oben angegeben. Es ist jedoch möglich, dass ein (determiniertes) TM immer mit einer Ja / Nein-Antwort stoppt.