NFA и DFA

Anonim

NFA против DFA

Теория вычислений - это отрасль компьютерной науки, которая занимается решением проблем с помощью алгоритмов. Он имеет три ветви: теории вычислительной сложности, теории вычислимости и теории автоматов.

Автомат или теория автоматов - это исследование абстрактных математических машин или систем, которые могут быть использованы для решения вычислительных задач. Автомат состоит из состояний и переходов, и когда он видит символ или букву ввода, он делает переход в другое состояние, принимая текущее состояние и символ в качестве входных данных.

Теория автоматов или автоматов имеет несколько классов, которые включают в себя детерминированные конечные автоматы (DFA) и недетерминированные конечные автоматы (NFA). Эти два класса являются переходными функциями автоматов или автоматов.

При переходе DFA не может использовать n пустую строку, и ее можно понимать как одну машину. Если строка заканчивается в состоянии, которое не является приемлемым, DFA отклонит его. Машина DFA может быть построена с каждым входом и выходом.

У DFA только один переход состояния для каждого символа алфавита, и для его перехода есть только одно конечное состояние, что означает, что для каждого прочитанного символа в DFA есть одно соответствующее состояние. Легче проверить членство в DFA, но его сложнее построить. В DFA допускается обратное отслеживание, и для этого требуется больше места, чем NFA.

Откат не всегда разрешен в NFA. Хотя в некоторых случаях это возможно, в других - нет. Легче построить NFA, а также требует меньше места, но невозможно построить машину NFA для каждого входа и выхода.

Это понимается как несколько крошечных машин, которые вычисляются одновременно, а членство может быть сложнее проверить. Он использует Empty String Transition, и существует множество возможных состояний для каждой пары состояний и символа ввода. Он запускается в определенном состоянии и считывает символы, и затем автомат определяет следующее состояние, которое зависит от текущего ввода и других последующих событий. В принимающем состоянии NFA принимает строку и отклоняет ее в противном случае.

Резюме:

1. «DFA» означает «детерминированные конечные автоматы», а «NFA» означает «недетерминированные конечные автоматы». 2. Оба являются функциями перехода автоматов. В DFA следующее возможное состояние отчетливо установлено, а в NFA каждая пара состояний и входной символ могут иметь много возможных следующих состояний. 3.NFA может использовать пустой строковый переход, в то время как DFA не может использовать пустой переход строки. 4.NFA легче построить, а сложнее построить DFA. 5.Перегрузка в DFA разрешена в DFA, в то время как в NFA она может или не может быть разрешена. 6.DFA требует больше места, в то время как NFA требует меньше места. 7. Если DFA можно понимать как одну машину, и для каждого входа и выхода может быть сконструирована машина DFA, 8.NFA можно понимать как несколько небольших машин, которые вычисляются вместе, и нет никакой возможности создания машины NFA для каждого входа и выход.