L'ingresso in una macchina di Turing può avere una lunghezza infinita?


26

Considerando solo l'alfabeto , le stringhe che possono essere fornite come input per le macchine di Turing provengono dall'insieme . Ma ha senso che l'input sia una stringa binaria infinita? Ad esempio, se una macchina Turing accetta tutte le stringhe che iniziano con uno 0, una stringa binaria di zeri infiniti appartiene anche alla lingua accettata dalla macchina Turing?Σ Σ={0,1}Σ

Risposte:


21

Non vi è alcun problema nell'esecuzione di una macchina Turing su un nastro inizializzato con una stringa infinita, sebbene questo non sia generalmente considerato. Tuttavia, abbiamo ancora bisogno che la macchina termini a tempo finito. Ci sono anche nozioni di calcolo a tempo infinito, che possono essere appropriate qui.


4
Terminare i calcoli a tempo finito mentre l'input è infinito sembra una sfida difficile.
Albero

5
@Mast Non necessariamente. Non puoi permetterti di leggere l'intero input.
Yuval Filmus,

1
@JulesMazur La parola chiave è hypercomputation .
Yuval Filmus,

3
@JulesMazur Non hai necessariamente bisogno di alcuna ipercalcutazione. Il programma può semplicemente continuare a scrivere su un nastro di output e il risultato converge in una stringa infinita come in una Turing Machine di tipo II.
jkabrg,

1
Penso che ti trovi in ​​difficoltà se consenti l'input di stringhe come input. In particolare, l'insieme di input non è più numerabile, il che rompe diverse prove.
Taemyr,

17

Questa è una delle caratteristiche delle macchine di tipo Turing di tipo 2 . Vengono utilizzati, tra le altre cose, per analizzare la calcolabilità delle funzioni tra numeri reali. Ancora più interessante, sono usati per analizzare la calcolabilità di operatori come l'integrazione.

Fatto interessante: l'integrazione numerica esatta è calcolabile.


5

Per rispondere alla domanda "ha senso", questo può essere utile anche se si considerano le macchine di Turing che funzionano a tempo finito.

In particolare, questo è un modo molto utile di pensare alle macchine Turing prive di prefissi . Si tratta di macchine il cui set di input di arresto è privo di prefisso; cioè, nessun input che causa l'arresto della macchina è il prefisso di un altro. Questi sono equivalenti in potenza alle normali macchine Turing, ma solo se permettiamo alla macchina Turing di decidere i propri input di arresto: vale a dire. l'utente non ha idea di quali input la macchina si fermerà (e questa è una proprietà indecidibile).

Un modo per vederlo è come una normale macchina di Turing con un nastro di input infinito unidirezionale con una testina che non può tornare indietro. L'utente riempie il nastro di bit e avvia la macchina. Questa è per definizione una macchina di Turing priva di prefissi. Se la macchina si arresta, deve aver letto solo un numero finito di bit e nessun prefisso di quella parte del nastro può essere un programma, altrimenti la macchina si sarebbe fermata lì.

Questo è un buon modo per parlare di distribuzioni di probabilità calcolabili: l'utente riempie il nastro con bit casuali (la fonte di casualità della macchina) e la macchina emette una stringa di bit casuale. L'insieme di tutte queste macchine di Turing corrisponde all'insieme delle distribuzioni calcolabili (in particolare le semimeasures semicomputabili inferiori).

Il vantaggio dell'input infinito è che non dobbiamo specificare cosa fa la macchina se le diamo il prefisso di un programma di arresto, vale a dire. la macchina prova a leggere oltre la fine dell'input che gli abbiamo dato.


2

Anche se non si dispone di un tale nastro, è possibile utilizzare un'altra macchina Turing per produrlo.

Una macchina Turing ha accesso al nastro dati vuoto, ma infinito (o alcune fonti dicono "la macchina ha solo una piccola fabbrica di nastri incorporata"). Quindi può inizializzarlo con alcuni schemi di dati programmabili e quindi il nastro potrebbe essere consumato come input di un'altra macchina Turing.

Naturalmente, se il contenuto è tale da non poter definire un algoritmo su come produrlo, tale contenuto non può essere creato dalla macchina di Turing.


