• Nie Znaleziono Wyników

Języki, automaty i obliczenia Wykład 2: Automaty skończone Sławomir Lasota

N/A
N/A
Protected

Academic year: 2022

Share "Języki, automaty i obliczenia Wykład 2: Automaty skończone Sławomir Lasota"

Copied!
24
0
0

Pełen tekst

(1)

Języki, automaty i obliczenia

Wykład 2: Automaty skończone

Sławomir Lasota

Uniwersytet Warszawski

9 marca 2016

(2)

Plan

1 Automaty skończone

2 Determinizacja

3 Operacje na językach

(3)

Zamiast wyrażeń, automaty

L = (aa + bb + (ab + ba)(aa + bb)(ab + ba))

Przykład

0,0 start

1, 0

0, 1

1, 1 a

b a

b

a

b

b

a

(4)

Automat skończony

A = (A, Q, I , F , δ) A – alfabet

Q – skończony zbiór stanów I ⊆ Q – stany początkowe F ⊆ Q – stany akceptujące δ ⊆ Q × A × Q – relacja przejścia

Notacja

trójkę (q, a, q0) ∈ δ nazywamyprzejściem, albotranzycją

zamiast (q, a, q0) ∈ δ możemy pisać q−−−→ qa 0, albo q−−−→a Aq0

Automat jestdeterministycznyjeśli δ jest funkcją Q × A → Q, I zawiera jeden stan, I = {q0}.

(5)

Przykład: automat deterministyczny

start 0 1

a b

a b

A = (A, Q, I , F , δ) A = {a, b}

Q = {0, 1}

I = F = {0}

δ = {(0, b, 0), (1, b, 1), (0, a, 1), (1, a, 0)}

L = ?

(6)

Przykład: automat niedeterministyczny

0

start 1

2 start

a

b b a

a

b

A = (A, Q, I , F , δ) A = {a, b}

Q = {0, 1, 2}

I = {0, 2}

F = {1}

δ = {(0, a, 1), (0, b, 1), (0, a, 2), (0, b, 2), (1, a, 0), (2, b, 0)}

L = ?

(7)

Rozszerzona relacja przejścia

Rozszerzamy relację przejścia do relacji bδ ⊆ Q × A× Q:

bδ(q, ε, q)

jeśli bδ(q, w , q0) i δ(q0, a, q00) to bδ(q, wa, q00)

q w

//

wa

99

q0 a

//

q00

Notacja

zamiast (q, w , q0) ∈ bδ możemy pisać q−−−−w→ q0

Dla automatów deterministycznych: bδ : Q × A→ Q.

Stany osiągalne:

{ q ∈ Q : ∃w ∈ A, q0∈ I . q0

−−−−w→ q }

(8)

Biegi

Bieg(obliczenie) automatu na słowie w = a1a2. . . an:

q0∈ I (q0, a1, q1) (q1, a2, q2) . . . (qn−1, an, qn) q0

a1

−−−−→ q1 a2

−−−−→ q2 . . . qn−1 an

−−−−→ qn

Bieg jestakceptującyjeśli qn∈ F .

Pytanie

Ile biegów na słowie ba ma ten automat? Czy ma bieg na każdym słowie?

start 0 1

2 start

a

b b a

a

b

Fakt

Automat deterministyczny ma dokładnie jeden bieg na każdym słowie.

(9)

Jednoznaczność

Automat jestjednoznacznyjeśli ma co najwyżej jeden bieg akceptujący na każdym słowie.

Fakt

Automat deterministyczny ma dokładnie jeden bieg na każdym słowie, więc jest jednoznaczny.

Pytanie

Czy ten automat jest jednoznaczny?

0

start 1

start 2

a

b b a

a

b

(10)

Język automatu

Językrozpoznawanyprzez automat:

L(A) def= { w ∈ A : ∃q ∈ I , q0∈ F . q−−−−w→ q0} L(A) def= { w ∈ A : A ma bieg akceptujący na w } L(A, q) def= . . .

Przykład

L(A) = b(abab)

start 0 1

a b

a b

Dla automatów deterministycznych:

L(A) = { w ∈ A : bδ(q0, w ) ∈ F }

(11)

Przykład – wyszukiwanie wzorca

A = {a, b, c}

L(A) = Aabc A

automat niedeterministyczny:

ε

start a a ab abc

a, b, c

b c

a, b, c

automat deterministyczny:

start ε a ab abc

a b,c

b a

c

c a

b

a,b,c

(12)

Przykład – podzielność

L(A) = liczby podzielne przez 3 A = {0, 1, . . . , 9}

Q = {0, 1, 2}

I = {0}, F = {0}

δ(q, a) = (q + a) mod 3

L(A) = (liczby podzielne przez 3) − {ε}

Q = {0, 1, 2, początek}

I = {początek}

δ(początek, a) = a mod 3

(13)

Przykład – szachy

Automat A:

A = wszystkie ruchy w szachach

Q = (wszystkie ustawienia figur na planszy szachowej) × {białe, czarne}

I = {(ustawienie początkowe, białe)}

F = {ustawienia szach-mat}

δ((u, białe), r ) = (u0, czarne)

