Processing math: 100%

Warianty automatów skończonych

  1. Automaty z ϵ-przejściami. Niedeterministyczny automat z ϵ-przejściami A=(Σ,Q,I,δ,F) jest określony jak zwykły automat skończony z tym, że δQ×(Σ{ϵ})×Q. Relacja qwp (gdzie p,qQ i wΣ) jest określona jak poprzednio, tzn. qϵq i qvap o ile qvq1 i (q1,a,p)δ z tym, że teraz a może być literą w Σ lub ϵ.

    Dowieść, że dla dowolnego automatu z ϵ-przejściami istnieje zwykły automat skończony, który akceptuje ten sam język.

  2. Automat z wyjściem wg Mealy'ego. Automat Mealy'ego można przedstawić jako deterministyczny automata skończony, powiedzmy A=(Σ,Q,qI,δ,F) dany razem z funkcją γ:Q×ΣΔ. Intuicyjnie, dany stan q i litera σΣ determinują nie tylko kolejny stan, powiedzmy p, ale także sygnał wyjściowy (output), γ(q,σ). Dokładniej, słowo w=w1w2wn nad Σ, takie, że ˆδ(qI,w1wi1)=pi, dla i=1,,n, wyznacza n-literowe słowo nad alfabetem Δ,

    ˆγ(w)=defγ(qI,w1)γ(p2,w2)γ(pn,wn)

    Powiemy, że automat Mealy'ego redukuje język L1 do L2 jeśli (w) wL1ˆγ(w)L2. Skonstruować automat, który redukuje ab(ababa) do (ababa).

  3. Automat z wyjściem wg Moore'a. Automat Moore'a można przedstawić jako deterministyczny automata skończony wraz z funkcją γ:QΔ. Tym razem, słowo w=w1w2wn wyznacza

    ˆγ(w)=defγ(ˆδ(qI,w1))γ(ˆδ(qI,w1w2))γ(ˆδ(qI,w1w2wn))

    Dowieść, że automaty Mealy'ego i Moore'a są równoważne w tym sensie, że dla każdego automatu jednego typu można znale”zć automat drugiego typu realizujący tę samą funkcję ˆγ.

  4. Automaty dwukierunkowe. Funkcja przejścia deterministycznego automatu dwukierunkowego jest postaci δ:Q×ΣQ×{L,R}, co interpretujemy, że automat może przesunąć czytnik zarówno w prawo jak i w lewo. Dowieść, że deterministyczne automaty dwukierunkowe mogą być symulowane przez zwykłe automaty skończone

    Wskazówka. Znane rozwiązanie oparte na idei ciągów skrzyżowań (ang. crossing sequences) można znale”zć w rozdziale 2.6 książki J.E.Hopcroft, J.D.Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, Wydawnictwo Naukowe PWN, Warszawa 1994. Innym, być może prostszym rozwiązaniem – zaproponowanym przez Mikołaja Bojańczyka – jest uwzględnienie w stanie symulującego automatu jednokierunkowego funkcji h:QQ{} o następującej interpretacji: jeśli automat (dwukierunkowy) pójdzie w lewo w stanie q, to wróci w stanie h(q) (być może wcale nie wróci, gdy h(q)=). (Rezultat zachodzi również dla automatów niedeterministycznych.)

    Uwaga. W dalszej części wykładu spotkamy się z mocniejszym stwierdzeniem, a mianowicie, że maszyny Turinga pracujące na jednej taśmie w czasie liniowym akceptują jedynie języki regularne.

  5. Dla ustalonego k, rozważmy język nad alfabetem {a,b,c} opisany wyrażeniem

    ((a+b)c)k1(a+b)a(a+b)k1c((a+b)c)

    Intuicyjnie: język składa się z ,,bloków” liter a,b, zakończonych ,,znacznikiem” c, przy czym k-ty (od początku) blok ma tę własność, że jego k-ty symbol od końca jest a.

    1. Wykazać, że deterministyczny ,,jednokierunkowy” automat rozpoznający ten język ma 2k stanów.
    2. Skonstruować 2-kierunkowy automat o liniowej (O(k)) liczbie stanów, rozpoznający ten język.
    3. (*) Jak wyżej, ale automat ma prawo wykonać tylko jeden nawrót. (Bez zmniejszenia ogólności, możemy założyć, że automat idzie do końca słowa, po czym wraca i kończy obliczenie na początku słowa.)