✖

Тотален автомат

В основното определение на краен автомат не е необходимо от всички състояния да съществува преход за всички символи. Тотален автомат е автомат, който има дефинирани преходи от всички състояния за всички символи на входната азбука.

Как да построим тотален автомат

Нека имаме този автомат A = ⟨Q, Σ, δ, q0, F⟩:

Тук не е нарисуван преход от състоянието q0 за буквата „b“. Ако възникне такава ситуация, казваме, че автоматът не приема дадената входна дума. От гледна точка на формализацията обаче може да не е удобно преходната функция δ да не е определена за някои стойности; тук например не е определена за δ(q0, b).

Това лесно се решава, като построим еквивалентен автомат, който ще има едно състояние повече — към това състояние ще сочат „липсващите“ преходи, то няма да е крайно и всички по-нататъшни входове ще циклят в него. Този автомат наричаме тотален автомат. Променен еквивалентен автомат би могъл да изглежда така:

Добавихме състоянието qfail. От останалите състояния прекарахме преход към него тогава и само тогава, когато преди това там нямаше преход. Това състояние не е крайно и циклира за всички по-нататъшни входове. Ако в предишния автомат бяхме попаднали на липсващ преход, тук няма липсващ преход и автоматът би стигнал до състоянието qfail.

Винаги можем без ограничение на общността да предполагаме, че автоматът има дефинирани преходи за всички комбинации от състояния и знаци от азбуката.

Определение

За тотален автомат A = ⟨Q, Σ, δ, q0, F⟩ следователно

∀q∈Q∀a∈Σ∃r∈Q:δ(q,a)=r.

Източници

Глави: Краен автомат, Тотален автомат, Недетерминиран краен автомат, Симулация на недетерминиран автомат, Преобразуване на НКА в ДКА