Hoofdstuk 2: Eindige automaten
Overzicht
• DFAs (Deterministic Finite Accepters)
• NFAs (Non-deterministic)
o Relation with DFAs
• Minimal DFAs
1 Deterministic finite accepter
Voorbeeld:
Indien de automaat in de finale staat is wanneer er geen invoer meer is m te lezen, wordt de string
(invoer) geaccepteerd.
1.1 Dfa: Definition
Een DFA is een 5-tuple 𝑀 = (𝑄, Σ, 𝛿, 𝑞0 , 𝐹)
• Q is een verzameling interne toestanden (q0,q1 en q2 in het
voorbeeld)
• Σ is een eindig alfabet waaruit de invoer moet bestaan
• 𝛿: 𝑄 × Σ → 𝑄 is de transitiefunctie
o Bepaalt aan de hand van huidige toestand en huidige invoer welke de volgende
toestand is.
• 𝑞0 ∈ 𝑄 is de initiële toestand van de automaat
• 𝐹 ⊆ 𝑄 is een verzameling eindtoestanden.
If M is a DFA, GM denotes its transition graph. (zie voorbeeld voor een transition graph)
Voorbeeld:
1
, Wat is mis met volgende DFA?
Vanuit q0 zijn twee uitgaande pijlen met 1. Dit is niet-deterministisch
gedrag en is natuurlijk niet toegestaan voor een DFA. In vanuit toestand q1
vertrekt ook geen pijl met 1 als label waardoor de automaat niet compleet
is. Dit is niet toegestaan.
1.2 Languages and dfa’s
We kunnen de transitiefunctie uitbreiden: 𝛿: 𝑄 × Σ → 𝑄
𝛿 ∗ (𝑞, 𝜆) = 𝑞 (𝑙𝑒𝑔𝑒 𝑠𝑡𝑟𝑖𝑛𝑔 → 𝑏𝑙𝑖𝑗𝑓 𝑖𝑛 𝑠𝑡𝑎𝑡𝑒)
𝛿 ∗ : 𝑄 × Σ∗ → 𝑄
𝛿 ∗ (𝑞, 𝑤𝑎) = 𝛿(𝛿 ∗ (𝑞, 𝑤), 𝑎)
Merk op:
𝑤𝑎 ∈ Σ∗ , 𝑎 ∈ Σ, 𝛿 ∗ (𝑞, 𝑤) ∈ 𝑄
Bij tweede regel wordt string 1 teken minder lang → eindig proces
String altijd reduceren tot
lambda = eindtoestand 𝛿 ∗
Accepted language 𝐿(𝑀) = {𝑤 ∈ Σ∗ : 𝛿 ∗ (𝑞0 , 𝑤) ∈ 𝐹} = {𝑎𝑛 𝑏: 𝑛 ≥ 0}
̅̅̅̅̅̅̅
𝐿(𝑀) = {𝑤 ∈ Σ∗ : 𝛿 ∗ (𝑞0 , 𝑤) ∉ 𝐹}
Vraag: Bestaat nu ook een DFA voor ̅̅̅̅̅̅̅
𝐿(𝑀)?
• Ja en we kunnen deze bekomen door in de DFA voor 𝐿(𝑀) de states te vervangen door finale
states en de finale states te vervangen door gewone states.
o Deze methode werkt altijd omdat een state ofwel een finale ofwel een gewone state
was in de DFA voor L(M). Wanneer we deze omwisselen zal elke string die eindigede
in een finale state bij de DFA voor L(M) nu in een niet finale state eindigen en niet
geaccepteerd worden.
2
Overzicht
• DFAs (Deterministic Finite Accepters)
• NFAs (Non-deterministic)
o Relation with DFAs
• Minimal DFAs
1 Deterministic finite accepter
Voorbeeld:
Indien de automaat in de finale staat is wanneer er geen invoer meer is m te lezen, wordt de string
(invoer) geaccepteerd.
1.1 Dfa: Definition
Een DFA is een 5-tuple 𝑀 = (𝑄, Σ, 𝛿, 𝑞0 , 𝐹)
• Q is een verzameling interne toestanden (q0,q1 en q2 in het
voorbeeld)
• Σ is een eindig alfabet waaruit de invoer moet bestaan
• 𝛿: 𝑄 × Σ → 𝑄 is de transitiefunctie
o Bepaalt aan de hand van huidige toestand en huidige invoer welke de volgende
toestand is.
• 𝑞0 ∈ 𝑄 is de initiële toestand van de automaat
• 𝐹 ⊆ 𝑄 is een verzameling eindtoestanden.
If M is a DFA, GM denotes its transition graph. (zie voorbeeld voor een transition graph)
Voorbeeld:
1
, Wat is mis met volgende DFA?
Vanuit q0 zijn twee uitgaande pijlen met 1. Dit is niet-deterministisch
gedrag en is natuurlijk niet toegestaan voor een DFA. In vanuit toestand q1
vertrekt ook geen pijl met 1 als label waardoor de automaat niet compleet
is. Dit is niet toegestaan.
1.2 Languages and dfa’s
We kunnen de transitiefunctie uitbreiden: 𝛿: 𝑄 × Σ → 𝑄
𝛿 ∗ (𝑞, 𝜆) = 𝑞 (𝑙𝑒𝑔𝑒 𝑠𝑡𝑟𝑖𝑛𝑔 → 𝑏𝑙𝑖𝑗𝑓 𝑖𝑛 𝑠𝑡𝑎𝑡𝑒)
𝛿 ∗ : 𝑄 × Σ∗ → 𝑄
𝛿 ∗ (𝑞, 𝑤𝑎) = 𝛿(𝛿 ∗ (𝑞, 𝑤), 𝑎)
Merk op:
𝑤𝑎 ∈ Σ∗ , 𝑎 ∈ Σ, 𝛿 ∗ (𝑞, 𝑤) ∈ 𝑄
Bij tweede regel wordt string 1 teken minder lang → eindig proces
String altijd reduceren tot
lambda = eindtoestand 𝛿 ∗
Accepted language 𝐿(𝑀) = {𝑤 ∈ Σ∗ : 𝛿 ∗ (𝑞0 , 𝑤) ∈ 𝐹} = {𝑎𝑛 𝑏: 𝑛 ≥ 0}
̅̅̅̅̅̅̅
𝐿(𝑀) = {𝑤 ∈ Σ∗ : 𝛿 ∗ (𝑞0 , 𝑤) ∉ 𝐹}
Vraag: Bestaat nu ook een DFA voor ̅̅̅̅̅̅̅
𝐿(𝑀)?
• Ja en we kunnen deze bekomen door in de DFA voor 𝐿(𝑀) de states te vervangen door finale
states en de finale states te vervangen door gewone states.
o Deze methode werkt altijd omdat een state ofwel een finale ofwel een gewone state
was in de DFA voor L(M). Wanneer we deze omwisselen zal elke string die eindigede
in een finale state bij de DFA voor L(M) nu in een niet finale state eindigen en niet
geaccepteerd worden.
2