Se una macchina astratta può simulare se stessa, la rende Turing completa?


20

Ad esempio, nei linguaggi di programmazione è comune scrivere un compilatore / interprete X-in-X, ma a un livello più generale molti sistemi noti di Turing-completi possono simularsi in modi impressionanti (ad esempio simulando il gioco della vita di Conway nel gioco della vita di Conway ).

Quindi la mia domanda è: un sistema è in grado di simularsi da solo per dimostrare che Turing è completo? È certamente una condizione necessaria.


3
Prima di provare a rispondere, puoi essere un po 'più specifico di cosa intendi con "un sistema logico può simulare se stesso"? Intendi qualcosa come "può codificare la propria sintassi e provabilità"?
Andrej Bauer,

4
Cosa intendi esattamente per "simulazione"? In particolare, come si definisce la simulazione in modo che abbia ancora senso, ad esempio, nel contesto di Game of Life, ma non rende la domanda del tutto banale (ad esempio, una macchina che non fa nulla simula una macchina che non fa nulla)?
Jukka Suomela,


1
Bean, il cross-posting simultaneo è fortemente scoraggiato su cstheory, per favore vedi il poilicy . ps: non sono sicuro che questa domanda sia in argomento su cstheory, per favore controlla anche le FAQ per capire lo scopo di cstheory.
Kaveh,

5
La macchina "non fare nulla" può simularsi.
Max

Risposte:


24

Non necessariamente. Ad esempio, l' automa cellulare a blocco bidimensionale con due stati, in cui una cellula diventa viva solo quando i suoi quattro predecessori hanno esattamente due cellule vive adiacenti, può simularsi con un fattore di due rallentamenti e un fattore di esplosione di due dimensioni, ma non è noto per essere Turing completo. Per ulteriori informazioni su questo automa a blocchi e sulla regola B36 / S125 per il quartiere di Moore, che è anche in grado di simulare questo automa a blocchi, vedere l'Automa cellulare realistico "2x2" B36 / S125 di Nathaniel Johnston.


Cosa succede se la macchina presenta una certa complessità? Immagino che dovrebbe essere estraneo alla completezza di Turing ...
Jeremy Kun,

4
Ma ancora una volta, l'automa a blocchi menzionato potrebbe essere ancora Turing completo. Stai solo dicendo che l'implicazione non è nota per essere vera. Non che ciò rappresenti un controesempio.
Jeremy Kun,

9
Se si considerano solo stati di automi a blocchi con un numero finito di cellule vive, con questa restrizione è comunque possibile simulare se stesso allo stesso modo. Ma l'automa limitato non è certamente completo di Turing, perché nessun modello può sfuggire al suo diamante di delimitazione, quindi il destino di ogni modello può essere determinato solo in tempo esponenziale.
David Eppstein,

25

No non lo è. Conosco due principali classi di tecniche per evitare incoerenze / completezza di Turing.

  1. La prima linea di attacco consiste nell'impostare il sistema in modo che la sintassi possa essere aritmetizzata, ma il teorema del punto fisso di Godel non passa. Dan Willard ha lavorato ampiamente su questo e ha fornito sistemi logici di verifica automatica coerenti. Il trucco è eliminare i simboli delle funzioni di moltiplicazione e aggiunta e sostituirli con divisibilità e sottrazione. Questo ti dà abbastanza potenza per rappresentare la sintassi in modo aritmetico, ma il teorema del punto fisso non passa poiché la moltiplicazione non è dimostrabile in totale.

    Vedi Dan Willard. Sistemi di auto-verifica dell'assioma, teorema di incompletezza e principi di riflessione correlati . Journal of Symbolic Logic 66 (2001) pagg. 536-596.

  2. La seconda linea di attacco consente un maggiore utilizzo di punti fissi, ma per impostare le cose in modo che la sintassi non si aritmetica. I sistemi più belli per questo sono (IMO) basati su varianti di logica lineare. Ad esempio, nella Teoria degli insiemi di luce affine di Kazushige Terui, anche il principio di completa comprensione degli insiemi è senza restrizioni , ma poiché la logica ambientale della teoria degli insiemi è lineare (e quindi la contrazione non è consentita), il paradosso di Russell non è derivabile.

    La ragione intuitiva del fallimento dell'aritmetizzazione è che lo spazio funzionale lineare chiaro è impostato in modo che tutti i suoi abitanti siano tempo polinomiale. Di conseguenza, la versione lineare leggera degli assiomi di Peano non può dimostrare il totale esponenziale (poiché l'espiazione dei numeri unari richiede tempo esponenziale), e quindi non c'è più un isomorfismo tra i numeri naturali e le stringhe di bit.AB

    Kazushige Terui. Teoria degli insiemi di luce affine: una teoria degli insiemi ingenui del tempo polinomiale. Studia Logica, Vol. 77, n. 1, pagg. 9-40, 2004.

    Penso che questo documento sia più accessibile dopo aver letto il seguente articolo di Yves Lafont:

    Y. Lafont, Soft Linear Logic e Polynomial Time , Theoretical Computer Science 318 (numero speciale sulla complessità computazionale implicita) p. 163-180, Elsevier (2004)

    La teoria degli insiemi di Terui è molto espressiva, ma è difficile confrontarla con le teorie degli insiemi tradizionali, poiché gli ordinali di teoria delle prove non sono un buon strumento per confrontare sistemi molto deboli. Ad esempio, la teoria degli insiemi di Terui ovviamente non può dimostrare il totale dell'espiazione, e quindi la sua forza teorica delle prove non può nemmeno arrivare fino a . Le classi di complessità sono probabilmente migliori: è completa per il polytime (può dimostrare il totale di tutte le funzioni del polytime, ma non di più).ω

    Tendo a pensare a questi tipi di sistemi come prove di concetto per l'idea che la teoria della complessità possa servire da base per alcuni tipi di ultrafinitismo.


1
Trovo affascinante la tua risposta, @Neel. Potresti suggerire un buon punto di partenza per leggere (1) o (2)? Sono leggermente più interessato a conoscere (1), se questo è importante.
Aaron Sterling,

Sono più interessato a (2): quanto è potente questa teoria degli insiemi? È legato alle "nuove basi" quiniane?
cody

@Neel - Risposta interessante. Vorrei anche la stessa cosa di Aaron - potresti suggerire un buon punto di partenza per (1). Grazie
Akash Kumar l'

9

Considerare il seguente modello di macchina. La macchina con codice , su input x , genera sempre 0 .ix0

Si noti che qualsiasi macchina in questo modello è universale, come M ( M ', x ) = M ' ( x ) = 0 per tutti M ' , x .MM(M,x)=M(x)=0M,x

Questo chiaramente non è Turing completo ma ha anche chiaramente macchine universali.


0


@Kaveh: Ironia della sorte, sembra che io abbia giudicato erroneamente questa risposta come precedente alla tua, e così ho votato, modificato e commentato solo qui. I crosspost possono essere un tale dolore.
res

@res, penso che il livello dei siti crei diversi schemi di voto. Su math.se anche un'ottima risposta da parte di un altro utente di alto livello qui non ottiene così tanti voti positivi, quindi lo trovo normale. :) (Anche la mia risposta non è chiara e comprensibile come la risposta di David qui.)
Kaveh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.