Showing posts with label sekvencny automat. Show all posts
Showing posts with label sekvencny automat. Show all posts

Saturday, June 11, 2011

HW: Minimalizacia mnoziny vnutornych stavov sekvencnych obvodov

Teraz uz vieme, ako zostrojit automat pre sekvencny obvod a aj to, ze sekvencny obvod je vlastne konecny automat s vnutornymi stavmi. Pozrime sa teda na to, ako tento automat minimalizovat.

Pokial automat minimalizujeme, tak sa nemoze stat, ze jeho "minimalna verzia" sa sprava odlisne. Preto tieto automaty musia byt ekvivalentne. Dva automaty su ekvivalentne vtedy, ak pre kazdu postupnost vstupnych symbolov existuje rovnaka postupnost vystupnych symbolov. Ekvivalentne nemusia byt len automaty ako celok, ale mozu byt aj stavy. Stavy su ekvivalentne, ak pre vsetky ich vstupne symboly maju rovnaky vystupny symbol a ekvivalentne nasledne stavy. 


Ekvivalencia vnutornych stavov moze byt

  • prosta ekvivalencia
    Dva vnutorne stavy maju zhodne vsetky nasledne vnutorne stavy aj vystupne symboly
  • psedoekvivalencia
    Vyskytuje sa v neuplne urcenych automatch (?). Dva stavy su pseudoekvivalentne, ak ich urcene vnutorne stavy a vystupne symboly su ekvivalentne
  • k-ekvivalencia
    Dva stavy su k-ekvivalentne ak pre dany vst. symbol sa z oboch stavov po k prechodoch dostaneme do rovnakeho stavu, alebo do dvoch ekvivalentnych stavov. Oba stavy musia mat rovnake vyst. symboly. 

Pseudoekvivalenciu nechame zit vlastnym zivotom a budeme sa venovat k- a prostej ekvivalencii. 



Postup pri minimializacii

Minimalizovat mozme pomocou implikacnej tabulky, alebo pomocou "zgrupovania" stavov v tabulke prechodov. A implikacna tabulka je trosku prehladnejsia a tazsie sa v nej pomylit:), tak ja sa budem drzat jej. Vysledkom je samozrejme rovanky pri oboch postupoch.

Implikacna tabulka


pracovat budeme s tymto automatom

          0     1    |    0     1
Q1   Q4  Q5       0     0
Q2   Q8  Q3       0     0
Q3   Q4  Q2       1     0
Q4   Q1  Q8       1     0
Q5   Q8  Q2       1     0
Q6   Q4  Q1       1     0
Q7   Q4  Q6       0     0
Q8   Q2  Q4       1     0

1. z prechodovej tabulky nacrtneme kostru impl. tabulky 




2
3
4
5
6
7

        1    2     3     4     5     6    7

2. preskrtne tie bunky, kde Qi a Qj maju rozne vystupy, pretoze tie stavy nebudu ekv. z deifinicie


2     
3     X    X
4     X    X
5     X    X
6     X    X
7                   X    X    X    X
8      X   X                               X
        1    2     3     4     5     6    7




3. do kazdej nepreskrtnutej bunky opiseme dvojice novych stavov pre vsetky hodnoty vstupov


2    4,8
      3,5     
3     X     X
4     X     X     4,1   
                      2,8
5     X     X     4,8   1,8
                      2.2    8,2
6     X     X     4,4   1,4     8,4
                       2,1   8,1     2,1
7      4,4   4,8   X      X      X       X
        5,6   3,6
8      X     X     4,2   1,2     8,2    4,2     X
                        2,4   8,4     2,4   1,4
        1      2       3      4        5       6       7

4. teraz musim skontrolovat jednotlive stavy a moznosti zlucitelnosti stavov z tabulky 
Napr. ak maju byt ekv. stavy 2 a 1, tak musia byt ekv. stavy 4,8 a 3,5 
2-1: OK
4-3: NOK, 1-4 nejde ... 
5-3: OK
5-4: NOK
6-3: OK
6-4: NOK
6-5: OK
7-1: OK
7-2: OK
8-3: NOK
8-4: OK
8-5: NOK
8-6: NOK

Vysledkom je, ze mozme zlucit stavy: 

7 s 1 a 2         - zaradime do "kategorie" A 

3 s 5 a 6         - zaradime do "kategorie" B
5 so 6             - zaradime do "kategorie" B, pretoze sa jedna o rovnaky vystup  

4 s 8               - zaradime do "kategorie" C

5. Dostaneme novu tabulku, z ktorej uz lahko zostrojime automat 
       0    1   |   0    1  
A    C   B      0    0
B    C   A      1    0
C    A   C      1    0


HW: Automatovy model sekvencnych obvodov

Najprv bude dobre si ujasnit, co je sekvencny obvod. Sekvencny obvod je system definovany ako petica A = <X, Y, Q, δ, λ>, kde jednotlive symbolu su: 


mnozinou vstupnych premennych X
mnozinou vystupnych premennych Y 
mnozinou vnutornych stavov Q
prechodovou funkciou δ
vystupnou funkciou λ



Na rozdiel od kombinacnych obovodov, v sekvencnych pribudaju vnutorne stavy a s nimi spojene vystupne a prechodove funkce (dufam, ze ste postrehli paralelu s konecnymi automatmi!). Ak mame predom udany pociatocny stav, tak definiciu rozsirime na <X, Y, Q, Q0δ, λ>, kde Q0 je pociatocny stavom. Automat s pociatocnym stavom bude inicialny automat


Vseobecny model sekvencneho obvodu (Huffmanov model) nam da lepsiu predstavu o com hovorim. Porovnajte si obrazok s definiciou. 




Vstup X (vstupna abeceda) nam vlezie do kombinacnej casti obvodu, ktora je pre nas v tejto chvili black-box (vseobecny model!) a z druhej strany vylezie vystup Y (vystupna abeceda), ktory je vygenerovany vystupnou funkciou λ. V pamatovej casti obvodu sa zaroven zmeni stav podla prechodovej funkcie δ. 


Z tohto popisu by sa mohlo zdat, ze vnutorny stav a vystup Y na sebe az tak velmi nezavisia, zdanie ale klame. Zavislost sa asi najlepsie popise jednoduchymi rovnicami:


Qt =  δ(Xt, Qt-1), a teda sucasny stav (ten do ktoreho sa dostaneme), zavisi na vstupnom symbole a predchadzajucom stave. 


Ytλ(Xt, Qt-1),  teda vystupny symbol zavisi na vstupnom symbol a predchadzajucom vnutornom stave. 


Pri popise sekvencych obvodov pouzivame, s vyhodou, konecne automaty Mealy a Moore. Existuju aj dalsie, ale tieto dva su pre nas najzaujimavejsie.