Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Эквивалентность детерминированных и недетерминированных конечных автоматов.




В общем случае для любого НКА можно построить ДК с количеством состояний zn, где n-количество состояний недетерминированного конечного автомата.

AN={QN, ƩN, δN, q0N, FN}; AD={QD, ƩD, δD, q0D, FD}; L(AN)=L(AD)

1) Алфавит ƩN и ƩD – совпадают

2) QD ⊆ 2QN, причем, если какое-то множество состояний недопустимо в НКА, то оно не входит в QD.

3) F – множество всех подмножеств, таких, что в пересечении с FN оно не пусто.

4) Для каждого подмн. мн. символов S ≤ QN и входного символа a δs(a,s)=

        A     B C   D
→q0 q1 * q2 q0q1 * q0q2 * q1q2 * q0q1q2 q0q1 ∅ q2 q0q1 q0q1q2 q2 q0q1q2 q0 q2 q2 q0q2 q0q2 q2 q0q2

 

При построении ДКА в качестве начального, используется состояние, соответствующее мн. {q0}. Данное состояние является достижимым.

Пусть S – мн. достижимых состояний, тогда мн. состояний SU{S’(δD(S,Q)=S’, S ∈δ, a ∈ Ʃ}. Теорема: Если ДКА D={QD, ƩD, δD, {q0}, FD} построен из N={QN, Ʃ, δN, q0, FN} методом конструкции подмножеств, то их языки совпадают L(D)=L(N).

Теорема2: Язык L допустим некоторым ДКА тогда и только тогда, коггда допустим некоторый НКА.

Алгоритм преобразования НКА а ДКА: 1) Пусть q0 – нач. состояние НКА, тогда { q0} – нач. сост. ДКА. Пусть Р – состояние НКА, в которое можно попасть из q0 по значениям входных символов q1, q2,…, qn, тогда состояния { q0, r1, …, rk, p} являются сост. ДКА, где, r1, …, rk – это все состояния, в которые можно попасть из q0 по любому суффиксу входного слова.

Конечные автоматы с эпсилон-переходами.

Это пятерка вида E=(Q, Ʃ, δ, q0, F).

δ, Ʃ U [Ɛ]xQ→Q

Пример: автомат, который имеет вещественные числа:

  Ɛ 0..9 . +,-
→q1 q2 q3 q4 q5 q2 ∅ q5 q5 ∅ q0∅ q2,q3 ∅ q4 ∅ ∅ q4 q4 ∅ ∅ q2 ∅ ∅ ∅ ∅

Эпсилон-замыкание некоторого НКА все состояния, по которым можно поспасть из заданного по Ɛ-переходу. ECLOSE(q) содержит состояние q.

Определим расширенную функцию переходов: δ^(w,q0), δ^(Ɛ,q)=Ɛ(q); Язык: L(E)={w|δ^(w,q0) ⋂F=∅}; Теорема: язык Lдопускается неким Ɛ-НКА тогда и только тогда, когда он допускается неким ДКА.

Регулярные выражения.

1) Объединение двух языков L и M, обозначаемое L ∪ M – это множество цепочек, которые содержатся либо в L, либо в M, либо в обоих языках. Например, если L = {001, 10, 111} и M={Ɛ, 001}, то L ∪ M = {Ɛ, 10, 001, 111}.

2) Конкатенация языков L и M – это мн. цепочек, которые можно образовать путем дописывания к любой цепочке из L любой цепочки из M. например, если L = {001, 10, 111} и M={Ɛ, 001}, то LM – это {001, 10, 111, 001001, 10001, 111001}

3) Итерация языка L обозначается L* и представляет собой мн. всех тех цепочек, которые можно образовать путём конкатенации любого количества цепочек из L. L* можно представить как бесконечное объединение , где L0={Ɛ}, L1=L и Li для I > 1 равен LL..L (конкатенация i копий L).

Определим методы построения регулярных выражений.

Константы Ɛ и ∅ являются регулярными выражениями, определяющими языки { Ɛ } и ∅, соответственно, т.е. L{Ɛ}={Ɛ} и L{∅}={∅}.

Если a – произвольный символ, то а – регулярное выражение, определяющее язык {а}, т.е. L(a)={a}.

Переменныя, обозначенная прописной курсивной буквой, например, L, представляет произвольный язык.

Пусть E и F – регулярные выражения, тогда

1) E + F – регулярное выражение, определяющее объединение языков L(E) и L(F), т.е. L(E + F)=L(E) ∪L(F).

2) EF – регулярное выражение, определяющее конкатенацию языков языков L(E) и L(F). Таким образом, L(EF)=L(E)L(F).

3) E* - регулярное выражение, определяющее итерацию языка L(E), таким образом, L(E*)=(L(E))*.

4) (E) – регулярное выражение, определяющее тот же язык L(E), что и выражение E, т.е. L((E))=L(E)

Приоритет операций:

1) *; 2) конкатенация; 3) объединение (+)





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 842 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Неосмысленная жизнь не стоит того, чтобы жить. © Сократ
==> читать все изречения...

2311 - | 2016 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.