Differenza tra una macchina turing e una macchina a stati finiti?


27

Sto facendo una presentazione sulle macchine Turing e volevo fornire alcune informazioni sulle FSM prima di presentare le macchine Turing. Il problema è che davvero non so cosa sia MOLTO diverso l'uno dall'altro.

Ecco cosa so che è diverso:

L'FSM ha stati sequenziali a seconda della condizione corrispondente soddisfatta mentre le macchine di Turing operano su infiniti "Tape" con una testina che legge e scrive.

C'è più spazio per gli errori negli FSM poiché possiamo facilmente cadere in uno stato senza fine, mentre non è così tanto per le macchine Turing poiché possiamo tornare indietro e cambiare le cose.

Ma a parte questo, non conosco molte più differenze che rendono le macchine Turing migliori di quelle di FSM.

Potete per favore aiutarmi?


2
Google non è difficile per "FSM vs. Turing Machine"! Questa è la parte divertente di fare le tue ricerche. La differenza principale è che una macchina di Turing ha una "memoria" infinita, ma un FSM no.
Dai,

Ok, ho tradito un po 'lì>.> ;; Gotcha! Grazie!
Julio Garcia,

3
l'argomento su "errore" non è corretto. Prova Wikipedia e i libri di testo. Vedi quali sono le loro differenze di base, lo scopo di usarle (ad esempio quando non possiamo scegliere un FSM su TM?) E la loro relazione.
Parham,

@MahmoudAlimohamadi quello che voglio dire è che c'è una maggiore possibilità per un fsm di atterrare su uno stato senza fine.
Julio Garcia,

@Dai: è più corretto dire che una Turing Machine può usare una quantità arbitrariamente grande di memoria. L'importo utilizzato non è mai infinito.
reinierpost,

Risposte:


24

La principale distinzione tra il funzionamento dei DFA (Deterministic Finite Automaton) e dei TM è in termini di utilizzo della memoria.

Intuitivamente, i DFA non hanno affatto memoria "scratch"; la configurazione di un DFA è interamente giustificata dallo stato in cui si trova attualmente e dai suoi attuali progressi nella lettura dell'input.

Intuitivamente, le TM hanno una memoria "scratch" sotto forma di nastro; la configurazione di una TM consiste sia nel suo stato attuale che nel contenuto corrente del nastro, che la TM può cambiare durante l'esecuzione.

Un DFA può essere pensato come una TM che non modifica alcun simbolo del nastro né sposta la testa a sinistra. Queste restrizioni rendono impossibile riconoscere determinate lingue che possono essere accettate dalle TM.

Si noti che uso il termine "DFA" anziché "FSM", poiché, tecnicamente, considererei una TM una macchina a stati finiti, poiché le TM per definizione hanno un numero finito di stati. La differenza tra DFA e TM è nel numero di configurazioni, che è lo stesso del numero di stati per un DFA, ma è infinitamente grande per una TM.


Ah, capito. Una domanda riguardante la parte "nessuna memoria": ho visto un esempio di distributore automatico che ha aggiunto le monete erogate. Come fanno a sapere quanti soldi ci sono se non hanno memoria?
Julio Garcia,

@JulioGarcia È difficile dirlo senza sapere esattamente cosa hai visto. Ci sono macchine Moore e Mealy che possono emettere simboli durante le transizioni. L'attività di un distributore automatico potrebbe essere meglio modellata da uno di questi meccanismi. Un DFA vaniglia accetta e rifiuta solo le stringhe ... un distributore automatico dovrebbe "accettare" qualsiasi "stringa" di conio. A seconda del modo in cui modellate gli effetti collaterali aggiuntivi derivanti dalla modifica, il tipo di memoria scratch necessaria potrebbe essere nessuno o infinito accesso casuale.
Patrick87,

Senza vedere il tuo esempio, non posso esserne completamente sicuro, ma ho due ipotesi. Uno è che non sa quanti soldi ci sono: presume solo che ci sia abbastanza. Non vorrai costruire un vero distributore automatico in quel modo, ma è comunque un utile esempio del concetto. L'altra possibilità è che non è proprio un FSA "puro": è collegato a un sensore che può in qualche modo ottenere questi dati dall'esterno della macchina. La macchina non sa né importa da dove provengono i dati e non può archiviare nulla nel sensore (quindi non è proprio "memoria"), ma può comunque agire su ciò che vede lì.
The Spooniest

16

Le macchine di Turing descrivono una classe di lingue molto più ampia, la classe di linguaggi ricorsivamente enumerabili. Le macchine a stati finiti descrivono la classe delle lingue regolari.

Le macchine a stati finiti non hanno "memoria", sono limitate dai suoi stati.

Una macchina a stati finiti è una macchina di Turing limitata in cui la testa può eseguire solo operazioni di "lettura" e si sposta sempre da sinistra a destra.

Prendi questa lingua come esempio:

L={un'ioBio| io> =0}

Poiché le macchine a stati finiti sono limitate nel senso che non hanno memoria, un FSM che accetta L non può essere costruito.

Riassumere:

Le macchine a stati finiti descrivono una piccola classe di linguaggi in cui non è necessaria memoria.

Le macchine di Turing sono la descrizione matematica di un computer e accettano una classe di linguaggi molto più ampia di quella degli FSM.

Le macchine di Turing hanno una potenza computazionale maggiore di quella degli FSM. Ci sono compiti che nessun FSM può fare, ma che possono fare le macchine di Turing.


3

Avevo lo stesso dubbio e ho visto due video molto illuminanti e una spiegazione su Quora come segue:

Una macchina a stati finiti è solo un insieme di stati e transizioni. L'unica memoria che ha è lo stato in cui si trova. Pertanto, il numero di stati di memoria è ... finito.

Una macchina Turing è una macchina a stati finiti più una memoria a nastro. Ogni transizione può essere accompagnata da un'operazione sul nastro (sposta, leggi, scrivi).

Da questo ho capito che una macchina di turing usa / ha una macchina a stati finiti come parte della sua procedura operativa, oltre ad aggiungere un po 'di memoria modificabile ad essa.

Si prega di guardare anche quei due video, sono illuminanti!

https://youtu.be/gJQTFhkhwPA

https://youtu.be/E3keLeMwfHY


2

Per quanto ho capito le differenze tra (modello standard) Turing e (modello standard) Mealy Machines:

  • Le macchine di Turing leggono e scrivono sullo stesso nastro vs. macchine Mealy leggono su un nastro di input e scrivono su un altro nastro di output
  • Le macchine di Turing possono cambiare la "direzione del nastro" (procedere verso sinistra o verso destra [o arrestare]) vs. Le macchine Mealy possono solo procedere verso destra (ecco perché non c'è nessuna direzione impostata {L, R, H} nella funzione di transizione della macchina Mealy [è implicitamente {R}, il che significa che non c'è alcuna scelta])
  • Le macchine di Turing possono fermarsi su qualsiasi cella a nastro vs. Le macchine di Mealy leggono l'input completo e quindi smettono di accettarlo o rifiutarlo

-3

Una macchina Turing può memorizzare, come parte del nastro, cose che vuole ricordare.


5
Non è chiaro cosa intendi con "esso", ma sia le macchine di Turing che gli FSM possono farlo, quindi non fa differenza.
David Richerby,

@DavidRicherby Ma un FSM può immagazzinare solo una quantità predeterminata, mentre le macchine di Turing possono immagazzinare quanto vogliono. Questa è la differenza fondamentale.
Gilles 'SO- smetti di essere malvagio' il

1
@Gilles concordato ma non è quello che dice la risposta.
David Richerby,
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.