Московский государственный университет имени М.В.Ломоносова
Опубликован: 09.07.2007 | Доступ: свободный | Студентов: 2487 / 1009 | Оценка: 4.56 / 4.26 | Длительность: 20:40:00
ISBN: 978-5-9556-0062-8
Специальности: Математик
Лекция 3:

Конечные автоматы

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

2.2. Конфигурация конечного автомата

Определение 2.2.1. Конфигурацией или мгновенным описанием (instantaneous description) конечного автомата \langle Q , \Sigma , \Delta , I , F \rangle называется любая упорядоченная пара \langle q , w \rangle, где q \in Q и w \in \Sigma ^*.

Замечание 2.2.2. Содержательно конфигурация представляет собой "мгновенное описание" конечного автомата. Если представить, что исходное слово, принадлежность которого рассматриваемому языку надо проверить, дано в некотором "входном потоке", то в конфигурации \langle q , w \rangle слово w есть та часть исходного слова, которая пока осталась во входном потоке (это некоторый суффикс исходного слова), а q - текущее состояние "управляющего устройства".

Определение 2.2.3. Определим на множестве всех конфигураций конечного автомата M бинарное отношение \vdash ( такт работы (step)) следующим образом. Если \langle p , x , q \rangle \in \Delta и w \in \Sigma ^*, то \langle p , x w \rangle \vdash \langle q , w \rangle. Иногда вместо \vdash пишут \underset{ \Delta }{\vdash}.

Пример 2.2.4. Рассмотрим конечный автомат

\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,1} ^{aaa}
 \ar `ur_r{+/u7mm/}`r_dr{[0,2]}^{ab} "1,3"  
 \ar  "1,3"  ^{b}
& 
& *=[o][F=]{2}
 \ar `dl_l{+/d7mm/}`l_ul{[0,-2]}^{\varepsilon} "1,1"  
}
из примера 2.1.2. Тогда \langle 1 , abba \rangle \vdash \langle 2 , ba \rangle.

Определение 2.2.5. Бинарное отношение \overset * {\vdash} определяется как рефлексивное, транзитивное замыкание отношения \vdash.

Пример 2.2.6. Для конечного автомата из примера 2.1.2 выполняется \langle 1 , aaaab \rangle \overset * {\vdash}
\langle 1 , aaaab \rangle и \langle 1 , aaaab \rangle \overstar{\vdash}
\langle 2 , \varepsilon \rangle.

Лемма 2.2.7. Пусть дан конечный автомат M = \langle Q , \Sigma , \Delta , I , F \rangle. Слово w \in \Sigma ^* принадлежит языку L(M) тогда и только тогда, когда для некоторых p \in I и q \in F верно \langle p , w \rangle \overset * {\vdash} \langle q , \varepsilon \rangle.

Лемма 2.2.8. Если \langle q_1 , x \rangle \overset * {\vdash}
\langle q_2 , \varepsilon \rangle и \langle q_2 , y \rangle \overset * {\vdash}
\langle q_3 , \varepsilon \rangle, то \langle q_1 , x y \rangle \overset * {\vdash}
\langle q_3 , \varepsilon \rangle.

Доказательство. Лемму легко доказать индукцией по количеству тактов в вычислительном процессе, ведущем из конфигурации \langle q_1 , x \rangle в конфигурацию \langle q_2 , \varepsilon \rangle.

Упражнение 2.2.9. Рассмотрим конечный автомат.

\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \rloop{0,1} ^{a}
 \rloop{0,-1} ^{b}
 \ar  "1,2"  ^{a}
& *=[o][F-]{2}
 \ar  "1,3"  ^{b}
& *=[o][F=]{3}
}
Перечислить все конфигурации \langle q , w \rangle, удовлетворяющие условию \langle 1 , abaa \rangle \overset * {\vdash} \langle q , w \rangle.

Упражнение 2.2.10. Существуют ли конечный автомат M, состояния q1, q2 и слова x, y, z, такие что \langle q_1 , x y \rangle \overset * {\vdash} \langle q_2 , y \rangle и \langle q_1 , x z \rangle \overset * {\nvdash} \langle q_2 , z \rangle?

Упражнение 2.2.11. Как связаны |Q|, | \Sigma |, | \Delta |, |w| и число достижимых из \langle q , w \rangle (в смысле \overset * {\vdash} ) конфигураций?

2.3. Конечные автоматы с однобуквенными переходами

Лемма 2.3.1. Каждый автоматный язык распознается некоторым конечным автоматом, не содержащим переходов с метками длины больше единицы и имеющим ровно одно начальное состояние и ровно одно заключительное состояние.

Пример 2.3.2. Рассмотрим язык, заданный конечным автоматом \langle Q , \Sigma , \Delta , I , F \rangle, где Q = {1,2}, \Sigma = \{ a , b , c , d \}, I = {1,2}, F = {1,2},

\Delta = \{
\langle 1 , ab , 2 \rangle ,\
\langle 2 , cd , 1 \rangle
\} .
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  %
& *=[o][F=]{1}
 \ar @`{+/l16mm/} [] ^{}
 \ar `dr_dl{[2,0]}_{ab} "3,2"  
& 
\\
  %
& 
& 
\\
  %
& *=[o][F=]{2}
 \ar @`{+/l16mm/} [] ^{}
 \ar `ul_ur{[-2,0]}_{cd} "1,2"  
& 
}
Тот же язык распознается конечным автоматом \langle Q' , \Sigma , \Delta' , I' , F' \rangle, где Q' = {0,1,2,3,4,5}, I' = {0}, F' = {5},
\Delta' = \{
\langle 1 , a , 3 \rangle ,
\langle 3 , b , 2 \rangle ,
\langle 2 , c , 4 \rangle ,
\langle 4 , d , 1 \rangle ,
\langle 0 , \varepsilon , 1 \rangle ,
\langle 0 , \varepsilon , 2 \rangle ,
\langle 1 , \varepsilon , 5 \rangle ,
\langle 2 , \varepsilon , 5 \rangle
\} .
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  %
& 
& *=[o][F-]{1}
 \ar  "2,4"  _{a}
 \ar  "2,5"  ^{\varepsilon}
& 
& 
\\
  *=[o][F-]{0}
 \ar @`{+/l16mm/} [] ^{}
 \ar  "1,3"  ^{\varepsilon}
 \ar  "3,3"  _{\varepsilon}
& *=[o][F-]{4}
 \ar  "1,3"  _{d}
& 
& *=[o][F-]{3}
 \ar  "3,3"  _{b}
& *=[o][F=]{5}
\\
  %
& 
& *=[o][F-]{2}
 \ar  "2,2"  _{c}
 \ar  "2,5"  _{\varepsilon}
& 
& 
}
Здесь первые два перехода заменяют старый переход \langle 1 , ab , 2 \rangle и следующие два перехода заменяют старый переход \langle 2 , cd , 1 \rangle. Чтобы обеспечить единственность начального состояния, добавлены переходы \langle 0 , \varepsilon , 1 \rangle и \langle 0 , \varepsilon , 2 \rangle. Последние два перехода в \Delta' обеспечивают единственность заключительного состояния.

Лемма 2.3.3. Каждый автоматный язык распознается некоторым конечным автоматом, содержащим только переходы с метками длины единица и имеющим ровно одно начальное состояние.

Доказательство. Согласно лемме 2.3.1 можно предположить, что исходный язык задан конечным автоматом \langle Q , \Sigma , \Delta , I , F \rangle, не содержащим переходов с метками длины больше единицы, причем |I| = 1. Построим искомый конечный автомат \langle Q' , \Sigma , \Delta' , I' , F' \rangle, положив Q' = Q, I' = I,

\begin{align*}
\Delta' &= \{ \langle p , a , r \rangle \mid
a \in \Sigma
\;\text{и найдется такое}\; q \in Q ,
\\&\quad
\text{что}\; \langle q , a , r \rangle \in \Delta
\;\text{и существует путь из}\; p
\;\text{в}\; q
\;\text{с меткой}\; \varepsilon
\} ,\\
F' &= \{ p \in Q \mid
\text{найдется такое}\; q \in F ,
\\&\quad
\text{что существует путь из}\; p
\;\text{в}\; q
\;\text{с меткой}\; \varepsilon
\} .
\end{align*}

Пример 2.3.4. Пусть M = \langle Q , \Sigma , \Delta , I , F \rangle, где Q = {1,2,3}, \Sigma = \{ a , b \}, I = {1}, F = {3},

\Delta = \{
\langle 1 , a , 2 \rangle ,\
\langle 2 , b , 2 \rangle ,\
\langle 2 , \varepsilon , 3 \rangle ,\
\langle 3 , a , 3 \rangle
\} .
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \ar  "1,2"  ^{a}
& *=[o][F-]{2}
 \rloop{0,1} ^{b}
 \ar  "1,3"  ^{\varepsilon}
& *=[o][F=]{3}
 \rloop{0,1} ^{a}
}
Легко убедиться, что L ( M ) = \{ a b^m a^n \mid m \geqslant 0, n \geqslant 0 \}. Тот же язык распознается конечным автоматом \langle Q , \Sigma , \Delta' , I , F' \rangle, где F' = {2,3} и
\Delta' = \{
\langle 1 , a , 2 \rangle ,\
\langle 2 , b , 2 \rangle ,\
\langle 2 , a , 3 \rangle ,\
\langle 3 , a , 3 \rangle
\} .
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{1}
 \ar @`{+/l16mm/} [] ^{}
 \ar  "1,2"  ^{a}
& *=[o][F=]{2}
 \rloop{0,1} ^{b}
 \ar  "1,3"  ^{a}
& *=[o][F=]{3}
 \rloop{0,1} ^{a}
}

Упражнение 2.3.5. Найти конечный автомат с однобуквенными переходами, распознающий язык \{ a^n b^m \mid n \geqslant 3 ,\ m \geqslant 3 \}

Упражнение 2.3.6. Найти конечный автомат с однобуквенными переходами, распознающий язык \{ a^n b^m c^k d \mid n \geq 0 ,\ m \geqslant 0 ,\ k \geqslant 0 \}

Упражнение 2.3.7. Существуют ли автоматный язык, который не распознается никаким конечным автоматом, содержащим только переходы с метками длины единица и имеющим ровно одно начальное состояние и ровно одно заключительное состояние?

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

Евгения Гунченко
Евгения Гунченко

Сдавала тест экстерном, результат получен 74 после принятия данного результата и соответственно оплаты курса, будет ли выдано удостоверение о повышении квалификации?