Определение "DFA для языка"

Я только начал изучать теорию вычислений в этом семестре и немного смутился из-за фразы "DFA для языка". Если его попросили построить DFA для некоторого набора двоичных строк L, значит ли это найти DFA M с L(M)=L или просто $L(M)\supset L$?

3 ответа

Решение

Большинство курсов по компилятору / теории имеют разные стили, связанные с обучающими определениями детерминированных конечных автоматов и формальных языков, но я постараюсь сделать это описание как можно более независимым.

Фраза "DFA для языка" в широком смысле означает: DFA, который принимает каждый word на языке и отвергает каждый word не на языке. То, как меня учили DFA, состоит в том, чтобы иметь конечные / принимающие состояния и регулярные состояния, что устраняет необходимость в неявном состоянии ошибки. Это означает, что DFA принимает слово, если в конце ввода находится состояние, в котором он находится accepting и он отклоняет слово, если государство не accepting,

Пример:

Давайте определим L как язык, который содержит четное число 1. Это будут двоичные строки, поэтому символы будут только 0 и 1. 00, 110, 111, 1111 и т. д. являются примерами слов на этом языке. Обратите внимание, что пустая строка на этом языке.

У нас может быть два государства в нашем DFA. Начальное состояние, давайте назовем это even 1s, также является принимающим состоянием, потому что 0 из них является четным. Другое состояние odd 1s Это не принимает.

Что касается переходов, когда even 1s получает 1, он переходит к odd 1s, И когда odd 1s получает 1, он переходит к even 1s, Теперь число 0 не имеет значения, поэтому в любом из состояний оно переходит в себя.

введите описание изображения здесь

Извиняюсь за двойную стрелку, этот сайт отличный, но я не мог понять, как разделить переходы между even 1s а также odd 1s

Детерминированный конечный автомат (DFA) В DFA для каждого входного символа можно определить состояние, в которое перейдет автомат. Следовательно, он называется детерминированным автоматом. Поскольку число состояний конечно, машина называется детерминированной конечной машиной или детерминированным конечным автоматом.

Формальное определение ДКА ДКА может быть представлен набором из 5 (Q, ∑, δ, q0, F), где —

-> Q — конечное множество состояний.

-> ∑ — это конечное множество символов, называемое алфавитом.

-> δ — функция перехода, где δ: Q × ∑ → Q

-> q0 — начальное состояние, из которого обрабатывается любой ввод (q0 ∈ Q).

-> F — множество конечных состояний/состояний Q (F ⊆ Q).

Напишите свой вопрос точно. здесь DFA для языка означает, что вам нужно создать машину только для конкретного языка, а не для его подмножества или надмножества. построить DFA maachine, для которого L(M)= L.

Другие вопросы по тегам