Minimizacija konačnog automata
Minimizacija konačnog automata je postupak izgradnje konačnog automata koji je istovjetan (tj. prihvaća isti jezik), i koji sadrži što je moguće manji broj stanja. Općenito je za bilo koji DKA moguće izgraditi beskonačno mnogo drugih DKA koji prihvaćaju isti jezik. Mininimizacija broja stanja dovodi do učinkovitijeg programskog ili sklopovskog ostvarenja automata.
Sadržaj |
Istovjetnost stanja i automata [uredi]
Stanje p DKA
je istovjetno stanju
DKA
ako i samo ako DKA M u stanju p prihvaća isti skup nizova kao i DKA
u stanju
. Za bilo koji niz w skupa
vrijedi
ili
.
Relacija ekvivalencije (tj. istovjetnosti) jest po definiciji tranzitivna, pa iz istovjetnosti stanja p i q, i istovjetnosti stanja q i r, slijedi istovjetnost stanja p i r.
Istovjetnost DKA jest izrađena nad definicijom istovjetnosti stanja: DKA M i N su istovjetni ako i samo ako su istovjetna njihova početna stanja.
Ispitivanje istovjetnosti stanja se može svesti na ispitivanje dva uvjeta:
- Uvjet podudarnosti: Stanja p i q moraju oba biti prihvatljiva (
) ili oba neprihvatljiva (
). - Uvjet napredovanja: Za bilo koji ulazni znak
vrijedi da su stanja
i
istovjetna.
Određivanje istovjetnih stanja [uredi]
Postoji mnogo algoritama za određivanje istovjetnih stanja automata, i svi na neki način računski pojednostavljuju osnovnu definiciju istovjetnosti preko uvjeta podudarnosti i napredovanja.
Mooreov redukcijski postupak [uredi]
Algoritam dijeli skup stanja DKA
u podskupove na temelju uvjeta podudarnosti. Te podskupove zovemo particije ekvivalencije.
Klase ekvivalencije su pobrojane po broju koraka koji je bio potreban da se dođe do nje, počevši od nulte particije. Stanja koja se mogu razlikovati (razabrati) u k-toj particiji se zovu k-razaberiva stanja. Stanja koja su u istom podskupu su k-ekvivalentna. Stanja koja su k-ekvivalentna u jednom koraku nisu nužno istovjetna, pošto u nekom od sljedećih koraka mogu biti razdvojena u različite particije ekvivalencije.
Pseudokod algoritama se može prikazati u tri koraka:
1) Skup stanja se podijeli u dva podskupa. Jedan podskup sadrži sva prihvatljiva stanja (sva stanja), a drugi podskup sva stanja koja nisu prihvatljiva (sva stanja
). Označimo simbolom
podjelu skupa stanja u ta dva podskupa.
2) Primjenimo sljedeći algoritam: za (sve particije ekvivalencije) { Podijeli particiju
u potparticije tako da su dva stanja p i q iz particije
u istoj potparticiji ako i samo ako za bilo koji ulazni znak a vrijedi:
, za neku particiju
// Za različite ulazne znakove a particijemogu biti različite
Označi novu podjelu particija; }
3) Ako je podjela na potparticije ostala ista, tj. ako je, tada se algoritam zaustavlja, i stanja u istim particijama ekvivalencije su istovjetna. Ako je
, tada nastavi algoritam korakom (2) sa
![]()
Implikacijska tablica [uredi]
Ovaj je algoritam pesimističan u smislu da traži neistovjetna stanja. Označi li se par stanja (p, q) DKA
algoritmom koji je prikazan dolje, dva stanja p i q su neistovjetna.
Označi sve parove (p, q) takve da jei
za (Bilo koji par različitih stanjaili
) { ako (Za neki znak a par
jest označen { Označi (p, q);
Rekurzivno označi sve neoznačene parove u listi koja je pridružena paru (p, q) i sve ostale parove u listama koje su pridružene parovima označenim u ovom koraku; } inače { za (Svi znakovi a) { ako () Stavi (p, q) u listu koja je pridružena paru
; } } }
Nedohvatljiva stanja [uredi]
Stanje p DKA
jest nedohvatljivo stanje ako ne postoji niti jedan niz
za koji vrijedi
. Odbacivanjem nedohvatljivih stanja dobije se istovjetni DKA s manjim brojem stanja.
Dohvatljiva stanja DKA
se određuju sljedećim algoritmom:
1) U listu dohvatljivih stanja DS upiše se početno stanje.
2) Lista DS proširi se skupom stanja.
3) Za sva stanjaproširi se lista skupom stanja
.
Ukoliko se lista dohvatljivih stanja proširi zapisom novog stanja, tada se rad algoritma nastavlja korakom (3) priloženog pseudokoda. Lista DS sadrži sva dohvatljiva stanja, dok su sva ostala stanja nedohvatljiva.
DKA s minimalnim brojem stanja [uredi]
Odbacivanjem istovjetnih i nedohvatljivih stanja dobije se istovjetni DKA s minimalnim brojem stanja. U postupku minimizacije je učinkovitije prvo primjeniti postupak odbacivanja nedohvatljivih stanja, a tek potom postupak odbacivanja istovjetnih stanja.
Ostali konačni automati, kao što su NKA i
-NKA, se uvijek mogu svesti na DKA i na na taj se način može primjeniti isti minimizacijski postupak.
) ili oba neprihvatljiva (
).
vrijedi da su stanja
i
istovjetna.
), a drugi podskup sva
stanja koja nisu prihvatljiva (sva stanja
). Označimo simbolom
podjelu skupa stanja u ta dva podskupa.
)
{
Podijeli particiju
u potparticije tako da su dva stanja p i q iz particije
, za neku particiju 
mogu biti različite
;
}
, tada se algoritam zaustavlja, i stanja u istim particijama
ekvivalencije su istovjetna. Ako je
, tada nastavi algoritam korakom (2) sa
ili
)
{
ako (Za neki znak a par
jest označen
{
Označi (p, q);
)
Stavi (p, q) u listu koja je pridružena paru
.
.
proširi se lista skupom stanja
.