Warum ist das anhaltende Problem für das Hoto-Sprachen, das auf den höchsten Wert von Konstanten und Variablen begrenzt ist?

cs.stackexchange https://cs.stackexchange.com/questions/128510

Frage

Dies wird von einer alten Prüfung meiner Universität entnommen, die ich für die kommende Prüfung vorbereiten möchte:

angegeben ist eine Sprache $ \ Text {GOTO} _ {17} ^ c \ Subseteq \ Text {goto} $ . Diese Sprache enthält genau diese $ \ Text {GOTO} $ -Programme, in denen keine Konstante jemals über $ 17 $ ist> Keine variable Variable überhaupt über $ c $ .

$ goto $ Hier wird der Satz aller in der $ goto $ Sprache beschrieben beschrieben der folgenden Elemente:

mit Variablen $ v_i \ in \ mathbb {n} $ und konstanten $ c \ in \ mathbb {n} $
Zuordnung: $ x_i:= c, x_i:= x_i \ pm C $
Bedingter Sprung: Wenn (Vergleich) goto $ l_i $

HalteCommand: Halt

Ich kämpfender derzeit mit der Formalisierung eines Beweises, aber das ist, was ich bisher gekommen bin, sehr beiläufig formuliert: Für ein bestimmtes Programm in diesem Set wissen wir, dass es endlich ist. Ein endliches Programm enthält eine endliche Menge an Variablen und eine endliche Menge an Zuständen oder Zeilen, die in sein, in. Als solches gibt es eine endliche Menge an Konfigurationen, in der dieser Prozess sein kann. Wenn wir dieses Programm laufen lassen, können wir eine Liste aller von uns gesehenen Konfigurationen aufbewahren. Das heißt, die Kombination aller verwendeten Variablenwerte und dem Status des Programms. Wenn wir das Programm laufen lassen, muss es eines von zwei Dingen geben, die schließlich passiert: Das Programm hält an. In diesem Fall kehren wir ja zurück und haben entschieden, dass es hält. Das Programm erreicht eine bereits aufgenommene Konfiguration. Da die Sprache deterministisch ist, bedeutet dies, dass wir eine vollständige Schleife gegangen sein müssen, die sich jetzt genau wiederholt.

Es kann kein anderer Fall existieren, da dies bedeutet, dass wir weiterhin für immer für einen endlichen Code laufen, ohne eine Konfiguration zu wiederholen. Dies bedeutet nach jedem Schritt, in der Liste der unendlichen Schritte gibt es eine neue Konfiguration. Dies würde bedeuten, dass es unendliche Konfigurationen gibt, was ein Widerspruch ist.

ist das richtig? Wie würde es außerdem ein formalerer Scheinwerbungsoptik sein, wenn es ist? Wenn nicht, wie würde ein korrekter Nachweis aussehen?

War es hilfreich?

Lösung

Es gibt eine endliche Anzahl verschiedener Zustände (der Satz von Werten der Variablen und den Programmzähler).Ihre "limitierten goto-Programme" sind nur ein (unordentlicher) Weg, um ein deterministisches endliches Automaton zu beschreiben.

oder nur Grund, dass die Programmstaaten endlich sind, ist es sicherlich möglich, alle möglichen Nicht-Looping-Berechnungen (von so etwas wie eine erste Suche des Diagramms von Staaten und Nachbarn) zu erkennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top