Języki, automaty i obliczenia/Ćwiczenia 3: Automat skończenie stanowy

Z Studia Informatyczne
Wersja z dnia 14:56, 9 sie 2006 autorstwa Rogoda (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

ĆWICZENIA 3

Ćwiczenie [Uzupelnij]

RYSUNEK ja-lekcja3-c-rys2. Dla jakich k słowo ak należy do języka akceptowanego przez automat z rysunku Uzupelnic ja-lekcja3-c-rys2|?

ROZWIĄZANIE. Słowa o żądanej własności to słowa postaci a2a4l, gdzie Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle l \in \mathds{N}} , zatem szukane k ma postać Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle k=4l+2,\ l \in \mathds{N}} .

Ćwiczenie [Uzupelnij]

Opisz słownie język L akceptowany przez poniższy automat.

RYSUNEK ja-lekcja3-c-rys3

ROZWIĄZANIE. Język L składa się ze słów postaci anbxy1y2...ykbl, n,k,l0, gdzie x jest literą a lub b, a każde yi ma postać bmia2 lub bmiab, gdzie mi0, i=1,...,k.

Ćwiczenie [Uzupelnij]

Wyznacz prawą kongruencję automatową dla trzystanowego automatu z rysunku Uzupelnic ja-lekcja3-c-rys3|

ROZWIĄZANIE.
[1]={an:n0}
[b]={amby1y2...yp: yi=bsia lub yi=abtia, m,p,ti0,si>0,i=1,...,p}
[ba]={anbx(bm1ay1)...(bmpayp)br:n,mi,p,r0, x,yi{a,b}, i=1,...,p}

Ćwiczenie [Uzupelnij]

Uzupełnij rysunek Uzupelnic ja-lekcja3-c-rys4| w ten sposób, by uzyskany 4-stanowy automat nie akceptował żadnego słowa nad alfabetem {a,b}, w którym dwie litery b występują obok siebie.

ROZWIĄZANIE. RYSUNEK ja-lekcja3-c-rys5

Ćwiczenie [Uzupelnij]

Sprawdź, czy następujące automaty są równoważne.

RYSUNEK ja-lekcja3-c-rys6

ROZWIĄZANIE. Tak.

Ćwiczenie [Uzupelnij]

Wyznacz automat 𝒜=(S={s1,s2},f) (nad alfabetem {a,b}), którego reprezentacja τ𝒜 spełnia następujące warunki:

  • i{1,2} τ𝒜(b)(si)=s3i (i=1,2),
  • sS τ𝒜(ab)(s)=s1

Czy automat ten jest wyznaczony jednoznacznie?

ROZWIĄZANIE. Z pierwszego warunku otrzymujemy f(s1,b)=s2, f(s2,b)=s1. Z drugiego warunku mamy f(s1,ab)=s1 oraz f(s2,ab)=s1. Ponieważ f(s1,ab)=f(f(s1,a),b)=s1, a pod wpływem b do stanu s1 możemy przejść tylko ze stanu s2, zatem f(s1,a)=s2. Analogicznie: f(s2,ab)=f(f(s2,a),b))=s2. Ponieważ pod wpływem b do stanu s2 można przejść tylko ze stanu s1, zatem musi być f(s2,a)=s1. Obliczyliśmy więc f dla wszystkich stanów i wszystkich liter alfabetu. Funkcja przejścia wyznaczona jest jednoznacznie.

Ćwiczenie [Uzupelnij]

Określ monoid przejść automatu 𝒜 zadanego grafem
ja-lekcja3-c-rys8

Jakie języki akceptują automaty 𝒜i dla i=0,1,2, zadane grafem ja-lekcja3-c-rys8, jeśli stanem początkowym jest s0, a zbiór stanów końcowych Ti={si}?

