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.

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:

  1. Uvjet podudarnosti: Stanja p i q moraju oba biti prihvatljiva ( ) ili oba neprihvatljiva ( ).
  2. 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 particije   mogu 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 je   i  
za (Bilo koji par različitih stanja   ili  ) { 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 stanja   proširi se lista skupom stanja  .

Ako 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 primijeniti 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 taj se način može primijeniti isti minimizacijski postupak.