Коротко: минимальный ДКА имеет 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)^* (ab∣ba)∗). - Функция переходов δ\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)^* (ab∣ba)∗.
Автомат:
- Алфавит: {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)^* (ab∣ba)∗).
- Функция переходов δ\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)^* (ab∣ba)∗.