Произведение автоматов

Схема доказательства правильности конечного автомата

Схема доказательства правильности конечного автомата такова:

1) определить (описать) для каждого состояния q Q язык L(q),состоящий из слов, переводящих начальное состояние q0 в q;

2) доказать, что это определение правильное, используя индукцию по длине входного слова;

3) показать, что .

Применим эту схему к доказательству правильности, построенного выше автомата A. Языки, связанные с состояниями этого автомата, фактически, уже были определены при его построении. Уточним их:

L(q0) = {ε},

L(q1) = {a},

L(q2) = {w | слова, начинающиеся с aa и содержащие четное число букв b},

L(q3) = L,

L(q!) = {w | слова, не начинающиеся с aa}.

Правильность определения языков L(q0), L(q1) и L(q1) следует непосредственно из определения A. Самое короткое слово, переводящее q0 в q2aa, и оно принадлежит L(q2). Аналогично, самое короткое слово, переводящее q0 в q3 aab, и оно принадлежит L(q3). Предположим теперь, что для каждого слова w длины ≤ n выполнено условие (*):

Покажем, что оно будет выполнено и для всех слов длины n + 1.

Пусть |w|=n+1. Тогда w=wα, где α {a, b}. Так как |w| = n, то для w выполнено условие (*). Поэтому, если w’ переводит q0 в q2, то это слово начинается с aa и содержит четное число b. При α = a слово w переводит q0 в q2 и также начинается с aa и содержит четное число b, а при α = b слово w переводит q0 в q3, начинается с aa и содержит нечетное число b, т.е. принадлежит L.

Аналогично, если w’ переводит q0 в q3, то это слово начинается с aa и содержит нечетное число b. При α =a слово w также переводит q0 в q3 и также начинается с aa и содержит нечетное число b, а при α = b w переводит q0 в q2, оно начинается с aa и содержит четное число b. Обратно, если α= a, то слово w переводит q0 в qi (i = 2, 3) w переводит q0 в qi(i = 2, 3) и условие (*) выполнено, так как четность числа букв b в w и в w’ одинакова. Если же α = b, то из определения автомата A следует, что слово w переводит q0 в q2 w’ переводит q0 в q3 и w переводит q0 в q3 w переводит q0 в q2. Так как четность числа букв b в w и в w0 разная, то и в этом случае условие (*) выполнено. Для завершения доказательства осталось заметить, что единственным заключительным состоянием автомата A является q3 и поэтому LA= L(q3) = L.

Рассмотрим одну важную конструкцию конечного автомата по двум другим, называемую произведением автоматов, которая позволит установить замкнутость класса конечно автоматных языков относительно теоретико множественных операций.

Пусть M1=< Σ, Q1, , ,Φ1> и M2=< Σ, Q2, , F2,Φ2> два конечных автомата с общим входным алфавитом Σ, распознающие языки L1 и L2, соответственно.

Определим по ним автомат M=< Σ, Q, q0, F, Φ >, называемый произведением M1 и M2(M = M1хM2), следующим образом. Q = Q1хQ2= {(q, p) | q Q1, p Q2}, т.е. состояния нового автомата это пары, первый элемент которых состояние первого автомата, а второй состояние второго автомата. Для каждой такой пары (q, p) и входного символа a Σ определим функцию переходов: Φ((q, p), a) =(Φ1(q, a), Φ2(p, a)). Начальным состоянием M является пара q0= ( , ), состоящая из начальных состояний автоматов-множителей. Что касается множества заключительных состояний, то оно определяется в зависимости от операции над языками L1 и L2, которую должен реализовать M.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: