Дан регулярный язык, описываемый выражением (ab|ba)* — постройте минимальный детерминированный автомат и докажите его минимальность

17 Ноя в 07:03
2 +1
0
Ответы
1
Коротко: минимальный ДКА имеет 4 состояния. Построение и доказательство минимальности ниже.
Автомат:
- Алфавит: {a,b} \{a,b\} {a,b}.
- Состояния: Q={q0,qa,qb,qd}Q=\{q_0,q_a,q_b,q_d\}Q={q0 ,qa ,qb ,qd }.
- Начальное: q0q_0q0 .
- Принимающее: {q0}\{q_0\}{q0 } (пустая строка принадлежит (ab∣ba)∗ (ab|ba)^* (abba)).
- Функция переходов δ\deltaδ:
δ(q0,a)=qa,δ(q0,b)=qb,δ(qa,b)=q0,δ(qa,a)=qd,δ(qb,a)=q0,δ(qb,b)=qd,δ(qd,a)=qd,δ(qd,b)=qd. \begin{aligned}
&\delta(q_0,a)=q_a,\quad \delta(q_0,b)=q_b,\\
&\delta(q_a,b)=q_0,\quad \delta(q_a,a)=q_d,\\
&\delta(q_b,a)=q_0,\quad \delta(q_b,b)=q_d,\\
&\delta(q_d,a)=q_d,\quad \delta(q_d,b)=q_d.
\end{aligned}
δ(q0 ,a)=qa ,δ(q0 ,b)=qb ,δ(qa ,b)=q0 ,δ(qa ,a)=qd ,δ(qb ,a)=q0 ,δ(qb ,b)=qd ,δ(qd ,a)=qd ,δ(qd ,b)=qd .
Интуиция: q0q_0q0 — на границе пар (ожидаем первый символ пары); qa,qbq_a,q_bqa ,qb — прочитан первый символ пары aaa или bbb соответственно и ожидаем второй, отличающийся символ; qdq_dqd — нарушение (любая дальнейшая строка недопустима).
Корректность: из q0q_0q0 чтение пары ababab или bababa возвращает в q0q_0q0 , поэтому принимаются ровно конкатенации блоков ababab и bababa, а любая некорректная пара переводит в qdq_dqd .
Доказательство минимальности (различимость состояний):
Покажем, что никакие два состояния не эквивалентны (существует разделяющая постфикс):
- q0q_0q0 и qaq_aqa : пустая строка ε\varepsilonε различает (из q0q_0q0 ε\varepsilonε принимается, из qaq_aqa — нет).
- q0q_0q0 и qbq_bqb : аналогично ε\varepsilonε различает.
- q0q_0q0 и qdq_dqd : ε\varepsilonε различает (q0q_0q0 принимающее, qdq_dqd — нет).
- qaq_aqa и qbq_bqb : строка bbb различает, т.к. δ(qa,b)=q0\delta(q_a,b)=q_0δ(qa ,b)=q0 (принимает), а δ(qb,b)=qd\delta(q_b,b)=q_dδ(qb ,b)=qd (не принимает).
- qaq_aqa и qdq_dqd : строка bbb различает (qa→q0q_a\to q_0qa q0 принимающее, qd→qdq_d\to q_dqd qd не принимающее).
- qbq_bqb и qdq_dqd : строка aaa различает (qb→q0q_b\to q_0qb q0 принимающее, qd→qdq_d\to q_dqd qd не принимающее).
Таким образом все четыре состояния попарно различимы, значит нельзя сократить автомат до меньшего числа состояний. По теореме Майхила–Нерода это минимальный ДКА для языка (ab∣ba)∗ (ab|ba)^* (abba).
17 Ноя в 07:53
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир