Deterministyczny Automat Skończony (DFA)
Deterministyczny automat skończony (DFA) to abstrakcyjna maszyna z ograniczoną liczbą stanów, która przetwarza symbole słowa. Rozpoczyna w stanie początkowym i po przeczytaniu każdego symbolu przechodzi do nowego stanu, zgodnie z funkcją przejścia. Słowo należy do języka rozpoznawanego przez automat, jeśli po jego przetworzeniu automat znajduje się w stanie akceptującym.
Budowa DFA
DFA można przedstawić w formie tabeli przejść lub diagramu. Przykładowo, automat rozpoznający słowa binarne podzielne przez 5 można zbudować, wykorzystując obliczenia w arytmetyce modulo 5. Automatyczne przejścia dla cyfr 0 i 1 prowadzą do różnych stanów, a stan akceptujący to ten reprezentujący podzielność przez 5.
Formalna Definicja
DFA jest zdefiniowany przez pięć elementów: , gdzie:
- – skończony alfabet wejściowy.
- – skończony zbiór stanów.
- – stan początkowy.
- – zbiór stanów akceptujących.
- – funkcja przejścia, określająca nowy stan po przeczytaniu symbolu.
Minimalizacja DFA
Każdy deterministyczny automat skończony ma unikalny automat minimalny, akceptujący ten sam język.
Algorytm Minimalizacji
- Usuń stany nieosiągalne ze stanu początkowego.
- Utwórz tabelę par stanów.
- Zaznacz pary, gdzie jeden stan jest akceptujący, a drugi nie.
- Sprawdź nieoznakowane pary stanów pod kątem ich przejść i oznaczaj je, jeśli są takie same.
- Po zakończeniu, niezaznaczone pary stanów łączone są w jeden stan.
Przykład Minimalizacji
W przypadku automatu rozpoznającego liczby binarne podzielne przez 5, wszystkie stany są osiągalne ze stanu początkowego. Po utworzeniu tabeli i zaznaczeniu odpowiednich par stanów okazuje się, że pierwotny automat jest już minimalny.