δ((u, czarne), r ) = (u0, białe) u0 = wykonaj(u, r )

L(A) = wszystkie rozgrywki szachowe zakończone matem

(14)

Plan

1 Automaty skończone

2 Determinizacja

3 Operacje na językach

(15)

Determinizacja?

Równoważność automatów:

L(A) = L(A0)

Pytanie

Czy dla każdego automatu skończonego istnieje równoważny automat deterministyczny?

(16)

Determinizacja

Twierdzenie

Dla każdego automatu skończonego istnieje równoważny automat deterministyczny.

Dowód:

Q0 := P(Q) I0 := {I }

F0 := { X ⊆ Q : X ∩ F 6= ∅ }

δ0(X , a) := { ¯q ∈ Q : ∃q ∈ X . δ(q, a, ¯q) }

Przez indukcję po długości w pokazujemy:

δb0(I , w ) = { ¯q ∈ Q : ∃q ∈ I . bδ(q, w , ¯q) }

Zatem

w ∈ L(A0) ⇐⇒ bδ0(I , w ) ∈ F0 ⇐⇒ bδ0(I , w ) ∩ F 6= ∅ ⇐⇒

⇐⇒ ∃q ∈ I , ¯q ∈ F . bδ(q, w , ¯q) ⇐⇒ w ∈ L(A)

(17)

Przykład

A = {a, b}

L = Aa A

automat niedeterministyczny (ale jednoznaczny):

ε

start a a

a, b

a, b

automat deterministyczny:

start {ε}

{ε, a}

{ε, }

{ε, a, } b a

a

b

a

b b

a

(18)

Determinizacja jest wykładnicza

A = {a, b}

Ln = Aa An−2 n ≥ 2

Automat niedeterministyczny (ale jednoznaczny):

start a

a, b

a, b a, b a, b a, b

Pytanie

Ile stanów ma automat deterministyczny?

(19)

Determinizacja jest wykładnicza

start a

a

a b

a b

a b

a b

a

b

Pytanie

Ile stanów ma automat deterministyczny?

(20)

Plan

1 Automaty skończone

2 Determinizacja

3 Operacje na językach

(21)

Operacje na językach: suma, przecięcie

A, A0 7→ A00 L(A00) = L(A) ∪ L(A0)

Q00 := Q ] Q0 I00 := I ] I0 F00 := F ] F0 δ00 := δ ] δ0

A, A0 7→ A00 L(A00) = L(A) ∩ L(A0)

Q00 := Q × Q0 I00 := I × I0 F00 := F × F0

δ00 := { ((q, q0), a, (p, p0)) : (q, a, p) ∈ δ, (q0, a, p0) ∈ δ0}

(q, q0)−−−→a A00(p, p0) wtw. gdy q−−−→a Ap i q0−−−→a A0 p0

(22)

Operacje na językach: dopełnienie

A 7→ B L(B) = A− L(A)

Pytanie

Czy wystarczy zamienić stany akceptujące z nieakceptującymi?

ε

start a a

a, b

a, b

Krok 1: determinizacja A 7→ A0

Krok 2: zamiana stanów akceptujących z nieakceptującymi A0 7→ B QB := QA0

IB := IA0

FB := QA0− FA0

δB := δA0

(23)

Operacje na językach: przeplot

Przykład

las ⊗ so = {lasso, lsaso, slaso, lasos, lsaos, slaos, lsoas, sloas, solas}

w ⊗ v def= { u ∈ A : ∃X ⊆ {1 . . . |u|}. u|X= w , u|{1...|u|}−X= v } L ⊗ M def= [

w ∈L,v ∈M

w ⊗ v

A, A0 7→ A00 L(A00) = L(A) ⊗ L(A0)

Q00 := Q × Q0 I00 := I × I0 F00 := F × F0

(q, q0)−−−→a A00(p, p0) wtw. gdy q−−−→a Ap i q0= p0, albo q0−−−→a A0p0 i q = p

(24)

W następnym odcinku: wyrażenia regularne = automaty skończone

L = (aa + bb + (ab + ba)(aa + bb)(ab + ba))

start 0,0

1, 0

0, 1

1, 1 a

b a

b

a

b

b

a

Cytaty

Powiązane dokumenty

Poza obszarem używanym przez maszynę, na wszystkich pozycjach taśmy jest symbol B.. Nieistotne, na której pozycji taśmy zaczyna się obszar używany przez maszynę (przesunięcie

Maszyna M jest całkowita, jeśli zatrzymuje się dla każdego słowa wejściowego.... Czy

Wynik: czy da się pokolorować wierzchołki G trzema kolorami tak, żeby kolory sąsiadów były różne.. Problem plecakowy

Oprócz tego, w dowolnym momencie automat może za pomocą ε-przejścia wy- wołać podprocedurę, która za pomocą ε-przejść zdejmuje ze stosu ko- lejne litery słowa abba a

Języki będziemy utożsamiać z zadaniami obliczeniowymi, albo problemami

(Każdy język regularny jest rozpoznawany przez automat

Dwaj gracze Spoiler i Duplikator, gra rozgrywana

Wykład 5: Wariacje na temat automatów skończonych.