✖

Totale automaat

In de basisdefinitie van een eindige automaat hoeft er niet vanuit alle toestanden een overgang te bestaan voor alle symbolen. Een totale automaat is een automaat die vanuit alle toestanden voor alle symbolen van het invoeralfabet overgangen heeft gedefinieerd.

Hoe construeer je een totale automaat

Neem deze automaat A = ⟨Q, Σ, δ, q0, F⟩:

Hier is geen overgang getekend vanuit toestand q0 voor de letter “b”. Als zo'n situatie zich voordoet, zeggen we dat de automaat het invoerwoord niet accepteert. Met het oog op formalisering is het echter niet handig als de overgangsfunctie δ voor sommige waarden niet gedefinieerd is; hier is δ(q0, b) bijvoorbeeld niet gedefinieerd.

Dat is eenvoudig op te lossen door een equivalente automaat te construeren met één toestand extra — de “ontbrekende” overgangen wijzen naar die toestand, die toestand is geen eindtoestand en alle verdere invoer blijft in die toestand rondlopen. Deze automaat noemen we een totale automaat. De aangepaste equivalente automaat zou er zo uit kunnen zien:

We hebben de toestand qfail toegevoegd. Vanuit de andere toestanden hebben we er een overgang naartoe getekend dan en slechts dan als daar eerder geen overgang bestond. Deze toestand is geen eindtoestand en heeft een lus voor alle verdere invoer. Als we in de vorige automaat dus op een ontbrekende overgang stuitten, is er hier geen ontbrekende overgang meer en komt de automaat in toestand qfail terecht.

Zonder beperking van de algemeenheid kunnen we dus altijd aannemen dat de automaat voor alle combinaties van toestanden en tekens uit het alfabet overgangen heeft gedefinieerd.

Definitie

Voor een totale automaat A = ⟨Q, Σ, δ, q0, F⟩ geldt dus dat

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

Bronnen

Hoofdstukken: Eindige automaat, Totale automaat, Niet-deterministische eindige automaat, Simulatie van een niet-deterministische automaat, Omzetting van NFA naar DFA