Qual è la differenza tra automi finiti e macchine a stati finiti?


16

Ho usato FSM in progetti di circuiti sequenziali digitali. Ma non ho familiarità con Finite Automata. Qualcuno può aiutarmi a capire la differenza 'fondamentale' tra i due?


5
Da Wikipedia : "... Nella teoria degli automi, un ramo dell'informatica teorica, un automa deterministico finito (DFA) - noto anche come macchina a stati finiti deterministica - è una macchina a stati finiti che accetta / rifiuta stringhe finite di simboli e produce solo un calcolo univoco (o esecuzione) dell'automa per ogni stringa di input ... ". DFA è il termine preferito usato nella teoria degli automi, FSM è il termine preferito usato nelle applicazioni pratiche.
Vor

4
Penso che FSM sia più inclusivo, compresi anche gli automi Mealy e Moore. NFA è un modello specifico.
Raffaello

@Raphael: sono d'accordo con te, FSM sembra più ampio (anche Wikipedia fa la distinzione tra trasduttori, accettatori, classificatori e sequencer). "DFA" ~ "Accettatori FSM" (FSM con solo uscita sì / no) ... inoltre FSM nei progetti di circuiti, di solito fanno uso di uscite ... Forse puoi convertire il tuo commento in una risposta.
Vor

Personalmente, utilizzo FSM come termine generico che include macchine DFA, NFA, Mealy e Moore, trasduttori (a stati finiti) ecc .; semplicemente tutto con uno spazio a stati finiti e senza memoria ausiliaria.
Dan

1
@Raphael In nella teoria formale (o teoria del calcolo) preferiamo usare la parola "Automata" - per enfatizzare che la nostra macchina è una macchina "automatica" (auto-muovendosi come il tuo computer) - "automatica", nel senso che una volta sono state definite regole di transizione, non è necessario applicare alcuna stringa esplicita intelligente per elaborare / classificare (è sufficiente fare riferimento a regole di transizione ad ogni passaggio). - mentre il termine macchina è preferito nel contesto del dispositivo (piuttosto che nel modello) - sebbene entrambi siano sinonimi l'uno dell'altro.
Grijesh Chauhan,

Risposte:


12

Per quanto ho capito, entrambi hanno "stati" e "azioni" che fanno muovere la macchina da uno stato all'altro su un segnale di ingresso. Quindi le idee concettuali sono le stesse. C'è qualche differenza nei dettagli.

In FSM per la progettazione di circuiti si presume che il segnale di ingresso sia un po '(binario), mentre negli automi a stati finiti si può avere un alfabeto "astratto" generale di simboli di ingresso. In secondo luogo, un FSM genera anche un output, associato allo stato raggiunto, anche binario. Nella terminologia degli automi questa "estensione" è chiamata macchina Moore. Gli automi tuttavia hanno stati finali (o accettanti), che segnalano un input favorevole letto. Infine, gli FSM sono per lo più deterministici, cioè per ogni input in un certo stato c'è uno stato successivo. Nella teoria degli automi si considera anche la variante non deterministica in cui si potrebbe scegliere dove spostarsi.


6

Sulla base della mia esperienza e dell'articolo di Wikipedia, ci sono diversi tipi di macchine a stati finiti , tra cui

Alcune delle nozioni che volano in giro differiscono principalmente nella motivazione; alcuni sono nati dalla teoria del linguaggio e / o della calcolabilità, altri dall'architettura informatica.

Si noti che è anche possibile modificare diversi paradigmi per ottenere automi che sono, probabilmente, automi a stati finiti, ad esempio

Come puoi vedere, gli automi finiti alla vaniglia come insegnati in TCS 101 sono solo un sapore di molti, ognuno con la propria definizione (più o meno formale).


2

Sebbene l'idea principale su cui entrambi si basano sia la stessa. Entrambi usano stati finiti e passano a un altro stato come feed di input. Tuttavia, essendo FSM una macchina, come Full adder o SR flipflop ha bit come input e output. Sì, anche FSA ha un output di bit, 0 per lo stato non terminante e 1 per lo stato terminante, ma è un meccanismo astratto e non visibile. C'è differenza nelle digraph che viene disegnata per rappresentarle. Inoltre, FSA è un dispositivo logico e di calcolo mentre FSM è un dispositivo logico digitale.

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.