Dieses 579-Bit-Programm im binären Lambda-Kalkül hat einen unbekannten Haltestatus:
01001001000100010001000101100111101111001110010101000001110011101000000111001110
10010000011100111010000001110011101000000111001110100000000111000011100111110100
00101011000000000010111011100101011111000000111001011111101101011010000000100000
10000001011100000000001110010101010101010111100000011100101010110000000001110000
00000111100000000011110000000001100001010101100000001110000000110000000100000001
00000000010010111110111100000010101111110000001100000011100111110000101101101110
00110000101100010111001011111011110000001110010111111000011110011110011110101000
0010110101000011010
Das heißt, es ist nicht bekannt, ob dieses Programm beendet wird oder nicht. Um es zu bestimmen, müssen Sie die Collatz-Vermutung lösen - oder zumindest für alle Zahlen bis zu 2 ^ 256. In diesem Repository finden Sie eine vollständige Erklärung, wie dieses Programm erhalten wurde.
Gibt es (viel) kürzere BLC-Programme, die ebenfalls einen unbekannten Stoppstatus haben?
algorithms
computability
kolmogorov-complexity
MaiaVictor
quelle
quelle
Antworten:
Ja. Diese Seite sagt , es gebe 98 5-Zustand sind Turingmaschinen sind , deren Haltestatus unbekannt. Ärgerlicherweise gibt es keine Beispiele für solche Maschinen, aber diese 26 Jahre alte Seite enthält 2 Turing-Maschinen mit 5 Zuständen, deren Stoppstatus zu diesem Zeitpunkt anscheinend unbekannt war. (Wenn Sie nach "simple counter" suchen, werden Sie direkt zwischen diesen 2 weitergeleitet.) Ich habe sie hier kopiert, falls der Link ausfällt:
quelle
Collatz-Vermutung:
Das folgende Programm hält immer an:
Leichte Variation (immer noch eine Vermutung, da sie auf einem Ergebnis von Collatz basiert):
Bei einigen Eingaben wird das folgende Programm niemals zweimal in denselben Zustand versetzt (wobei der Zustand durch den Wert bestimmt wird, der von "input" gespeichert wird):
Beachten Sie, dass das zweite Programm niemals anhält, unabhängig davon, ob das erste Programm anhält oder nicht.
Es wird angenommen, dass das erste Programm für jede Eingabe immer beendet wird, wir haben jedoch keinen Beweis dafür, und es gibt möglicherweise noch eine ganze Zahl, für die das Programm nicht angehalten wird (es gibt auch einen Preis von 100 USD für den Beweis dafür). .
Das zweite Programm ist ebenfalls interessant: Es besagt, dass das Programm für einige Eingaben niemals zweimal in den gleichen Zustand wechselt, was im Grunde voraussetzt, dass das erste Programm eine Sequenz aufweist, von der bekannt ist, dass sie ohne Wiederholung auseinander läuft. Es erfordert nicht nur, dass die Collatz-Vermutung falsch ist, sondern es erfordert, dass sie falsch und ohne Schleifen ist , abgesehen von der offensichtlichen 1,4,2,1-Schleife.
Wenn Collatz nur Gegenbeispiele für Schleifen hat, ist die Abweichung von der Vermutung falsch
Wenn Collatz ohne Schleifen falsch ist, ist die Variation der Vermutung wahr
Wenn Collatz wahr ist, ist die Variation falsch
Wenn Collatz falsch ist, weil es Schleifen hat und weil es eine Zahl hat, für die es divergiert, ist die Variation der Vermutung wahr (es ist nur eine Zahl erforderlich, für die es divergiert, ohne eine Schleife einzugeben).
Ich denke, die Variante ist interessanter (nicht nur, weil ich sie durch Zufall gefunden und dank @LieuweVinkhuijzen bemerkt habe), sondern weil es tatsächlich eines echten Beweises bedarf. Durch brachiales Forcen können wir möglicherweise eines Tages eine Schleife finden (und das wird eine Schleife sein, die länger als 70 Nummern ist: Nach dem gegenwärtigen Stand der Technik können keine Endlosschleifen kürzer als 68 oder so sein), und brutal Erzwingen ist nicht interessant: Es ist nur das Knacken von Zahlen. Wir können jedoch eine unendliche divergierende Sequenz nicht brachial erzwingen, wir wissen nicht, ob sie wirklich ohne einen echten Beweis enden wird.
EDIT: Ich habe den Teil über Collatz Conjecture übersprungen. Entschuldigung, ich habe wirklich auswendig mit einem Algorithmus geantwortet, den ich vor einigen Jahren gelesen habe. Ich habe nicht erwartet, dass das bereits erwähnt wurde.
EDIT2: Ein Kommentar hat mich darauf aufmerksam gemacht, dass ich den Algorithmus mit einem Fehler geschrieben habe. Dieser Fehler unterscheidet meine Antwort jedoch von der Collatz-Vermutung (aber eine direkte Variation davon).
quelle
input > 1
stattinput >= 1
? Wie es jetzt ist, wird dieses Programm>
, aber solange wir keinen Beweis für Halt>
haben, können wir nicht sicher sein, ob wir die1 -> 4 -> 2 -> 1
Schleife erreichen werden (zum Beispiel, wenn es nicht endet, weil>
es nicht funktioniert ). t reach>=
)