logo

Příklady DFA

Příklad 1:

Navrhněte FA s ∑ = {0, 1} akceptuje ty řetězce, které začínají 1 a končí 0.

Řešení:

FA bude mít počáteční stav q0, ze kterého přejde do dalšího stavu pouze hrana se vstupem 1.

Příklady deterministických konečných automatů

Ve stavu q1, čteme-li 1, budeme ve stavu q1, ale čteme-li 0 ve stavu q1, dostaneme se do stavu q2, což je konečný stav. Pokud ve stavu q2 čteme buď 0 nebo 1, přejdeme do stavu q2 nebo q1. Všimněte si, že pokud vstup končí 0, bude v konečném stavu.

bubble sort java

Příklad 2:

Navrhněte FA s ∑ = {0, 1} akceptuje jediný vstup 101.

Řešení:

Příklady deterministických konečných automatů

V daném řešení vidíme, že bude akceptován pouze vstup 101. Pro vstup 101 tedy není zobrazena žádná jiná cesta pro jiný vstup.

Příklad 3:

Návrh FA s ∑ = {0, 1} akceptuje sudý počet 0 a sudý počet jedniček.

Řešení:

Tento FA bude uvažovat čtyři různé stupně pro vstup 0 a vstup 1. Stupně mohou být:

Příklady deterministických konečných automatů

Zde q0 je počáteční stav a také konečný stav. Pozorně si všimněte, že je zachována symetrie 0 a 1. Ke každému stavu můžeme přiřadit významy jako:

q0: stav sudého počtu 0 a sudého počtu jedniček.
q1: stav lichého počtu 0 a sudého počtu jedniček.
q2: stav lichého počtu 0 a lichého počtu 1.
q3: stav sudého počtu 0 a lichého počtu jedniček.

Příklad 4:

Design FA s ∑ = {0, 1} akceptuje množinu všech řetězců se třemi po sobě jdoucími nulami.

Řešení:

Řetězce, které budou vygenerovány pro tyto konkrétní jazyky, jsou 000, 0001, 1000, 10001, .... ve kterých se 0 vždy objeví ve shluku 3. Graf přechodu je následující:

Příklady deterministických konečných automatů

Všimněte si, že posloupnost trojitých nul je zachována pro dosažení konečného stavu.

Příklad 5:

Navrhněte DFA L(M) = {w | w ε {0, 1}*} a W je řetězec, který neobsahuje po sobě jdoucí jedničky.

Řešení:

Když se objeví tři po sobě jdoucí jedničky, DFA bude:

plsql
Příklady deterministických konečných automatů

Zde jsou přijatelné dvě po sobě jdoucí jedničky nebo jedna jednička

Příklady deterministických konečných automatů

Stupně q0, q1, q2 jsou konečné stavy. DFA vygeneruje řetězce, které neobsahují po sobě jdoucí jedničky jako 10, 110, 101,..... atd.

Příklad 6:

Navrhněte FA s ∑ = {0, 1} akceptuje řetězce se sudým číslem 0 následovaným jednoduchou 1.

Řešení:

DFA lze zobrazit přechodovým diagramem jako:

Příklady deterministických konečných automatů