Perché utilizziamo macchine di Turing a nastro singolo per la complessità del tempo?


18

Come sapete, ci sono molte anomalie per le macchine di Turing a nastro singolo quando il tempo è : simulazione TM multi-nastro, simulazione di alfabeto nastro più grande con solo , costruibilità temporale, teorema della gerarchia temporale non stretto, ...{ 0 , 1 , b }o(n2){0,1,b}

Anche risultati come DTime(o(nlgn)=Reg , e limiti di tempo molto specifici del modello O(n2)per problemi semplici (che non si traducono in limiti inferiori anche superlineari su due TM nastro).

Per la complessità dello spazio, utilizziamo un modello in cui abbiamo un nastro di input di sola lettura separato, che è più naturale e robusto.

Un modello TM con più nastri (o almeno 2 nastri funzionanti) sarebbe molto più robusto e non causerebbe anomalie come quelle che ho elencato sopra. Una volta ho chiesto a un importante teorico della complessità che ha dimostrato i risultati della simulazione nei primi anni della teoria della complessità se conosce qualche miglioramento su uno di questi vecchi risultati e la risposta è stata che non pensa che "le domande sull'unico modello di nastro sono che importante".

Se cambiamo il modello standard per la complessità temporale in due TM nastro, i risultati ragionevoli nella teoria della complessità non cambieranno ed eviteremo queste anomalie causate da un particolare modello. Quindi la mia domanda è:

c'è qualche motivo per cui la complessità temporale è ancora definita in termini di TM a nastro singolo? (diversi dai motivi storici)


7
Non ho mai visto la complessità temporale definita dalle TM a nastro singolo. Ho visto solo le robuste classi di complessità temporale definite dalle TM a nastro singolo.

@Ricky, intendevo che la complessità temporale di un problema è definita in termini di complessità temporale delle TM a nastro singolo che possono risolverlo.
Kaveh,

e voglio dire che non l'ho mai visto fatto. Ho sempre visto, almeno, un accesso casuale.

7
ma è davvero la solita definizione? quello che ho visto nei libri di testo è: 1) definire la macchina di Turing a nastro singolo (perché è più semplice); 2) mostra come estendere ad altre varianti, in particolare multi-nastro e accesso casuale; 3) mostrare che tutti questi possono simularsi a vicenda con al massimo un rallentamento polinomiale; 4) dimenticare prontamente il modello per la maggior parte, almeno fino a quando non avremo bisogno di cose più sottili come macchine per oracoli e riduzioni dello spazio di log; quindi, come @RickyDemer, sfiderei l'affermazione che questa è davvero la solita definizione.
Sasho Nikolov,

1
Non ho una risposta per questo, ma voglio solo indicarti questo lavoro di Yamakami ( springerlink.com/content/u844854721p83870 ). Questo documento discute di ciò che accade quando si aggiungono consigli a una macchina di piccole dimensioni (ovvero TM a nastro singolo lineare). Dimostra diverse separazioni di classe, ma lo fa usando queste TM a nastro singolo. Queste separazioni non funzionerebbero se avessi un altro tipo di TM. Penso che questo sia un bell'esempio in cui puoi dimostrare cose interessanti con un nastro e probabilmente non puoi farlo con un modello diverso. La morale è "le questioni a nastro singolo quando si affrontano le cose sottili".
Marcos Villagra

Risposte:


13

Le altre risposte sembrano molto carine. Vorrei condividere un commento che Russell Impagliazzo ha fatto anni fa in una conferenza, che da allora mi è rimasta fedele.

Penso che Turing abbia preferito un singolo nastro TM a causa della plausibilità fisica.

Ho indicato Russell a questa discussione giorni fa ma, visto che non è qui, mi piacerebbe che il suo commento fosse noto e farò del mio meglio per interpretarlo.

Per un singolo nastro TM, supponendo un nastro di lunghezza infinita (si prega di attenersi a me), è possibile costruire un TM che necessita solo di una quantità limitata di energia per iterazione. Immagina il nastro come una lunga asta e la testa, che contiene tutta la logica TM, si sposta semplicemente lungo questa asta. (Lo considero un piccolo aggeggio a ingranaggi carino, usando una tecnologia molto primitiva. L'asta può avere tacche per aiutarlo lungo e il contenuto della cella a nastro può essere solo un blocco fatto scorrere ortogonalmente all'asse dell'asta.)

D'altra parte, come si fa per una -tape TM? Se hai kkkdei suddetti aggeggi, devono comunicare il loro stato di lettura ad altre teste potenzialmente estremamente distanti, che richiedono quantità illimitate di energia (diciamo che usi fili, che necessariamente perdono calore), e inoltre non sono istantanee, complicando così il meccanismo. Se invece tenessi insieme le teste e muovessi i nastri sottostanti, utilizzeresti abbastanza energia per spostare nastri di lunghezza infinita .. Non vedo come ottenere energia limitata in entrambi i casi. Trucchi come ridurre gli incrementi del nastro (per ottenere una lunghezza finita) suppongono un universo infinitamente divisibile e violare cose come la costante di Planck e il principio olografico. Anche ignorandoli, i meccanismi nella testa devono essere arbitrariamente precisi, il che causa ancora problemi energetici ed è prodigiosamente complicato.

Certo, il primo schema ha problemi: la costruzione del nastro infinito con infinitamente molte tacche, infiniti soli per alimentare i collettori solari sulla testa mobile, una scorta infinita di prodotti per la pulizia e la manutenzione, ecc. Forse qualche grande passo avanti nella meccanica quantistica può consentire alle teste -tape di comunicare bene, ma ora guarda quanto è complicato il nostro aggeggio. In ogni caso, penso che il commento di Russell sia molto, molto interessante.k


pensavo che Turing stesse cercando di astrarre il concetto di "informatica" e non di astrarre un modello per un dispositivo fisico. in quel caso, una macchina di Turing a nastro singolo cattura chiaramente l'intuizione filosofica secondo cui il calcolo comporta l'accesso locale a memoria (infinita) di grandi dimensioni
Sasho Nikolov

Mi aspettavo ragioni teoriche (non realizzabilità dei modelli) ma trovo questa risposta molto interessante, quindi la accetto. Grazie ancora.
Kaveh,

Mantenendo in posizione le testine del nastro sembra che possiamo rendere l'energia totale lineare o, speriamo, non peggio che quasilineare nel tempo progettando una forma della costruzione di Hennie-Stearns. Sto immaginando i nastri arrotolati in anelli sempre più grandi mentre si estendono in entrambe le direzioni ... O più fantasiosamente, su bobine di nastri, 100 nastri su una bobina, 100 bobine su un rack, 100 rack su un magazzino, e su e su. Naturalmente per l'energia limitata per iterazione avremmo bisogno di energia totale lineare nel tempo. Ma il quasilineare è meglio dell'ingenuo quadratico, quindi ho pensato di menzionarlo.
Dan Brumleve,

14

Ho visto dei testi definire TIME ( ) usando macchine Turing multi-nastro, ma Sipser usa una sola macchina nastro. Quasi sicuramente hai incontrato per la prima volta questo materiale tramite Sipser perché è scritto in modo così favoloso.f(n)

C'è una ragione pedagogica cristallina per cui Sipser fa questo, vale a dire il corso scorre naturalmente in quel modo perché:

  • È necessario introdurre la macchina a nastro singolo prima della macchina a nastro multiplo, altrimenti si accentua la curva di apprendimento.

  • Non vi sono motivi validi per introdurre la macchina multi-nastro prima di introdurre O ( ) e TIME ( ) per le macchine a nastro singolo.

  • Idealmente, dovresti confrontare la macchina multi-nastro con la singola macchina nastro nel momento in cui introduci la macchina multi-nastro, altrimenti l'ignoranza prolungata porterà ad ulteriore confusione.

  • Si potrebbe omettere di introdurre le analoghe classi TIME per macchine multi-nastro, semplificando così la notazione in generale.

Non c'è motivo di cavillare sulla pulizia concettuale quando la pedagogia stabilisce così chiaramente il percorso più semplice e ogni studente di informatica deve seguire questo corso elementare, compresi tutti coloro che ancora non capiscono le prove.


No, IIRC, il mio primo incontro con TM è stata la prima edizione di Hopcroft e Ullman. Ma il motivo per cui sto ponendo questa domanda è in realtà correlato al bel libro di testo di Sipser, ho insegnato la teoria della complessità basata su Sipser e ho sentito che sarebbe stato più semplice e più pulito (senza materiale essenziale perso) per me e gli studenti se fosse basato su un multi -tape TMs. Tutti questi piccoli dettagli tecnici sull'accesso limitato alle TM a nastro singolo sarebbero evitati e potrei coprire materiale più interessante nel tempo limitato che avevo. Sipser è rilassato sull'uso della tesi di Church-Turing,
Kaveh

quindi ho pensato che essere rilassato su questa parte potesse anche andare bene. Nella parte del teorema della gerarchia temporale, egli menziona che il fattore log aggiuntivo non è richiesto se avessimo più nastri e sarebbe abbastanza stretto. Questo mi ha fatto chiedere di vedere se esiste qualche motivo non storico per l'utilizzo di TM a nastro singolo per la complessità temporale. Non è peggio che usare un nastro di sola lettura separato per la complessità dello spazio (e di nuovo ciò è dovuto principalmente al fatto che un singolo nastro TM non cattura bene l'intuizione sulle classi di complessità dello spazio ridotto).
Kaveh,

2
Non vedo come si possa anche dare un senso ai limiti dello spazio sublineare senza un nastro di input separato.

Sì, suppongo che SPACE sia fatto in modo diverso, in parte perché eseguirai limiti sublineari, cosa che probabilmente non farai per TIME. Discuterei per la sottoscrizione a TIME o per fare qualsiasi cosa Sipser faccia per SPACE se desideri farlo in questo modo, sicuramente vorrei parlare di TIME o TIME_1 o di qualsiasi altra cosa prima delle macchine multi-nastro.
Jeff Burdges,

1
È interessante notare che Sipser dice semplicemente "Macchina di Turing" quando si definisce SPAZIO (f (n)) ma in seguito cambia la definizione quando si discute di funzioni sublineari f, assegnando un esercizio sull'equivalenza per superliner f. Ho insegnato questo materiale da Sipser prima. Non ci avevo pensato troppo al momento, ma ora sono contento.
Jeff Burdges,

7

La macchina originale Turing è stata descritta usando un singolo nastro:

www.cs.ox.ac.uk/activities/ieg/e-library/sources/tp2-ie.pdf

Quindi, come affermi nella tua domanda, questo è principalmente per motivi storici. Inoltre, c'è sempre la tendenza a chiedere qual è il modello più semplice che può fare qualcosa ...

Inoltre, poiché questo argomento viene di solito insegnato in modo molto formale, è tecnicamente più semplice descrivere una singola macchina a nastro che una lavorazione a due nastri.

Guarda anche:

http://www.cs.utah.edu/~draperg/cartoons/2005/turing.html

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.