SNTÉZA TABULEK PŘECHODŮ. NEALGEBRAICKÉ METOD a) GINSBURGOVA METODA Využívá tzv. korespondencí mez vstupním a výstupním slovem př dané vstupní a výstupní abecedě. Jnak řečeno, vyhodnocuí se ednotlvé odezvy na přcházeící symboly(písmena) vstupního slova. Formulace metody: Nechť e dáno p korespondencí mez vstupním a výstupním slovy, z nchž může být m necyklckých a (p m) může mít tzv. cyklcký konec, tedy ξ = η =...... k k pro m necyklcké délky a ξ = η =...... k() l() { } l +... q() { }... l + q() pro (m + ) p necyklcké délky l(), ale s cyklckým koncem s perodou (q l) a a Potom e možné každé dvoc (, ) takové, že a p ; b b a b k nebo q přřadt eden vntřní stav Q b a výstupní a stav b. Výstupní funkc λ a přechodovou funkc δ e možné defnovat následovně : a a λ ( Q b, b ) = a b a a a ( Q b, b ) = Q b + δ pro a m a a a ( Q q, q ) = l + δ pro (m + ) a p
Příklad: Měl bychom sestrot tabulku přechodů respektve vývoovou tabulku (společná přechodová a výstupní tabulka) automatu A, který by realzoval následuící korespondence mez vstupním a výstupním slovy pro vstupní abecedu {,, 3 } a výstupní abecedu {, }. Dané korespondence: S : ξ η = = 3 S : ξ η = 3 = Stanovení vntřních stavů automatu : S : (, ) (, ) ( 3, ) (, ) Q 0 Q, přčemž Q, přčemž Q 3, přčemž Q = δ (, Q = δ (, Q 3 = δ ( 3, 0 Q ) Q ) Q ) S : (, ) ( 3, ) Q 0 Q, přčemž Q = δ (, Q 0) Z těchto zobrazení lze sestavt rovnou vývoovou tabulku přechodů (prmtvní) : A Q Q 0 3 Q / Q Q / Q Q 3 / Q 3 / Q 0 Q / Q / Jedná se tedy o neúplně určený automat(parcální), ehož stavová abeceda by se sednotla a eventuálně redukovala. O redukc množny vntřních stavů bude poednáno pozdě.
b) AIZERMANOVA METODA Využívá opět zadaných korespondencí a vzhledem k heurstckému přístupu vede tato metoda na redukovaný počet vntřních stavů. Algortmus ukážeme na ednoduchém příkladu. Příklad: Nechť e dána korespondence S : 3 S automatu A Tato korespondence by u Gnsburgovy metody vedla na automat se 4 stavy. Předpokládeme, že automat e ve stavu Q 0, pak můžeme položt δ (, Q 0 ) = Q 0 λ (, Q 0 ) = Po symbolu přchází na vstup symbol a můžeme zkust, zda Q 0 bude př tomto symbolu následným stavem, tedy δ (, Q 0 ) = Q 0? Pro následuící symbol bychom obdržel λ [, δ(, Q 0 )] = λ (, Q 0 ) = Podle zadané korespondence však má být výstupní stav λ [, δ(, Q 0 )] = Proto tedy nemůžeme položt δ (, Q 0 ) = Q 0 a e třeba zavést nový vntřní stav Q, tedy
δ (, Q 0 ) = Q ; λ (, Q ) =. Nebrání nám však položt δ ( 3, Q ) = Q 0, poněvadž λ ( 3, Q 0 ) není eště defnováno. Položme tedy λ ( 3, Q 0 ) =. Přechodovou funkc δ ( 3, Q 0 ) není třeba defnovat, neboť korespondence dále nepokračue. Výsledná vývoová tabulka e tedy následuící : Q 3 Q 0 Q 0 / Q / / Q Q 0 / c) Sestroení tabulky přechodů z časového dagramu Nechť e dá časový dgram vstupních sgnálů a požadované odezvy na výstupní proměnné Každé kombnac stavů na vstupních proměnných odpovídá určtý vstupní symbol a tomu pak e přřazen vntřní stav
Q = {,, 3, 4, 5, 6}. Po stavu 6 by cyklcky následoval stav atd. 3 nepřístupný vstupní stav Automat budeme řešt ako Mooreův 0 a b 0 0 0 0 0 3 y 0 0 Q = - počáteční vntřní stav. Zakódované vntřní stavy Dva kódy sou nevyužté Navrhneme neprve stablní vntřní stavy pro každý přípustný vstupní symbol : δ (, 0 ) = δ (, ) = δ (3, 0 ) = 3 δ (4, ) = 4 δ (5, 0 ) = 5 δ (6, ) = 6 Nyní s můžeme přpravt tabulku přechodů se zapsaným stablním stavy a řešt přechodové funkce v prvém řádku tabulky. 0 3 Q? 0? 3 3? 4 4? 5 5? 6 6? Q q q q 3 0 0 0 0 0 3 0 0 4 0 5 0 0 6 0 0
Přde-l mpuls na proměnné a, t. působí na vstupu písmeno, bude přechodová funkce δ (, ) =. Tedy automat přede do stavu. Kdyby přšel ale nedříve mpuls na vstupní proměnné b můžeme automat ponechat v počátečním stavu. Kdyby přšly mpulsy na obou proměnných současně, tedy přšel by nepřípustný symbol 3, mohl by opět automat zůstat v počátečním stavu a čekat na příchod správného mpulsu. Z časového dagramu můžeme také stanovt výstupní stav Mooreova automatu, tedy λ(q 0 ) = 0. Nyní dořešíme další řádky tabulky přechodů, tedy pro současné stavy, 3, 4, 5 a 6. Ze stavu (pro e stablní) může př příchodu symbolu 0 pokračovat do stavu 3, tedy přechodová funkce e δ( 0, ) = 3. Co se ale může stát, na místo mezery mez mpulsy přde v návaznost na mpuls na a přde mpuls na b, tedy přde vstupní symbol, t. přechodová funkce není asně určená δ(, ) =? Následný
stav nemusí být defnován ( ) nebo se přpustí současná změna na vstupní proměnné a (do nuly) b (do ednčky), ak e naznačeno v časovém dagramu. Pak by pro toto vstupní písmeno mohl být následný vntřní stav 4. Výstupní funkce e nadále λ() =. Ve stavu 3 setrvává př vstupním symbolu 0 a př přechází do stavu 4 (δ(, 3) = 4). Přšel-l by ze stavu 3 znovu mpuls na a, tedy vstupní symbol, nastane nedefnovaný stav nebo se může automat vrátt dostavu (δ(, 3) = ). Ještě může nastat zaímavá stuace ve stavu 4 a kdy může ednak trvat symbol, ale mohla by přít současná změna na vstupní proměnné b (do nuly) na a (do ednčky) a pak přede automat buď do nedefnovaného stavu nebo přede rovnu do stavu 6. Mohl by se také vrátt dostavu. Jná možnost by byla vyhodnocovat nesprávné posloupnost sgnálů dalším dagnostckým stavem 7, který by současně tento stav sgnalzoval výstupem K. d) Sestroení tabulky přechodů, resp.grafu přechodů pomocí vý voového dagramu Příklad: Navrhněte tabulku přechodů automatu, který bude doplňovat zásobník se sypkým materálem, Zásobník má dvě čdla Max a Mn, která budou hlídat, aby se zásobník nepřeplnl nebo úplně nevyprázdnl. To budou tak dvě vstupní proměnné automatu a současně bude mít automat ednu výstupní proměnnou, která bude řídt spouštění motoru M dopravníkového pásu DP. Systém e vyobrazen na přloženém obrázku. Současné ednčkové hodnoty Max = a Mn = sou nepřípustné. V návaznost na čnnost automatu lze nakreslt vývoový dagram, který e na dalším obrázku. Pak každému výkonnému bloku může být přřazen vntřní stav (Mooreova) automatu, tzn., že automat bude mít množnu vntřních stavů(stavovou abecedu) celkem se 3 vntřním stavy Q = {Q, Q, Q 3 }. Vntřní stav Q e počátečním vntřním stavem, ve kterém automat setrváváno doby, než se stlačí tlačítko Start. Poté přede automat do stavu Q a testue se, zda hladna v zásobníku nepoklesla na čdlo Mn. Př tom generue výstupní stav Pas = 0. Nastane-l stuace, že bude hladna na mnmu, t. bude Mn =, bude automat přecházet do
Stavu Q 3. V tom případě bude výstupní proměnná Pas = a bude se materál dosypávat. V této smyčce se testue, zda zásobník e naplněn, tedy zda není Max =? Po naplnění přede automat opět přes vntřní stav Q do stavu Q.
Nyní e možné zachytt toto chování do grafu přechodů a do tabulky přechodů např. ako automatu Mealyho. Tabulka přechodů Mooreova automatu:
d) Příklad na sestroení grafu přechodů detektoru znaků Pro daný detektor znaků e výhodněší sestroovat graf přechodů. Měl bychom nevrhnout tedy graf přechodů automatu, který bude detekovat např. přcházeící lchá čísla x v rozmezí < x < 4 v přímém bnárním kódu sérově na vstup a Mealyho automatu. Přde-l tedy na vstup sérově číslo 3 (nebo 5, 7, 9,, 3) bude s příchozím 4.btem na výstupu y generována ednčková hodnota. V ostatních případech bude na výstupu y nula. Čísla vstupuí do automatu počínae btem s nenžší váhou (nultým btem). Přcházeící čísla : 3-00 5-00 7-0 9-00 - 0 3-0 Počáteční vntřní stav bude Q 0 a bude např. př. Číslc 3 přcházet nultý bt, t. a = a na výstupu y bude 0 a automat přede do stavu Q. S příchozím dalším. btem, který e rovněž, přede automat do stavu Q a y =0. S třetím btem a = 0 přede automat do stavu Q 3 a výstup e stále y = 0. Teprve se 4. btem a = 0 bude na výstupu generována hodnota y = a automat přechází do počátečního stavu Q 0. Nyní může přcházet další číslce. Sestavovaný graf přechodů Mealyho automatu :
Takovým způsobem zavedeme na posloupnost 00 (čísla 5) další vntřní stav Q 4, na posloupnost 0 (čísla 7) další nový stav Q 5. S dalším přcházeícím číslem 9, tedy s posloupností 00 na vstupu a e třeba zavést další nový vntřní stav Q 6. S čísly a 3 ž není třeba další vntřní stavy zavádět. Je třeba ale zavést nové tř vntřní stavy pro ostatní čísla (0,,, 4, 6, 8, 0,, 4, 5) Q 7, Q 8, a Q 9, př nchž bude na výstupu generována hodnota y = 0. Nyní můžeme převést graf automatu na tabulku přechodů, neboť tabulka přechodů bude pro nás výchozí podklad pro sestroování strukturního modelu automatu.
x 0 0 Q Q 0 Q 7 Q 0 0 Q Q 4 Q 0 0 Q Q 6 Q 3 0 0 Q 3 Q 0 Q 0 Q 4 Q 5 Q 3 0 0 Q 5 Q 0 Q 0 0 Q 6 Q 0 Q 0 0 Q 7 Q 8 Q 8 0 0 Q 8 Q 9 Q 9 0 0 Q 9 Q 0 Q 0 0 0