KATEDRA INFORMATYKI TECHNICZNEJ Ćwczena laboratoryjne z Logk Układów Cyfrowych ćwczene 208 Temat: Komputerowa realzacja automatów skończonych 1. Cel ćwczena Celem ćwczena jest praktyczne zapoznane sę ze sposobem programowej realzacj na komputerze automatów skończonych (na przykładze automatów typu Moore'a). 2. Program ćwczena 1. Zapoznane sę z metodą transformacj formalnego modelu automatu skończonego na model odpowedn do realzacj programowej. 2. Zapoznane sę z programem dzałającym na elementach modelu formalnego automatu. 3. Wprowadzene danych reprezentujących w pamęc komputera model formalny automatu. 4. Testowane programowego warantu automatu skończonego. 5. Opracowane wynków testowana automatu. 3. Wadomośc podstawowe Automat skończony jest modelem formalnym (matematycznym) systemu lub procesu przebegającego w dyskretnych chwlach czasu [2]. Jest on węc pewną abstrakcją, którą można jednak urealnć budując odpowedn układ funkcjonalny o zachowanu zgodnym z reprezentującym go modelem matematycznym. Automat skończony można zrealzować jako układ elektronczny (hardware) lub jako program komputerowy (software). Na przykład każdy układ sekwencyjny w strukturze fzycznej komputera jak też każdy program składowy systemu operacyjnego komputera można rozpatrywać jako pewen automat skończony. Odzwercedla to dualzm mędzy strukturą fzyczną komputera (hardware) jego oprogramowanem (software). Dzałane automatu skończonego jest jednoznaczne określone przez funkcję przejść, która może być reprezentowana w postac grafu (ang. transton dagram). Dla prostych problemów graf może być stworzony ntucyjne, na podstawe słownego opsu zadana, które pownno być realzowane przez automat. Zastosowane języka wyrażeń regularnych umożlwa przeprowadzene tego procesu w sposób formalny. Przy programowej realzacj automatu jego graf mus być reprezentowany w pamęc komputera, pownen węc zostać przekształcony na odpowedną postać symbolczną. 3.1. Reprezentacja grafów za pomocą wyrażeń symbolcznych Jednym z welu sposobów opsu grafów są wyrażena symbolczne. Elementam składowym wyrażena symbolcznego są oznaczena werzchołków łuków grafu oraz specjalne symbole organzujące wyrażene, czyl ndeksowane pary nawasów w postac n (... ) n oraz przecnek jako symbol rozdzelający. Idea zapsu grafu w postac wyrażena
Logka Układów Cyfrowych Komputerowa realzacja automatów 2 symbolcznego zostane zlustrowana na przykładze prostego grafu. Powązane elementów grafu wyrażena symbolcznego pokazane jest na rys. 1. q 1 q 2 0 (q 1 1 ( q 1, q 2 2 ( q 1, q 2 ) 2 ) 1 ) 0 Rys. 1. Transformacja grafu na wyrażene symbolczne Efektem końcowym transformacj grafu jest następujące wyrażene: = 0 1 2 ( q1 ( z1q1, z2q2 ( z1q1, z2q2 2 1 0 ) ) ) Podstawowe zasady tworzena wyrażena symbolcznego są następujące: - całe wyrażene zamknęte jest w parze nawasów 0 (... ) 0, - wszystke elementy wyrażena zawarte są w parach nawasów typu n (... ) n, mogą być one zagneżdżone, z rosnącym ndeksam n (... n1 (... ) n1... ) n, dopuszczalna jest postać typu n (... n1 (... ) n1,... n1 (... ) n1,... ) n - przed każdym nawasem otwerającym, z wyjątkem 0 (, sto symbol q będący oznaczenem werzchołka grafu, - term postac q n (z m q j reprezentuje łuk z m, prowadzący od werzchołka początkowego q do werzchołka końcowego q j, łuk prowadzące z q do nnych werzchołków zapsywane są po przecnku, na przykład q n (z m q j, z n q k dla łuku z n prowadzącego do q k, - wszystke łuk wychodzące z werzchołka q muszą być opsane wewnątrz jednej pary nawasów q n (... ) n, oznacza to, że każdy symbol q może pojawć sę przed nawasem otwerającym tylko raz, - werzchołek końcowy w terme postac z m q j może otwerać kolejny pozom zagneżdżena nawasów czyl q n (... z m q j n1 (z n q k pod warunkem, że symbol q j ne wystąpł już wcześnej przed nawasem otwerającym. Wyrażene symbolczne dla danego grafu może być zapsane na wele sposobów. Ponżej pokazana jest alternatywna postać wyrażena dla przykładowego grafu. Ma ona mnejszy stopeń zagneżdżena ale jest mnej optymalna, jeśl chodz o lczbę użytych symbol: = 0 1 1 1 1 0 ( q1 ( z1q1, z2q2), q2 ( z1q1, z2q2) ) Zwykle przyjmuje sę zasadę, że przejśca z werzchołków pojawających sę w kolejnych termach z m q j są rozwjane w głąb dopók jest to możlwe, to znaczy symbol q j ne pojawł sę już wcześnej przed nawasem otwerającym. Warto zwrócć uwagę, że aby odnaleźć wszystke łuk wychodzące z werzchołka q wystarczy ustalć mejsce wystąpena symbolu q przed nawasem otwerającym n ( a następne wypsać wszystke termy z m q j zawarte wewnątrz pary nawasów n (... ) n, pomjając przy tym zawartość wszystkch ewentualnych nawasów zagneżdżonych. (1) (2)
Logka Układów Cyfrowych Komputerowa realzacja automatów 3 3.2. Zaps symbolczny grafu automatu Punktem wyjśca do programowej realzacj automatu Moore'a jest transformacja grafu automatu na wyrażene symbolczne. Załóżmy, że zadany jest automat Moore'a reprezentowany "szóstką": gdze: < Z, Q, Y, Φ, Ψ, qs > Z - alfabet wejścowy Z = {, } Y - alfabet wyjścowy Y = { y 1, y 2, y 3 } Q - zbór stanów wewnętrznych Q = { q 1, q 2, q 3, q 4 } Φ - funkcja przejść q(t1) = Φ (q(t), z(t)) Ψ - funkcja wyjść y(t) = Ψ (q(t)) q s - stan początkowy automatu. q s = q 2 Przyjmujemy, że dzałane tego automatu określone jest przez graf przedstawony na rys. 2. raf ten, oznaczony symbolem, jest transformowany na wyrażene symbolczne (według zasad opsanych w punkce 3.1). q 1 y 2 q 4 q 2 y 3 y 3 q 3 y 1 Wyrażene Rys. 2. Przykładowy graf automatu Moore'a opsujące graf z rys. 2 ma postać: = 0 1 2 3 3 2 2 ( q2 ( z1q3 ( z1q1 ( z2q2, z1q3), q3), z2q4 ( z2q1, z1q4 2 1 0 ) ) ) (3) W przedstawonym wyrażenu symbol q r stojący przed nawasem otwerającym k ( oznacza werzchołek grafu, natomast term typu q k r (z j q s reprezentuje krawędź wychodzącą z werzchołka q r prowadzącą do werzchołka q s. Wyrażene (1) ne reprezentuje w pełn grafu, poneważ ne uwzględna przyporządkowana werzchołkom q r sygnałów wyjścowych y. Stąd też, aby uzyskać
Logka Układów Cyfrowych Komputerowa realzacja automatów 4 kompletną reprezentację grafu, wyrażenu o następującej postac: Tabela Q należy przyporządkować tabelę Q (q r y j ) q r y j q 1 y 2 q 2 y 3 q 3 y 1 q 4 y 3 W celu zapsana symbolcznej reprezentacj grafu w pamęc komputera, wyrażene jest przekształcane tak, aby za dowolnym termem typu q k r ( w wyrażenu znalazły sę termy typu z j q s reprezentujące wszystke krawędze wychodzące z danego werzchołka q r. Produktem tego przekształcena jest wyrażene symbolczne o postac: = 0 1 2 3 3 2 1 1 1 0 ( q2 ( z2q4, z1q3 ( z2q3, z1q1 ( q2, z1q3) ) ), q4 ( z2q1, z1q4) ) (4) Aby zoptymalzować operacje na wyrażenu zawerająca adresy termów q r k ( w wyrażenu szczegółów mplementacj. Tabela przedstawona ponżej: Tabela Q ~ q r adres q k ( y j q 1 x 3 y 2 q 2 x 1 y 3 q 3 x 2 y 1 q 4 x 4 y 3 Wyrażene symbolczne (4) tabela warantu automatu w pamęc komputera. 3.3. Programowy warant automatu Moore'a w tabel Q dodana zostane kolumna. Interpretacja tych adresów zależy od Q po rozszerzenu otrzymuje nazwę Q ~ jest Q ~ są głównym elementam programowego Automat Moore'a reprezentowany jest w pamęc przez wyrażene symbolczne (4) tabelę Q ~. Są to elementy statyczne, na których operuje odpowedn program. Do pamętana beżących wartośc sygnałów wejścowych, wyjścowych oraz stanu automatu służą następujące elementy: - słowo "z" zawerające aktualny sygnał wejścowy z j ϵ Z, - słowo "q" zawerające aktualny stan wewnętrzny q r ϵ Q, - słowo "y" zawerające aktualny sygnał wyjścowy y ϵ Y. Konfguracja elementów programowego warantu automatu Moore'a podstawowe operacje wykonywane na tych elementach przedstawone są na rys. 3. Załóżmy, że w słowe "q" ustawony jest stan początkowy automatu q 2. Podany na
Logka Układów Cyfrowych Komputerowa realzacja automatów 5 wejśce symbol zapamętywany jest w słowe "z". Operacja ta oznaczona jest na rys. 3 symbolem. W kolejnej operacj, oznaczonej jako, symbol q 2 jest szukany w tabel Q ~. W werszu q 2 tabel Q ~ znajduje sę adres x l werzchołka q 2 w wyrażenu. Na podstawe adresu x l, w operacj, w wyrażenu odszukany zostane werzchołek q 2, stojący przed nawasem otwerającym q 1 2 (. W operacj przeszukwana jest zawartość pary nawasów 1 (... ) 1 aby odnaleźć term zawerający symbol. Wynkem operacj jest term q 4, w którym symbol q 4 oznacza nowy stan automatu, dla którego pownen być wygenerowany odpowedn sygnał wyjścowy. Stąd też w operacj w tabel Q ~ szukany jest wersz oznaczony symbolem q 4. Znalezony wersz zawera symbol y 3, który w operacj zapsywany jest w słowe "y". W operacj uaktualnany jest stan beżący automatu przez zapsane q 4 w słowe "q". Po wykonanu opsanych powyżej operacj dla jednego przejśca następuje aktualzacja danych przekazywanych przez nterfejs wyjścowy programu. Operacje dla kolejnych przejść wykonywane są w analogczny sposób. 1 z 4 7 q q 2 2 3 5 Q ~......... q 2 x 1 y 3......... q 4 x 4 y 3......... 6 y y 3... q 2 1 ( q 4... q 4 1 ( q 1... Rys. 3. Elementy programowego warantu automatu Moore'a 4. Ops programu umożlwającego realzację automatu skończonego 4.1. Ogólna koncepcja programu W poprzednm punkce przedstawono ogólne zasady programowej realzacj automatów skończonych. Obecne zostane omówony sposób mplementacj programowego warantu automatu typu Moore'a na komputerze PC. Z wcześnejszych rozważań wynka, że program reprezentujący swom dzałanem automat skończony pownen realzować trzy podstawowe funkcje: - wprowadzane danych określających strukturę automatu wstępne sprawdzene ch poprawnośc, - symulację dzałana automatu (według zasad opsanych w punkce 3.3), - grafczną prezentację dzałana automatu na ekrane komputera. Ponżej zostane przedstawony sposób realzacj tych funkcj z zaznaczenem różnc w stosunku do wcześnej omówonych założeń.
Logka Układów Cyfrowych Komputerowa realzacja automatów 6 4.1.1. Wprowadzane struktury automatu do pamęc komputera Struktura automatu skończonego reprezentowana jest w pamęc komputera w postac wyrażena symbolcznego. W omawanej mplementacj wyrażene symbolczne może być wprowadzane zarówno w wersj (3) lub wersj (4). Ne podaje sę natomast ndeksów nawasów (są one automatyczne dołączane przez procedurę czytającą dane wejścowe). Oprócz wyrażena symbolcznego podaje sę także zbór symbol wejścowych Z, zbór stanów wewnętrznych Q, zbór symbol wyjścowych Y oraz funkcję wyjść reprezentowaną przez tabelę Q (q r y j ). Po wprowadzenu wyrażena symbolcznego poddawane jest ono analze (sprawdzana jest poprawność jego składn). W tym celu wykorzystywane są dagramy składn wyrażena symbolcznego przedstawone na rys. 4. Zastosowany algorytm analzy składnowej charakteryzują dwe cechy: - określene kolejnego kroku analzy zależy tylko od obecnego stanu oraz od pojedynczego, aktualne wczytywanego symbolu, - żadnego z kolejnych kroków analzy ne można cofnąć. Jest to tzw. analza bez powrotów z wyprzedzenem o jeden symbol (ang. one-symbol-lookahead wthout backtrackng) [5]. ID: ltera cyfra łuk: ID ID nawas: ( ID nawas ), wyrażene symbolczne: ( ID nawas ), Rys. 4. Dagramy składn wyrażena symbolcznego W przypadku stwerdzena poprawnośc wyrażena symbolcznego umeszczane jest ono w pamęc, w przecwnym przypadku sygnalzowany jest błąd. Ostateczne w pamęc zapsane jest wyrażene symbolczne oraz tabela Wraz z analzą składn wyrażena symbolcznego tworzona jest lsta łuków grafu automatu. Jest ona wykorzystywana do grafcznej prezentacj grafu automatu na ekrane komputera dokładnej zostane opsana późnej. 4.1.2. Symulacja dzałana automatu Procedura symulująca dzałane automatu skończonego oparta jest na algorytme przedstawonym w punkce 3.3. Została ona rozszerzona o podprogram umożlwający Q ~.
Logka Układów Cyfrowych Komputerowa realzacja automatów 7 wprowadzane z klawatury sekwencj symbol wejścowych. Po wczytanu symbolu wejścowego wykonywane są kolejne operacje zgodne ze schematem przedstawonym na rys. 3. W ch wynku otrzymujemy nowy stan automatu q r oraz odpowadający mu symbol wyjścowy y j. W trakce symulacj dzałana automatu na ekrane wyśwetlany jest graf automatu. Werzchołek grafu odpowadający aktualnemu stanow automatu jest odpowedno oznaczony. Wraz z analzą kolejnych symbol wejścowych następuje uaktualnene obrazu grafu na ekrane komputera. Sposób uzyskana grafu automatu na ekrane komputera zostane przedstawony w następnym punkce. 4.1.3. rafczne przedstawene grafu automatu na ekrane komputera Jednym ze sposobów opsu dzałana automatu skończonego jest podane jego grafu przejść. raf automatu reprezentowany jest wówczas przez zbór werzchołków V odpowadający stanom wewnętrznym automatu oraz przez zbór krawędz E określający możlwe przejśca mędzy stanam automatu. W celu uzyskana na ekrane odpowadającego badanemu automatow grafu przejść należy określć, na podstawe wyrażena symbolcznego, zbór krawędz tego grafu. Krawędź opsywana jest następującym parametram: gdze: k = (q p, q k, z j, rk) q p - stan początkowy (aktualny), q k - stan końcowy (następny), z j - sygnał wejścowy powodujący przejśce automatu ze q p do stanu q k, rk - rodzaj krawędz. Lsta krawędz tworzona jest równolegle podczas analzy wyrażena symbolcznego (patrz punkt 4.1.1). Otrzymujemy wówczas zbór krawędz, dla których określone są q p, q k oraz z j. Następne zostaje określony rodzaj każdej krawędz zgodne z oznaczenam przedstawonym na rys. 5. rk = 0 q p q p rk = 0 q k q p rk = 1 rk = 2 Rys. 5. Rodzaje krawędz występujące w grafe automatu q k Dysponując opsanym zborem krawędz można narysować graf automatu. Odpowedna procedura składa sę z trzech częśc: - rysowane werzchołków (stan aktualny jest wyróżnony), - rysowane łuków (krawędz) odpowadających przejścom mędzy stanam, - opsane krawędz grafu odpowednm symbolam wejścowym z j. 4.2. Ops dzałana programu Menu główne programu umożlwa wybrane jednej z następujących opcj: - DANE - EDYCJA - SYMULACJA
Logka Układów Cyfrowych Komputerowa realzacja automatów 8 Wybór żądanej opcj następuje przez wprowadzene z klawatury wyróżnonego znaku dla odpowednego pola menu lub za pomocą klawszy kerunkowych (strzałek) klawsza <ENTER>. Rezygnacja z wybranej opcj następuje w wynku nacśnęca klawsza <ESC>. 4.2.1. Opcja DANE Wybór tej opcj umożlwa realzację jednej z następujących funkcj: - wczytane danych z dysku, - zapsane danych na dysk, - ncjowane wprowadzana danych, - przeglądane katalogu, - zmana katalogu, - wyjśce z programu. Do danych określających strukturę automatu należą: - zbór symbol wejścowych Z, - zbór stanów wewnętrznych Q, - zbór symbol wyjścowych Y, - funkcja przejść (w postac wyrażena symbolcznego), - funkcja wyjść (w postac tabel). Po wczytanu danych są one wyśwetlane na ekrane komputera wraz z odpowadającym m grafem automatu. 4.2.2. Opcja EDYCJA Opcja ta umożlwa wprowadzane lub modyfkację danych określających strukturę automatu. Przy wprowadzanu danych należy pamętać, że: - dentyfkator określający symbol wejścowy, stan wewnętrzny lub symbol wyjścowy może składać sę z pojedynczej ltery odpowednego ndeksu np. z1, q5, y3, - poszczególne elementy wprowadzanych danych oddzelane są przecnkem np. Z = { z1, z2, z3 }, - przy wprowadzanu wyrażena symbolcznego ne podaje sę ndeksów nawasów (są one dodawane automatyczne przez program). W przypadku wprowadzena błędnych danych sygnalzowany jest rodzaj błędu oraz mejsce jego wystąpena. Przy poprawnym zakończenu edycj na ekrane zostają wyśwetlone aktualne dane oraz odpowadający m graf automatu. 4.2.3. Opcja SYMULACJA Opcja SYMULACJA umożlwa testowane automatu, którego struktura została wczytana ze zboru dyskowego lub wprowadzona za pomocą opcj EDYCJA. Po jej wyborze stneje możlwość realzacj jednej z następujących funkcj: - zmana aktualnego stanu wewnętrznego automatu, - wprowadzene słowa wejścowego (cągu symbol wejścowych), - praca cągła automatu, - praca krokowa automatu. Po określenu słowa wejścowego można testować automat na dwa sposoby: - automat generuje na podstawe słowa wejścowego słowo wyjścowe (pracy automatu ne można wówczas przerwać),
Logka Układów Cyfrowych Komputerowa realzacja automatów 9 - praca automatu śledzona jest krok po kroku (po każdym symbolu wejścowym praca automatu jest wstrzymywana). Na ekrane można obserwować kolejne zmany stanu automatu, a ponadto wyśwetlana jest dokumentacja jego dzałana zawerająca lstę kolejnych stanów wewnętrznych oraz generowanych symbol wyjścowych. W trakce testowana automatu może powstać sytuacja, że dane przejśce w automace jest neokreślone (w przypadku automatów nezupełnych). Następuje wówczas sygnalzacja błędu oraz wstrzymywana jest dalsza praca automatu. Podczas testowana automatu stneje równeż możlwość zmany jego aktualnego stanu bez wprowadzana symbolu wejścowego. 5. Przebeg ćwczena Dla problemów zadanych przez prowadzącego, w postac opsu słownego, przygotować przetestować automaty Moore'a: - określć graf automatu Moore'a odzwercedlający zadany problem (sprawdzć czy ne zawera on stanów równoważnych), - zapsać graf automatu w postac wyrażena symbolcznego tabel wyjść Q, - wprowadzć dane do programu przetestować komputerowy model automatu podając odpowedne cąg symbol wejścowych, - zaprojektować cąg testowy o jak najmnejszej długośc, który umożlwłby pełne przetestowane automatu (sprawdzene wszystkch przejść). W przypadku nektórych automatów może być potrzebny węcej nż jeden tak cąg. 6. Sprawozdane z ćwczena - umeścć temat cel ćwczena, - umeścć grafy automatów dla problemów podanych przez prowadzącego ćwczene, - przedstawć wyrażena symbolczne reprezentujące grafy automatów, - umeścć wynk testowana programowych warantów automatów, - podać krótke wnosk z ćwczena. 7. Lteratura [1]. Bromrsk J.: Teora automatów, WNT, Warszawa 1972 [2]. Hopcroft J. E., Ullman J.D.: Introducton to Automata Theory, Languages and Computaton, Addson-Wesley Publshng Company, Readng, Massachusets 1979 [3]. Kazmerczak J.: System Cybernetyczny, Wyd. Wedza Powszechna (sera "Omega"), Warszawa 1978 [4]. Kazmerczak J., Kluska J., Kaczmarek A., Podstawy teor automatów - Laboratorum, Wyd. Poltechnk Rzeszowskej, Rzeszów 1984 [5]. Wrth N.: Algorytmy struktury danych = programy, WNT. Warszawa 1989