✖

Täydellinen automaatti

Äärellisen automaatin perusmääritelmässä ei vaadita, että jokaisesta tilasta on siirtymä jokaiselle symbolille. Täydellinen automaatti on automaatti, jossa on määritelty siirtymät kaikista tiloista kaikille syöteaakkoston symboleille.

Täydellisen automaatin rakentaminen

Olkoon meillä automaatti A = (Q, Σ, δ, q0, F):

Tässä ei ole piirretty siirtymää tilasta q0 kirjaimelle ”b”. Jos tällainen tilanne tulee vastaan, sanomme, että automaatti ei hyväksy annettua syötesanaa. Formalisoinnin kannalta ei kuitenkaan välttämättä ole sopivaa, että siirtymäfunktiota δ ei ole määritelty joillekin arvoille; tässä se ei ole määritelty esimerkiksi arvolle δ(q0, b).

Tämän voi helposti korjata rakentamalla ekvivalentin automaatin, jossa on yksi ylimääräinen tila — siihen johtavat ”puuttuvat” siirtymät, tämä tila ei ole lopputila, ja kaikki jatkosyötteet kiertävät tässä tilassa. Kutsumme tätä automaattia täydelliseksi automaatiksi. Muokattu ekvivalentti automaatti voisi näyttää tältä:

Lisäsimme tilan qfail. Muista tiloista johtaa siihen siirtymä täsmälleen silloin, kun siirtymää ei aiemmin ollut. Tämä tila ei ole lopputila, ja se kiertää kaikilla jatkosyötteillä. Tässä automaatissa ei ole yhtään puuttuvaa siirtymää: siellä, missä edellisessä automaatissa olisi tullut vastaan puuttuva siirtymä, tämä automaatti päätyy tilaan qfail.

Voimme siis aina yleisyyttä menettämättä olettaa, että automaatissa on määritelty siirtymät kaikille tilojen ja aakkoston merkkien yhdistelmille.

Määritelmä

Täydelliselle automaatille A = (Q, Σ, δ, q0, F) siis pätee

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

Lähteet

Luvut: Äärellinen automaatti, Täydellinen automaatti, Epädeterministinen äärellinen automaatti, Epädeterministisen automaatin simulointi, NFA:n muuntaminen DFA:ksi