• s1 • • s2 • • s3 • • • s4 • • •

Transkrypt

• s1 • • s2 • • s3 • • • s4 • • •
5. JĘZYKI REGULARNE – minimalizacja automatu DAS.
A. STANY RÓWNOWAŻNE
Dwa stany p,q∊Q automatu MDAS=(Q,,,sstart,F) nazywamy równoważnymi gdy dla dowolnego słowa A∊* stany
należą jednocześnie do stanów końcowych albo jednocześnie do stanów niekońcowych:
W przeciwnym wypadku stany nazywamy nierównoważnymi, tzn. stany p,q∊Q automatu MDAS=(Q,,,sstart,F)
nazywamy nierównowaznymi, gdy istnieje słowo A∊* takie, że
(lub na odwrót)
STWIERDZENIA:
 Jeżeli stan p jest stanem końcowym a stan q nie jest stanem końcowym to stany p i q nie są równoważne.
 Stany mogą być równoważne jeśli oba jednocześnie są końcowe lub oba jednocześnie nie są końcowe.
 Jeżeli p’ i q’ są stanami nierównoważnymi i istnieje
,
to stany p i q też nie są równoważne.
 Relacja („bycia stanami równoważnymi”) jest relacją równoważności w zbiorze stanów Q automatu
MDAS=(Q,,,sstart,F).
Budowa tabeli par stanów równoważnych
I. Oznacz (np. przez •) wszystkie pary złożone ze stanu końcowego i niekońcowego (to stany nierównoważne);
{Analizując pozostałe pary stanów, oznacz analogicznie każdą parę stanów p,q ∊ Q, dla której istnieje
symbol x∊, taki że para stanów
została już oznaczona w poprzednim
kroku};
while Oznaczyłeś/aś jakąkolwiek parę stanów nierównoważnych w ostatnim kroku.
III. Wypisz stany równoważne (to nieoznaczone pary stanów).
II. do
B. MINIMALIAZCJA AUTOMATU DAS
Automatem minimalnym automatu
nazywamy automat deterministyczny posiadający najmniejszą ilość
stanów spośród wszystkich automatów deterministycznych generujących język
.
Algorytm minimalizacji automatu MDAS=(Q,,,s0,F)
I. Usuń z automatu
wszystkie stany nieosiągalne (tzn. takie, do których nie istnieje droga od s0)
II. Utwórz tabelę par stanów równoważnych automatu (patrz algorytm powyżej)
III. Na podstawie tabeli wyodrębnij i nazwij klasy abstrakcji relacji równoważności stanów (np. przez przedstawicieli
klas).
IV. Skonstruuj automat





NP. Dla automatu opisanego poniższym grafem parami stanów równoważnych są :
oraz
Zatem klasami abstrakcji są [s1]={s1,s3}, [s2]={s2,s4,s5} oraz [s0]={s0}. W rezultacie otrzymujemy automat o 3 stanach:
s0
a
a
s0
s1
b
s3
a
b
b
s2
b
a
s4
a,b
s5
a,b
• s1
• • s2
•
• s3
• •
•
• •
•
a
[s0] a,b
b
[s1]
b
[s2]
s4
s5
8
STWIERDZENIA:

Dla dowolnego automatu

Jeżeli M1, M2 są automatami typu DAS generującymi ten sam język (tzn
to
( z dokładnością do nazw stanów)

Automat
istnieje automat
skonstruowany wg powyższego algorytmu
jest automatem minimalnym automatu
, tzn.:
o Automat
jest automatem deterministycznym
o Oba automaty generują ten sam język:
o Nie istnieje automat typu DAS o mniejszej ilości stanów generujący język
.
Twierdzenie 5
Dla każdego deterministycznego automatu skończonego M istnieje dokładnie jeden automat minimalny Mmin i jest on
również minimalny dla każdego automatu M’ równoważnego z M (z dokładnością do nazw stanów) .
6. JĘZYKI REGULARNE – przykłady automatów skończonych i ich zastosowań.
A. INNE TYPY AUTOMATÓW SKOŃCZONYCH:
Automat Moore'a (pozwala na budowę układów logicznych), Automat Mealy'ego (np. transducery), automaty
synchronizujące (zastosowanie w przemyśle), automaty uogólnione (w odróżnieniu od dotychczas omówionych
automatów czytają w pojedynczej instrukcji słowo o dowolnej długości ( a nie pojedynczy znak))
B. PRZYKŁADY ZASTOSOWAŃ AUTOMATÓW SKOŃCZONYCH:
Lingwistyka komputerowa.
Np. analizę leksykalną można zastosować w każdym programie, który wczytuje dane posiadające jakąś składnię, na przykład
w: przeglądarkach internetowych, edytorach, systemach składu tekstu, programach konwertujących, czy jakichkolwiek
aplikacjach posiadających pliki konfiguracyjne o określonej składni.
baj
t
cie
2
a,u,y,em,owy,
ów, om,ami,ach
Weryfikacja modelowa
Weryfikacja modelowa jest stosowana do badania, czy określony mechanizm (np. układ elektroniczny, protokół
komunikacyjny, prosty program o ograniczonej liczbie stanów) posiada wymagane własności. W tym celu tworzy się automat
skończony będący modelem systemu. Język akceptowany przez ten automat reprezentuje możliwe przebiegi zdarzeń.
Następnie bada się, czy język akceptowany przez automat zawiera się w języku złożonym z dopuszczalnych przez specyfikację
przebiegów zdarzeń. Zaletą weryfikacji modelowej w porównaniu z testowaniem jest to, że obejmuje wszystkie możliwe
przebiegi zdarzeń, a nie tylko niektóre.
Przemysł
Automaty synchronizujące w przemyśle. Automat synchronizujący to automat M=(Q,,), o następującej własności: istnieje
stan q∊Q oraz słowo E∊* takie, że dla każdego stanu s∊Q tego automatu (s,E)=q, tzn istnieje pewne uniwersalne słowo E,
pod wpływem którego wszystkie stany przechodzą w jeden, ustalony stan q automatu . Mówimy, że następuje wtedy
synchronizacja wszystkich stanów automatu. Przykładowo są stosowane w urządzeniach technicznych typu: automatyczne
drzwi, automaty sprzedające napoje, winda, czy też urządzenia sterujące taśmą produkcyjną.
Słowem synchronizującym do stanu
jest słowo:
9