+ ), * ).
Каждому такому выражению r соответствует представляемый им язык Lr.
Смысл операции объединения языков мы знаем. Определим операции
Пусть L1 и L2 - языки в алфавите $$\Sigma.$$
Тогда $$L= L_{1} \hat{} L_{2}= \{ w | (\exists w_{1} \in L_{1}) (\exists w_{2} \in L_{2}) (w = w_{1}w_{2})\}$$,
т.е.
Введем обозначения для "степеней" языка L:
Таким образом в Li входят все слова, которые можно разбить на i подряд
идущих слов из L.
(L)* языка L образуют все слова которые можно разбить на несколько подряд
идущих слов из L:
Ее можно представить с помощью степеней:
$$(L)^*= \bigcup_{i=0}^{\infty} L^i$$Часто удобно рассматривать "усеченную"
Отметим также, что если рассматривать алфавит $$\Sigma =\{ a_{1}, \dots , a_{m}\}$$ как
конечный язык, состоящий из однобуквенных слов, то введенное ранее обозначение $$\Sigma ^{*}$$ для множества всех слов, включая и пустое, в алфавите $$\Sigma$$
соответствует определению
В следующей таблице приведено формальное индуктивное определение
Выражение r
| Язык Lr
|
|---|---|
| $$\varnothing$$ | $$L_{\varnothing }=\varnothing$$ |
| $$\varepsilon$$ | $$L\_ \varepsilon =\{ \varepsilon \}$$ |
| $$a\in \Sigma$$ | La={a} |
Пусть r1 и r2 -это |
Lr1 и Lr2 -представляемые |
| ими языки. | |
| Тогда следующие выражения | |
| являются |
и представляют языки: |
r=(r1+r2) |
$$L_{r}=L_{r1}\cup L_{r2}$$ |
r=(r1circr2) |
$$L_{r}=L_{r1}\hat{} L_{r2}$$ |
r=(r1)* |
Lr=Lr1* |
При записи * имеет больший приоритет, чем +, а +. Это позволит опустить многие скобки. Например, $$(((1\hat{} 0)\hat{} ((1)^{*}+0))$$ можно записать как 10(1* + 0).
Определение 5.1.
Два r и p называются эквивалентными, если совпадают
представляемые ими языки, т.е. Lr=Lp. В этом случае пишем r = p.
Нетрудно проверить, например, такие
r + p= p+ r (коммутативность объединения),(r+p) +q = r + (p+q) (ассоциативность объединения),(r p) q = r (p q) (ассоциативность конкатенации),(r*)* = r* (идемпотентность (r +p) q = rq + pq (дистрибутивность).Пример 5.1.
Докажем в качестве примера не столь очевидное равенство: (r + p)* = (r*p*)*.
Пусть L1 - язык, представляемый его левой частью, а L2 - правой.
Пустое слово $$\varepsilon$$ принадлежит обоим языкам.
Если непустое слово $$w \in L_{1}$$, то по определению L'=Lr*Lp* (почему?). Поэтому $$w \in L_{2} = (L')^{*}$$.
Обратно, если слово $$w \in L_{2}$$, то оно представимо
как L'. Каждое из таких подслов v представимо
в виде v= v11... vk1 v12... vl2, где для всех i=1, ... , k подслово $$v_{i}^{1} \in L_{r}$$ и
для всех j=1, ... , l подслово $$v_{j}^{2} \in L_{p}$$ (возможно, что k или l равно 0).
Но это значит, что w является
Рассмотрим несколько примеров
Пример 5.2. (0 +1)* представляет множество всех слов в алфавите {0, 1}.
Пример 5.3. 11(0 +1)*001 представляет язык, состоящий из всех слов в алфавите {0, 1}, которые начинаются на '11', а заканчиваются на '001'.
Пример 5.4. {0, 1}, которые не содержат подслово '000' ( см. задачу 5.3).
Пример 5.5. 1*(01*01*)* представляет язык L0ч,
состоящий из всех слов в алфавите {0, 1}, в которых четное число нулей.
Действительно, каждое слово из L0ч либо вообще не содержит нулей, т.е. входит в язык, представляющий 1*, либо может быть разбито на блоки вида 01i01j, i,j >= 0, которым, быть может, предшествует блок
единиц. Выражение (01*01*), очевидно задает один такой блок, а его
Пример 5.6. Построим теперь регулярное выражение,
представляющее язык L0ч1ч,
который состоит из всех слов в алфавите {0, 1},
содержащих четное число нулей и четное число единиц.
Пусть w=w1w2 ... wn - произвольное слово из L0ч1ч.
Тогда, разумеется, n - четно, пусть n=2k.
Разобьем w на пары соседних букв pi =w2i-1w2i, i= 1,2,... ,k.
Возможны 4 вида таких пар: 00, 11, 01 и 10. Пар вида 00 и 11 может быть сколько угодно, а пар вида 01 и 10 обязательно четное число. Поэтому w разбивается на блоки, каждый из которых
начинается одной из пар 01 или 10 и содержит еще одну такую пару.
Каждый такой блок описывается выражением (01 +10)(00 + 11)*(01+10)(00 + 11)*.
При этом перед первым блоком
может быть префикс, состоящий из пар 00 и 11.
Множество слов состоящих из пар 00 и 11
задается выражением (00 +11)*.
Отсюда получаем выражение R0ч1ч, задающее язык L0ч1ч:
Покажем, что каждый
Теорема 5.1. Для каждого r можно эффективно построить
такой недетерминированный конечный автомат M, который распознает язык,
задаваемый r, т.е. LM= Lr.
Доказательство Построение автомата M по выражению r проведем индукцией по длине r, т.е. по общему количеству
символов алфавита $$\Sigma,$$ символов $$\varnothing$$ и $$\varepsilon,$$ знаков операций $$+, \hat{} , ^{*}$$ и скобок в записи r.
Базис. Автоматы для выражений длины 1: $$\varnothing,$$ $$\varepsilon$$ и $$a \in \Sigma$$ показаны на следующем рисунке.
(рис 5.1) Заметим, что у каждого из этих трех автоматов
Индукционный шаг. Предположим теперь, что для каждого <= k построен соответствующий
НКА, причем у него единственное заключительное состояние. Рассмотрим произвольное r длины k+1. В зависимости от последней операции
оно может иметь один из трех видов: (r1 + r2), (r1 r2) или (r1)*. Пусть $$M_{1}= <\Sigma , Q_{1}, q_{0}^{1}, \{ q_{f}^{1}\} , \Phi _{1} >$$ и $$M_{2}= <\Sigma , Q_{2}, q_{0}^{2}, \{ q_{f}^{2}\} , \Phi _{2} >$$ - это
НКА, распознающие языки Lr1 и Lr2, соответственно. Не ограничивая общности, мы будем
предполагать, что у них разные состояния: $$Q_{1} \cap Q_{2} = \varnothing$$.
Тогда НКА $$M= <\Sigma , Q, q_{0}, \{ q_{f}\} , \Phi >$$, диаграмма которого представлена на рис. 5.2, распознает язык $$L_{r} =L_{r1} + r_{2}=L_{r1} \cup L_{r2}$$.
(рис 5.2) Диаграмма автомата M, распознающего язык L(r1+r2)
У этого автомата множество состояний $$Q = Q_{1} \cup Q_{2} \cup \{ q_{0}, q_{f}\}$$,
где q0 - это новое начальное состояние, qf - новое (единственное !)
заключительное состояние, а программа включает программы автоматов M1 и M2 и четыре новых команды $$\varepsilon$$ -переходов: $$\Phi = \Phi _{1} \cup \Phi _{2} \cup \{ q_{0} \to q_{0}^{1}, q_{0} \to q_{0}^{2}, q_{f}^{1} \to q_{f}, q_{f}^{2} \to q_{f}\}$$.
Очевидно, что язык, распознаваемый НКА M, включает все слова из L{M1} и из L{M2}.
С другой стороны, каждое слово $$w \in L_{M}$$ переводит q0 в qf, и после первого шага несущий его путь
проходит через q01 или q02. Так как состояния M1 и M2 не пересекаются, то в первом случае
этот путь может попасть в qf только по $$\varepsilon$$ -переходу из qf1 и тогда $$w \in L_{M1}\}$$.
Аналогично, во втором случае $$w \in L_{M2}$$.
Для выражения $$r = r_{1}\hat{} r_{2}$$ диаграмма НКА $$M= <\Sigma , Q, q_{0}, \{ q_{f}\} , \Phi >$$, распознающего язык Lr,
представлена на следующем рисунке.
(рис 5.3) Диаграмма автомата M, распознающего язык L(r1 \hat{} r2)
У этого автомата множество состояний $$Q = Q_{1} \cup Q_{2}$$,
начальное состояние q0= q01, заключительное состояние qf =qf2,
а программа включает программы автоматов M1 и M2 и одну новую команду - $$\varepsilon$$ -переход из заключительного состояния M1
в начальное состояние M2, т.е. $$\Phi = \Phi _{1} \cup \Phi _{2} \cup \{ q_{f}^{1} \to q_{0}^{2}\}$$.
Здесь также очевидно, что всякий путь из q0= q01 в qf =qf2 проходит
через $$\varepsilon$$ -переход из qf1 в q02. Поэтому всякое слово, допускаемое M,
представляет конкатенацию некоторого слова из LM1} с некоторым словом из LM2},
и любая конкатенация таких слов допускается. Следовательно, НКА M
распознает язык $$L_{r} =L _{r1} \hat{} r_{2}\} =L _{r1} L_{r2}$$.
Пусть r = r1*. Диаграмма
НКА $$M= <\Sigma , Q, q_{0}, \{ q_{f}\} , \Phi >$$, распознающего язык Lr=Lr1* = LM1*
представлена на рис. 5.3.
(рис 5.3) Диаграмма автомата M, распознающего язык Lr1*У этого автомата множество состояний $$Q = Q_{1} \cup \{ q_{0}, q_{f}\}$$,
где q0 - это новое начальное состояние, qf - новое (единственное !)
заключительное состояние, а программа включает программу автомата M1 и четыре новых команды $$\varepsilon$$ -переходов: $$\Phi = \Phi _{1} \cup \{ q_{0} \to q_{0}^{1}, q_{0} \to q_{f}, q_{f}^{1} \to q_{0}^{1}, q_{f}^{1} \to q_{f}\}$$.
Очевидно, $$\varepsilon \in L_{M}$$. Для непустого слова w по определению k >= 1 слово w можно разбить на k подслов: w=w1w2... wk и все $$w_{i} \in L_{M1}$$. Для
каждого i= 1,... ,k слово wi переводит q01 в qf1. Тогда для слова w
в диаграмме M имеется путь
Следовательно, $$w \in L_{M}$$. Обратно, если некоторое слово
переводит q0 в qf, то либо оно есть $$\varepsilon,$$ либо его несет путь, который, перейдя из q0 в q01 и затем пройдя несколько раз по пути из q01 в qf1 и вернувшись из qf1 в q01 по $$\varepsilon$$ -переходу, в конце концов из qf1 по $$\varepsilon$$ -переходу завершается в qf.
Поэтому такое слово $$w \in L _{M1}^{*}$$.
Из теорем 4.2 и 5.1 непосредственно получаем
Следствие 5.1.
Для каждого
Это утверждение - один из примеров теорем синтеза: по описанию задания (языка как
Теорема 5.2.
По каждому детерминированному (или недетерминированному) конечному автомату можно построить
Доказательство этой теоремы достаточно техническое и выходит за рамки нашего курса.
Таким образом, можно сделать вывод, что класс конечно автоматных языков совпадает
с классом
Автомат Mr, который строится в доказательстве теоремы 5.1 по r, не всегда является самым простым.
Например, для реализации
выражения-слова a1a2 ... an, где $$a_{i} \in \Sigma (i=1,2, \dots , n)$$, можно просто
использовать автомат с (n+1) состоянием qi (i=0,1,2, ... , n) и командами q{i-1} ai -> qi, в котором нет пустых $$\varepsilon$$ -переходов, участвующих в общей конструкции для M1 и M2 можно сливать их начальные состояния
в одно, если в них нет переходов из других состояний (тогда не потребуется новое начальное состояние).
Можно также объединить их заключительные состояния, если из них нет переходов в
другие состояния и алфавиты M1 и M2 совпадают. Если из заключительного
состояния M1 нет переходов в
другие состояния, то при M2.
Вместе с тем,
утверждения задачи 5.9 показывают,
что наша общая конструкция достаточно экономна.
Пример 5.7. Применим теорему 5.1 к
На рис. 5.5 представлены M1 и M2, построенных
по выражениям r1 = (1 +01 +001) и $$r_{2}= (\varepsilon + 0 +00)$$, соответственно, с помощью конструкций для M1 можно было бы еще упростить, склеив
начальные состояния q2, p1 и s1, а также заключительные состояния q3, p3 и s4.
(рис 5.5) Автомат M3 для выражения r1* = (1 +01 +001)* получается из M1 добавлением нового
начального состояния q0 и заключительного состояния q5 и $$\varepsilon$$ -переходов из q0 в q1 и q5, из q4 в q5 и из q5 в q1. Затем результирующий автомат для исходного
выражения r получается последовательным соединением M3 и M2.
Он представлен ниже на рис. 5.6.
(рис 5.6) Диаграмма автомата M, распознающего язык Lr
Задача 5.1.
Определите L1 и L2:
L1= {a, ab, abb} и $$L_{2}= \{ \varepsilon , a, b, ab, a\}$$ ;L2= { a, b, abb, a} ;Задача 5.2. Пусть L={. Какой из следующих языков является L* этого языка?
{ w | w=bw' и | w| >= 12 }.Задача 5.3. Докажите правильность
Задача 5.4. Докажите следующие эквивалентности для
p*(p+q)* = (p + qp*)* = (p+q)* ;p(qp)* = (pq )*p ;(p*q*)* =(q*p*)* ;(pq )+(q*p* + q*) = (pq )*p q+p*.Задача 5.5. Постройте L в алфавите $$\Sigma = \{ 0, 1\}$$.
L= {w | w содержит нечетное число букв 0 и четное число букв 1}} ;L= {w | w содержит подслово 001 или подслово 110 } ;L= {w | w содержит по крайней мере мере два подряд идущих 0 } ;L= {w | w не содержит подслов 011 и 010}.Задача 5.6. Определите, какой язык представляется следующими
(0*1*)0 ;(01*)0 ;(00 +11 +(01 + 10)(00 +11)+(01+10))*.Задача 5.7. Упростить следующие
(00*)0 + (00)* ;Задача 5.8. Выше в задаче 14.5 предлагалось построить
автомат-распознаватель, который проверяет правильность сложения.
Постройте S,
т.е. следующее множество слов в алфавите {0, 1}3
S= {(x1(1),x2(1),y(1)) (x1(2),x2(2),y(2)) ... (x1(n),x2(n),y(n)) | y = y(n) ... y(2)y(1) - это первые n битов суммы двоичных чисел x1= x1(n)... x1(2)x1(1) и x2 = x2(n)... x2(2)x2(1)}.
Задача 5.9. Пусть Mr - это автомат, который строится в доказательстве теоремы 5.1 по r. Докажите, что
Mr нет переходов из единственного заключительного состояния qf ;Mr из каждой вершины выходит не более двух ребер;Mr не более чем вдвое превосходит длину выражения r, т.е. |Q| <= 2 |r|.Задача 5.10. Примените процедуру детерминизации из теоремы 4.2 и постройте ДКА, эквивалентный НКА $$M$$ из примера 5.7.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.