6
Non sono sicuro di come questo risponda alla domanda. In ogni caso, non tutte le sequenze infinite possono essere generate dalle macchine di Turing, poiché ci sono innumerevoli stringhe infinite su qualsiasi alfabeto con almeno due simboli, mentre ci sono solo molte macchine di Turing e innumerevoli input finiti con cui seminare.
David Richerby,

2

Ci sono alcuni casi in cui l'input infinito può essere considerato e ridotto all'azione di una macchina di Turing "standard". Ad esempio, si consideri un modello finito ripetuto all'infinito specificato sull'input. È possibile creare una macchina Turing che tenga traccia di quanta parte di questo modello infinito è stata modificata dalle azioni correnti della testina usando una quantità finita di memoria / archiviazione su nastro. In altre parole, "simula in modo equivalente" un modello di dimensioni infinite sul nastro.

Un altro caso in cui è stato considerato "input infinito" è l'analisi dell'equivalenza / completezza di Turing degli automi cellulari. in una complessa dimostrazione, Cook ha introdotto un concetto ora definito da alcuni come "debole equivalenza di Turing" nel convertire le operazioni della regola CA 110 in operazioni della macchina di Turing che iniziano su un nastro iniziale specificato all'infinito ma con modelli (ripetuti) di dimensioni finite.


1
I termini "input infinito" e "codifica finita di un oggetto infinito" sono chiaramente distinti ed elementari (ogni linguaggio regolare infinito con il suo DFA minimo ne è un esempio). Non dovrebbero essere confusi qui.
Raffaello

2
sì I DFA possono essere utilizzati per la codifica descritta. come delineato un nastro con una codifica finita di una stringa di lunghezza infinita (tramite ripetizione di schemi finiti) è sia differente / simile nella capacità di un nastro con solo stringhe finite.
vzn

1

Nei linguaggi formali, una stringa è, per definizione, una sequenza finita di simboli. Una classica Turing Machine ha un nastro infinito con una stringa di input finita. Pertanto, sebbene non vi siano limiti alla durata dell'input, non può essere infinito.

Detto questo, ci sono molte macchine alternative che funzionano in modo simile a una TM ma con sequenze di input infinite.

Se abbia senso avere input di lunghezza infinita dipende dallo scopo. Rigorosamente nel contesto delle macchine di Turing, non ha senso (poiché non è possibile), ma nel contesto delle macchine simili a Turing, ha un senso e ha molte applicazioni.


4
È perfettamente possibile avere stringhe infinite. In effetti, esiste un'intera branca della teoria degli automi che si occupa di questa situazione esatta. E, dato che l'unico cambiamento necessario alla definizione di macchine di Turing per consentire loro di gestire infiniti input è quello di eliminare la condizione che dice che l'input deve essere finito, non sono d'accordo sul fatto che "non ha senso" parlare di macchine di Turing e stringhe infinite.
David Richerby,

1
@DavidRicherby: sembra che siamo d'accordo. Sentiti libero di farmi sapere come posso riformulare l'ultimo paragrafo per chiarire che è solo strettamente nel contesto di Turing Machines originali, classiche, non alterate (dove gli input sono per definizione finiti), che non ha senso parlare di input di lunghezza infinita. Non appena eliminiamo la condizione, non è più strettamente una TM, ma (quella che ho definito) una macchina simile a Turing.
tutti il

1
Non sono d'accordo sul fatto che il dispositivo smetta di essere una macchina Turing solo perché lo si avvia con roba infinita sul nastro. La macchina è sempre la stessa macchina; hai appena cambiato le condizioni iniziali. Le definizioni di come le macchine di Turing si relazionano con i linguaggi di stringhe finite (ad esempio, linguaggi decidui o semi-decidibili) sono in termini di input finiti, ma ciò non significa che la macchina lo richieda. Allo stesso modo, il tuo computer non smetterebbe di essere un computer se metti un mucchio infinito di CDROM accanto ad esso.
David Richerby,

1
@DavidRicherby Bene, tecnicamente una macchina di Turing è una macchina che accetta input finiti. Se si modifica questa restrizione nella definizione, si definisce qualcos'altro. L'idea alla base dell'informatica è sempre la stessa, in un certo senso, ma come si esprime la complessità ora? Questioni molto diverse.
Raffaello
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.