ROZWIĄZANIE. M(𝒜)={τ𝒜(1),τ𝒜(a),τ𝒜(b)}={τ𝒜(a),τ𝒜(b)}*
L(𝒜i)={w{a,b}:#aw#bw=imod3}.

Ćwiczenie [Uzupelnij]

Rozważmy automat synchronizujący 𝒜=(S,A,f), gdzie S jest n-elementowym zbiorem stanów a A dowolnym, skończonym alfabetem (definicja automatu synchronizującego podana jest w wykładzie nr 3). Dla automatu synchronizującego 𝒜 jego najkrótsze słowo synchronizujące nazywamy minimalnym słowem synchronizującym, a jego długość oznaczamy przez m(𝒜). Niech SYN(n) oznacza zbiór wszystkich n-stanowych automatów synchronizujących i tylko takich.

Udowodnij, że

𝒜SYN(n) m(𝒜)n3.

WSKAZÓWKA. Rozważ długości słów synchronizujących pary stanów automatu 𝒜, czyli słów wpq takich, że |{f(p,wpq),f(q,wpq)}|=1. Wykorzystaj fakt, że słowo synchronizujące dla 𝒜 ma być minimalne.

ROZWIĄZANIE. Jeśli automat jest synchronizujący, to dla każdych dwóch stanów p i q istnieje słowo wpq, które synchronizuje te dwa stany, tzn. f(p,wpq)=f(q,wpq). Wybierzmy dwa dowolne stany p, q ze zbioru stanów automatu. Jak długie może być słowo wpq=w1w2...wt synchronizujące te dwa stany? Kolejne litery tego słowa mogą przeprowadzać zbiór stanów {p,q} w zbiory innych dwuelementowych stanów. Zauważmy, że jeśli dla pewnych i<j zachodzi f({p,q},w1...wi)=f({p,q},w1...wj), to jako wpq możemy wybrać krótsze słowo, wpq=w1...wiwj+1...wt. Możemy więc założyć, że dla i=j zachodzi f({p,q},w1...wi)=f({p,q},w1...wj), czyli wszystkie dwuelementowe podzbiory powstałe w wyniku przekształceń zbioru {p,q} przez kolejne litery słowa wpq są parami różne. Ponadto, ostatni zbiór, f({p,q},w1...wt), jest jednoelementowy, gdyż założyliśmy, że wpq ma synchronizować stany p i q.

Ponieważ istnieje (n2) dwuelementowych podzbiorów n-elementowego zbioru stanów, zatem słowo wpq może mieć długość co najwyżej (n2). Po przekształceniu zbioru S stanów przez słowo wpq znajdziemy się w co najwyżej n1-elementowym zbiorze S1S. Z tego zbioru znów wybieramy dwa stany p,q, szukamy dla nich słowa synchronizującego i przekształcamy przez to słowo zbiór S1 otrzymując co najwyżej n2-elementowy zbiór S2. W najgorszym przypadku powyższą procedurę będziemy musieli powtórzyć n1 razy aby zsynchronizować wszystkie stany ze zbioru S do jednego stanu. Słowem synchronizującym będzie konkatenacja słów wpq synchronizujących pary stanów w poszczególnych krokach.

Długość tego słowa będzie nie większa niż (n1)(n2)n3, co należało dowieść.

ZADANIA DOMOWE

Ćwiczenie [Uzupelnij]

Sprawdź, które z poniższych słów należą do języka akceptowanego przez automat z zadania Uzupelnic ja_cw3_1|:

  1. abbbab,
  1. aabbaa,
  1. a6,
  1. ababaa,
  1. ba.

Ćwiczenie [Uzupelnij]

Sprawdź, czy następujące automaty są równoważne.

RYSUNEK ja-lekcja3-c-rys7

Ćwiczenie [Uzupelnij]

Wyznacz monoid przejść następującego automatu:

RYSUNEK ja-lekcja3-c-rys1

Ćwiczenie [Uzupelnij]

Określ automat 𝒜 akceptujący język

L(𝒜)={w{a,b}:#aw#bwmod2}.