Języki, automaty i obliczenia
Wykład 4: Minimalizacja automatów skończonych
Sławomir Lasota
Uniwersytet Warszawski
23 marca 2016
Plan
1 Języki regularne mają skończenie wiele ilorazów lewostronnych
2 Minimalizacja automatów deterministycznych
3 ∗Minimalizacja automatów niedeterministycznych?
Równoważność Myhilla-Nerode’a
Notacja
w−1L zamiast {w }−1L = { u ∈ A∗ : w u ∈ L }
Język L ⊆ A∗określa relację równoważności w A∗: w ∼Lv ⇐⇒ w−1L = v−1L
Równoważnie:
w ∼Lv ⇐⇒ ∀u ∈ A∗. (w u ∈ L ⇐⇒ v u ∈ L)
Fakt (∼Ljest L-niezmiennicza)
w ∼Lv =⇒ (w ∈ L ⇐⇒ v ∈ L) rysunek
Dowód:
w ∈ L ⇐⇒ ε ∈ w−1L
Języki regularne mają skończenie wiele ilorazów lewostronnych
w ∼Lv ⇐⇒ w−1L = v−1L ⇐⇒ ∀u ∈ A∗. (w u ∈ L ⇐⇒ v u ∈ L)
Przykład
A = {a, b} ε−1L = L ε ∼Lab ∼Labab ∼L. . . L = (ab)∗ a−1L = bL a ∼Laba ∼Lababa ∼L. . .
b−1L = ∅ b ∼Laa ∼Labb ∼L. . .
A = {a, b} (ak)−1L = { anbn+k : n ∈ N } L = { anbn : n ∈ N }
Twierdzenie (Myhill-Nerode 1958)
Niech L ⊆ A∗. Następujące warunki są równoważne:
L jest regularny
∼Lma skończony indeks
Dowód (L regularny =⇒ ∼
Lma skończony indeks)
Niech A = (A, Q, {q0}, F , δ) automat deterministyczny rozpoznający L.
Dla q ∈ Q, niechLq(A) = . . .
Fakt L
δ(qb 0,w )(A) = w−1L, dla każdego w ∈ A∗.
Zdefiniujmy relację równoważności ∼Ana A∗:
w ∼Av ⇐⇒ bδ(q0, w ) = bδ(q0, v ).
Relacja ta ma skończony indeks. Używamy faktu powyżej, by dowieść w ∼Av =⇒ w ∼Lv .
Czyli indeks relacji ∼Ljest niewiększy niż indeks relacji ∼A.
Wniosek
Każdy automat deterministyczny rozpoznający język L ma przynajmniej indeks(∼L) stanów.
Dowód (∼
Lma skończony indeks =⇒ L regularny)
Fakt (∼Ljest prawą kongruencją) w ∼Lv =⇒ w a ∼Lv a
Dowód:
(w a)−1L = a−1(w−1L) = a−1(v−1L) = (v a)−1L
Konstruujemy automat deterministyczny AL: Q0 = A∗/∼L = { [w ]∼L : w ∈ A∗} q00 = [ε]∼L
F0 = { [w ]∼L : w ∈ L } δ0([w ]∼L, a) = [w a]∼L
Fakt L(AL) = L
Dowód:
δb0([ε]∼L, w ) = [w ]∼L∈ F ⇐⇒ w ∈ L
Automat A
L(przykład)
Q0 = A∗/∼L = { [w ]∼L : w ∈ A∗} q00 = [ε]∼L
F0 = { [w ]∼L : w ∈ L } δ0([w ]∼L, a) = [w a]∼L
Przykład L = (a b)∗
[ε]L start
[b]L
[a]L a
b
b a
a, b
Dowód (∼
Lma skończony indeks =⇒ L regularny)
Konstruujemy automat deterministyczny AL: Q0 = { w−1L : w ∈ A∗}
q00 = L = ε−1L F0 = { M ∈ Q0 : ε ∈ M } δ0(M, a) = a−1M
Fakt
bδ0(q00, w ) = w−1L
Dowód:
a−1(w−1L) = (w a)−1L
Fakt L(AL) = L
Dowód:
w ∈ L(AL) ⇐⇒ bδ0(q00, w ) ∈ F0 ⇐⇒ ε ∈ w−1L ⇐⇒ w ∈ L
Automat A
L(przykład)
Q0 = { w−1L : w ∈ A∗} q00 = L = ε−1L F0 = { M ∈ Q0 : ε ∈ M } δ0(M, a) = a−1M
Przykład L = (a b)∗
(a b)∗ start
∅
b (a b)∗ a
b
b a
a, b
Automat minimalny
Wniosek
Każdy automat deterministyczny rozpoznający L ma przynajmniej indeks(∼L) stanów.
Automat ALma indeks(∼L) stanów.
Czyli ALtominimalnyautomat deterministyczny rozpoznający język L.
Pytanie
Czy automat minimalny jest wyznaczony jednoznacznie?
Dowodzenie minimalności (przykład)
Czy ten automat jest minimalny?
start
a
b
b a
a, b
Tak!
Każdy automat deterministyczny rozpoznający L = (a b)∗ma przynajmniej 3 stany.
Dowód:
ε a b
ε × b a b
a × × b
b × × ×
εb 6∈ L ab ∈ L εa b ∈ L ba b 6∈ L
ab ∈ L bb 6∈ L
Plan
1 Języki regularne mają skończenie wiele ilorazów lewostronnych
2 Minimalizacja automatów deterministycznych
3 ∗Minimalizacja automatów niedeterministycznych?
Kongruencja i automat ilorazowy
Niech A = (A, Q, {q0}, F , δ) automat deterministyczny.
Kongruencjaw A to relacja równoważności R ⊆ Q × Q taka, że R(q, p) =⇒ (q ∈ F ⇐⇒ p ∈ F )
R(q, p) =⇒ R(δ(q, a), δ(p, a)), dla każdego a ∈ A.
start
a
b
b a
a, b a b
b a
Kongruencja i automat ilorazowy
Niech A = (A, Q, {q0}, F , δ) automat deterministyczny.
Kongruencjaw A to relacja równoważności R ⊆ Q × Q taka, że R(q, p) =⇒ (q ∈ F ⇐⇒ p ∈ F )
R(q, p) =⇒ R(δ(q, a), δ(p, a)), dla każdego a ∈ A.
Automat ilorazowyA/R:
A0 = A
Q0 = Q/R = { [q]R : q ∈ Q } q00 = [q0]R
F0 = F /R = { [q]R : q ∈ F } δ0([q]R, a) = [δ(q, a)]R
Fakt
L(A/R) = L(A)
Dowód:
bδ0([q0]R, w ) = [bδ(q0, w )]R
Automat minimalny jako automat ilorazowy
Niech A = (A, Q, {q0}, F , δ) automat deterministyczny. Niech L = L(A).
Załóżmy, że wszystkie stany automatu A są osiągalne.
Definiujemy kongruencję w A następująco:
q ≡Ap wtw. gdy Lq(A) = Lp(A)
Czy to jest kongruencja? Należy sprawdzić:
Lq(A) = Lp(A) =⇒ (q ∈ F ⇐⇒ p ∈ F )
Lq(A) = Lp(A) =⇒ Lδ(q,a)(A) = Lδ(p,a)(A), dla każdego a ∈ A.
start
a
b
b a
a, b a b
b a
Automat minimalny jako automat ilorazowy
Niech A = (A, Q, {q0}, F , δ) automat deterministyczny. Niech L = L(A).
Załóżmy, że wszystkie stany automatu A są osiągalne.
Definiujemy kongruencję w A następująco:
q ≡Ap wtw. gdy Lq(A) = Lp(A)
Fakt
Automaty A/≡Ai ALsą izomorficzne.
Dowód:
Q0 = { Lq(A) : q ∈ Q } q00 = Lq0(A)
F0 = { Lq(A) : q ∈ F } δ0(Lq(A), a) = Lδ(q,a)(A)
Q0 = { w−1L : w ∈ A∗} q00 = L = ε−1L F0 = { M ∈ Q0 : ε ∈ M } δ0(M, a) = a−1M Użyjmy faktu:
Lbδ(q0,w )(A) = w−1L, dla każdego w ∈ A∗.
Problem minimalizacji
Wniosek
AutomatminimalnyALjest wyznaczony jednoznacznie (z dokładnością do izomorfizmu).
L = (a b)∗
start
a
b
b a
a, b a b
b a
start
a b
b a
a, b
Problem minimalizacji
Problem obliczeniowy
Dane: automat deterministyczny A
Wynik: automat (izomorficzny do automatu) AL
Algorytm minimalizacji
usuń stany nieosiągalne z automatu A
oblicz relację ≡A q ≡Ap wtw. gdy Lq(A) = Lp(A) oblicz automat ilorazowy A/≡A
Jak obliczyć relację ≡
A?
q ≡Ap wtw. gdy Lq(A) = Lp(A)
q0 start
q4
q2
q1 q3
a
b
b a
a, b
a b
b a
q0 q1 q2 q3 q4
q0 × × ×
q1 × × ×
q2 × ×
q3 × ×
q4 × × ×
q0 q1 q2 q3 q4
q0 × × ×
q1 × × ×
q2 × × ×
q3 × × ×
q4 × × × ×
Początkowa równoważność:
q ≡0 p ⇐⇒ (q ∈ F ⇐⇒ p ∈ F ) Uszczegółowienie:
q ≡n+1 p ⇐⇒ q ≡np ∧ ∀a ∈ A δ(q, a) ≡n δ(p, a)
q ≡Ap ⇐⇒ ∀n q ≡np
Plan
1 Języki regularne mają skończenie wiele ilorazów lewostronnych
2 Minimalizacja automatów deterministycznych
3 ∗Minimalizacja automatów niedeterministycznych?
Brak jednoznaczności
start a
b
c b, c
a, c
a, b
start b, c
a, c
a, b a
b c
Relacja ≡
Adla automatów niedeterministycznych
q ≡Ap ⇐⇒ ∀n q ≡np
Dla automatów deterministycznych:
q ≡0 p ⇐⇒ (q ∈ F ⇐⇒ p ∈ F )
q ≡n+1 p ⇐⇒ q ≡np ∧ ∀a ∈ A δ(q, a) ≡n δ(p, a)
Dla automatów niedeterministycznych:
q ≡0 p ⇐⇒ (q ∈ F ⇐⇒ p ∈ F ) q ≡n+1 p ⇐⇒ q ≡np ∧ ∀a ∈ A
∀q0 δ(q, a, q0) =⇒ ∃p0δ(p, a, p0) ∧ δ(p, a) ≡n δ(q, a)
∀p0 δ(p, a, p0) =⇒ ∃q0δ(q, a, q0) ∧ δ(p, a) ≡n δ(q, a)
q ≡Ap ⇐⇒ Duplikator ma strategię wygrywającą z pozycji (q, p)
Gra bisymulacyjna
Dwaj graczeSpoileriDuplikator, gra rozgrywana w rundach. Runda rozpoczyna się w pozycji (q, p) ∈ Q2i przebiega następująco:
Spoilerwybiera jeden ze stanów (powiedzmy q), literę a ∈ A, i stan q0taki, że δ(q, a, q0);
w odpowiedziDuplikatorwybiera stan p0taki, że δ(p, a, p0) i kolejna runda zaczyna się w pozycji (q0, p0).
Kto nie może wykonać ruchu, natychmiast przegrywa. Rozgrywkę nieskończoną wygrywa zawszeDuplikator.
start start
a
b c
a a
b c