Matematyczne Podstawy Informatyki

Transkrypt

Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki
dr inż. Andrzej Grosser
Instytut Informatyki Teoretycznej i Stosowanej
Politechnika Częstochowska
Rok akademicki 2013/2014
Automat z epsilon przejściami
Niedeterministyczny automat skończony to uporządkowana piątka
NAS = (Q, Σ, δ, q0 , F ), gdzie:
1. Q to skończony zbiór stanów,
2. Σ to skończony zbiór symboli wejściowych,
3. δ to funkcja przejścia, która przyjmuje jako argumenty stan i
symbol wejściowy lub symbol i zwraca podzbiór stanów Q,
4. q0 to stan początkowy (jeden ze stanów ze zbioru Q),
5. F to zbiór stanów końcowych (akceptujących).
Przykład automatu
0...9
.
eps,+,A
0...9
B
0...9
C
0...9
D
.
B
F
Epsilon-domknięcie I
-domknięcie stanu q EDOMK(q) definiuje się:
I
Podstawa: Stan q należy do EDOMK(q).
I
Krok indukcyjny: Jeżeli stan p należy do EDOMK(q) oraz
istnieje przejście ze stanu p do stanu r o etykiecie , to r
należy do EDOMK(q) - jeżeli funkcją przejścia opisywanego
NAS jest δ i p należy do EDOMK(q), to EDOMK(q) zawiera
także stany z δ(p, ).
Epsilon-domknięcie II
EDOMK (q1 ) = {q1 , q2 , q3 , q4 , q6 }
Determinizacja automatu z eps-przejściami I
Dla danego automatu E = (QE , Σ, δE , q0 , FE ) można zbudować
równoważny DAS D = (QD , Σ, δD , qD , FD ), który zdefiniowany jest
następująco:
1. QD jest zbiorem podzbiorów QE . Wszystkie osiągalne stany D
są -domkniętymi podzbiorami QE , to znaczy S ⊆ QE takimi,
że S = EDOMK (S). Inaczej mówiąc, -domknięte zbiory
stanów S ta takie zbiory S, że dowolne -przejście z dowolnego
stanu z S prowadzi do stanu, który także należy do S.
2. qD = EDOMK (q0 ) - stan początkowy otrzymuje się
domykając zbiór złożony jedynie ze stanu początkowego.
3. FD składa się ze zbiorów stanów, które zawierają przynajmniej
jeden stan akceptujący E. Innaczej mówiąc,
FD = {S|S ∈ QD oraz S ∩ FE 6= ∅}
Determinizacja automatu z eps-przejściami II
4. Dla wszystkich a ∈ Σ i S ⊆ QD , wartość δ(S, a) oblicza się w
sposób następujący:
4.1 Niech S = {p1 , p2 , ..., pk }.
k
S
4.2 Obliczyć
δE (pi , a), niech tym zbiorem będzie {r1 , r2 , .., rm }.
i=1
4.3 Wtedy δD (S, a) =
m
S
j=1
EDOMK (rj ).
Przykład I
Przykład II
I
Zbiór stanów nowego automatu:
{∅, {q0 }, {q1 }, {q2 }, {q0 , q1 }, {q0 , q2 }, {q1 , q2 }, {q0 , q1 , q2 }}
I
Stan początkowy: {q0 , q2 }
I
Stany akceptujące: {{q0 }, {q0 , q1 }, {q0 , q2 }, {q0 , q1 , q2 }}
Przykład III
I
∅
{q0 }
{q1 }
{q2 }
Funkcja przejścia
{q0 , q1 }
{q0 , q2 }
{q1 , q2 }
{q0 , q1 , q2 }
a
∅
∅
{q1 , q2 }
{q0 , q2 }
{q1 , q2 }
{q0 , q2 }
{q0 , q1 , q2 }
{q0 , q1 , q2 }
b
∅
{q1 }
{q2 }
∅
{q1 , q2 }
{q1 }
{q2 }
{q1 , q2 }
Przykład IV
Przykład V
Wyrażenie regularne
Wyrażeniem regularnym R nad alfabetem Σ jest:
1. a dla pewnego symbolu z alfabetu Σ,
2. ,
3. ∅
4. R1 ∪ R2 , gdzie R1 i R2 są wyrażeniami regularnymi,
5. R1 ◦ R2 , gdzie R1 i R2 są wyrażeniami regularnymi,
6. R1∗ , gdzie R1 jest wyrażeniem regularnym,
Operacje regularne
I
Suma: A ∪ B = {x|x ∈ A lub x ∈ B}
I
Konkatenacja (złożenie): A ◦ B = {xy | x ∈ A oraz y ∈ B}
I
Domknięcie Kleenego: A∗ = {x1 , x2 ...xk | k ­ 0 oraz xi ∈ A}
Priorytet operatorów wyrażeń regularnych
1. Najwyższy priorytet ma operator gwiazdki.
2. Następne pod względem priorytetu jest złożenie.
3. Na koniec grupuje się sumę teoriomnogościową z ich
operatorami.
Prawa algebraiczne dla wyrażeń regularnych I
I
Przemienność sumy teoriomnogościowej dwóch języków:
L+M =M +L
I
Prawo łączności sumy teoriomnogościowej trzech języków:
(L + M) + N = L + (M + N)
I
Prawo łączności złożenia trzech języków:
(LM)N = L(MN)
Prawa algebraiczne dla wyrażeń regularnych II
I
Element neutralny dla sumy teoriomnogościowej:
∅+L=L+∅=L
I
Element neutralny dla złożenia:
L = L = L
I
Anihilator dla złożenia:
∅L = L∅ = ∅
Prawa algebraiczne dla wyrażeń regularnych III
I
Prawo lewostronnej rozdzielności złożenia względem sumy
teoriomnogościowej:
L(M + N) = LM + LN
I
Prawo prawostronnej rozdzielności złożenia względem sumy
teoriomnogościowej:
(M + N)L = ML + NL
I
Prawo idempotencji dla sumy teoriomnogościowej:
L+L=L
Prawa algebraiczne dla wyrażeń regularnych IV
I
Domknięcie wyrażenia, które jest domknięte:
(L∗ )∗ = L∗
I
Domknięcie zbioru pustego:
∅∗ = I
Złożenie łańcucha pustego:
∗ = Suma
Dochodzi jeden stan początkowy, z którego następują przejścia po
do stanów początkowych automatów składowych (oczywiście w
nowym automacie nie są już one stanami początkowymi).
Automat 1
eps
eps
Automat 2
Konkatenacja
Stany końcowe automatu pierwszego są łączone z stanem
początkowym drugiego automatu (stanem początkowym automatu
wynikowego jest stan początkowy pierwszego automatu, natomiast
końcowymi są stany końcowe automatu drugiego).
Automat 1
eps
Automat 2
Domknięcie Kleenego (gwiazdka)
Stanem początkowym jest dodatkowy stan (jest on równocześnie
stanem końcowym - dlaczego?) - jednocześnie istnieje przejście ze
stanów końcowych automatu po do starego stanu początkowego.
eps
Automat 1
eps
Równoważność notacji języków regularnych
Lemat o pompowaniu dla języków regularnych
Niech L będzie językiem regularnym. Istnieje wtedy stała n
(zależna od L) taka, że dowolny łańcuch w ∈ L o długości
|w | >= n można rozbić na trzy łańcuchy w = xyz takie, że:
1. y 6= .
2. |xy | <= n,
3. Dla dowolnego k >= 0 łańcuch xy k także należy do L.
Przykład zastosowania lematu o pompowaniu I
Dowód, że język złożony z samych jedynek o długości p, gdzie p
jest liczbą pierwszą nie jest regularny:
1. Jeśli byłby regularny istniałaby liczba n spełniająca warunki
lematu o pompowaniu.
2. Można wtedy wybrać liczbę p >= n + 2, wtedy w = 1p .
3. Na mocy lematu o pompowaniu w można rozbić na xyz, gdzie
y 6= i |xy | <= n.
4. Niech |y | = m wtedy |xz| = p − m.
5. Do rozważania łańcuch xy p−m z, musi należeć do rozważanego
języka (jeżeli ten język jest regularny).
Przykład zastosowania lematu o pompowaniu II
6. Można jednak wyprowadzić:
|xy p−m z| = |xz|+(p−m)|y | = p−m+(p−m)m = (m+1)(p−m)
7. Można postawić hipotezę, że |xy p−m z| nie jest liczbą pierwszą.
8. m + 1 > 1 i p − m > 1 (wybrano p >= n + 2 a m <= n),
czyli rozważana liczba nie ma czynników równych jeden.
9. Doprowadzono, więc do sprzeczności.
Własności zamkniętości języków regularnych
1. Suma teoriomnogościowa dwóch języków regularnych jest
językiem regularnym.
2. Iloczyn teoriomnogościowy dwóch języków regularnych jest
językiem regularnym.
3. Dopełnienie języka regularnego jest językiem regularnym.
4. Różnica dwóch języków regularnych jest językiem regularnym.
5. Odwrócenie języka regularnego jest językiem regularnym.
6. Domknięcie języka regularnego jest językiem regularnym.
7. Obraz homomoficzny (podstawienie łańcuchów za symbole)
języka regularnego jest językiem regularnym.
8. Przeciwobraz homomorficzny języka regularnego jest językiem
regularnym.
Literatura
Do napisania materiałów wykorzystano:
1. M. Sipser “Wprowadzenie do teorii obliczeń”, WNT 2009
2. J.E. Hopcroft, R. Motwani, J.D. Ullman “Wprowadzenie do
teorii, automatów, języków i obliczeń”, PWN 2005

Podobne dokumenty