В чем разница между конечными автоматами и конечными автоматами?

16

Я использовал FSM в схемах цифровых последовательных цепей. Но я незнаком с конечными автоматами. Может ли кто-нибудь помочь мне понять «основную» разницу между ними?

gpuguy
источник
5
Из Википедии : «... В теории автоматов, ветви теоретической информатики, детерминированный конечный автомат (DFA) - также известный как детерминированный конечный автомат - это конечный автомат, который принимает / отклоняет конечные строки символов и производит только уникальное вычисление (или прогон) автомата для каждой входной строки ... ". DFA - предпочтительный термин, используемый в теории автоматов, FSM - предпочтительный термин, используемый в практических приложениях.
Vor
4
Я думаю, что FSM более инклюзивен, включая также автоматы Мили и Мура. NFA являются одной конкретной моделью.
Рафаэль
@ Рафаэль: Я согласен с вами, FSM кажется более широким (даже в Википедии проводится различие между преобразователями, акцепторами, классификаторами и секвенсорами). "DFA" ~ "Приемники FSM" (FSM только с выходом да / нет) ... кроме того, FSM в схемотехнике обычно использует выходы ... Возможно, вы можете преобразовать свой комментарий в ответ.
Vor
Лично я использую FSM в качестве широкого термина, который включает в себя машины DFA, NFA, Мили и Мура, (конечное состояние) преобразователи и т. Д .; просто все с конечным пространством состояний и без вспомогательной памяти.
Дан
1
@Raphael В формальной теории (или теории вычислений) мы предпочитаем использовать слово «автоматы» - чтобы подчеркнуть, что наша машина «автоматическая» (самодвижущаяся, как ваш компьютер) - «автоматическая» в том смысле, что когда-то Вы определили правила перехода, вам не нужно применять какой-либо явный интеллектуал для обработки / классификации строк (вам просто нужно ссылаться на правила перехода на каждом шаге). - тогда как машинный термин предпочтителен в контексте устройства (а не модели) - хотя оба являются синонимами друг друга.
Грижеш Чаухан

Ответы:

12

Насколько я понимаю, оба имеют «состояния» и «действия», которые заставляют машину переходить из одного состояния в другое при входном сигнале. Таким образом, концептуальные идеи совпадают. Есть некоторая разница в деталях.

В FSM для схемотехники входной сигнал обычно считается двоичным (двоичным), тогда как в автоматах с конечным состоянием можно использовать общий «абстрактный» алфавит входных символов. Во-вторых, FSM также генерирует вывод, связанный с достигнутым состоянием, также двоичный. В терминах автоматов это «расширение» называется машиной Мура. Автоматы, однако, имеют конечные (или принимающие) состояния, которые сигнализируют о благоприятном прочтении ввода. Наконец, FSM являются в основном детерминированными, то есть для каждого входа в определенном состоянии существует одно следующее состояние. В теории автоматов также рассматривается недетерминированный вариант, когда можно выбирать, куда двигаться.

Хендрик Ян
источник
6

Исходя из моего опыта, а также статьи в Википедии, существует несколько видов конечных автоматов , в том числе

Некоторые из понятий, летающих вокруг, отличаются в основном мотивацией; некоторые возникли из языка и / или теории вычислимости, другие из компьютерной архитектуры.

Обратите внимание, что вы также можете изменить несколько парадигм, чтобы получить автоматы, которые, возможно, все еще являются конечными автоматами, например

Как вы можете видеть, ванильные конечные автоматы, как описано в TCS 101, являются лишь одним из множества вариантов, каждый со своим (более или менее формальным) определением.

Рафаэль
источник
2

Хотя основная идея, на которую они оба полагаются, одна и та же. Оба используют конечные состояния и переходят в другое состояние в качестве входного канала. Тем не менее, FSM, будучи машиной, такой как Full adder или SR flipflop, имеет биты как вход и выход. Да, FSA также имеет битовый вывод, 0 для не завершающего состояния и 1 для завершающего состояния, но это абстрактный механизм, который не виден. Есть разница в орграфах, которые нарисованы, чтобы представлять их. Кроме того, FSA является логическим и вычислительным устройством, а FSM - цифровым логическим устройством.

Сарьян Сандип
источник