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
Podstawowe pojęcia teorii automatów I
I
Alfabetem jest nazywany skończony, niepusty zbiór symboli.
Najczęściej alfabet jest oznaczany symbolem Σ.
I
Łańcuch (słowo) to skończony ciąg symboli z określonego
alfabetu (zazwyczaj zapisuje się je bez odstępów i
przecinków).
I
Łańcuch pusty to łańcuch z zerową liczbą wystąpień symboli.
Najczęściej łańcuch pusty oznaczany jest symbolem .
I
Długość łańcucha to liczba znaków w określonym słowie.
Długość łańcucha s jest oznaczana symbolem |s|. Długość
słowa pustego jest równa 0.
Podstawowe pojęcia teorii automatów II
I
Słowo x jest podsłowem słowa y, jeżeli istnieje spójny
fragment x w słowie y (y zawiera, w którymś miejscu x).
I
Konkatenacją uv dwóch słów u = a1 ...am oraz v = b1 ...bn
jest nazywane słowo zdefiniowane jako a1 ...am b1 ...bn .
I
Jeżeli słowo x jest konkatenacją uv , to u jest nazywane
prefiksem(przedrostkiem) słowa x.
I
Jeżeli słowo x jest konkatenacją uv , to w jest nazywane
postfiksem(przyrostkiem) słowa x.
I
Zbiór wszystkich słów na alfabetem Σ jest oznaczany Σ∗ .
I
Zbiór wszystkich niepustych słów na alfabetem Σ jest
oznaczany Σ+ .
Podstawowe pojęcia teorii automatów III
1. Σx = {a, b}:
I
I
Σ+
x = a + b + aa + ab + ba + bb + aaa + aab + ...,
Σ∗x = + a + b + aa + ab + ba + bb + aaa + aab + ... = + Σ+ .
2. w = abc v = cde:
I
I
wv = abccde,
vw = cdeabc.
3. Słowo abcde:
I
I
Prefiksy: {a, ab, abc, abcd, abcde}.
Sufiksy: {e, de, cde, bcde, abcde}
Automat skończony
I
Automat skończony - jest to system modelowany formalnie.
I
Automat skończony zapamiętuje skończoną ilość informacji
(zawierają skończoną liczbę stanów).
Informacje są reprezentowane przez stany -
I
I
I
każdy stan posiada swoją nazwę,
reprezentuje co zostało wykonane (historię operacji).
I
Stany zmieniają się w zależności od wejścia (czytanych
znaków, pojawiających się zdarzeń).
I
Reguły opisujące jak stany zmieniają się w zależności od
wejścia są nazywane tranzycjami.
Zastosowania automatów skończonych
I
Projektowanie i weryfikacja układów elektronicznych i
protokołów komunikacyjnych (np. protokołów
kryptograficznych).
I
Przetwarzanie tekstu (np. wyszukiwanie i zastępowanie
określonych fraz).
I
Analiza leksykalna w kompilatorach - rozpoznawanie słów
kluczowych, identyfikatorów, komentarzy, łańcuchów znaków
itp.
I
Wyszukiwanie wzorców zdarzeń.
Deterministyczny automat skończony I
Deterministyczny automat skończony to uporządkowana piątka
DAS = (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 i zwraca stan,
4. q0 to stan początkowy (jeden ze stanów ze zbioru Q),
5. F to zbiór stanów końcowych (akceptujących).
Deterministyczny automat skończony II
I
Automat DAS akceptuje słowo w jeżeli po przeczytaniu
wszystkich symboli składających się na w znajdzie się w stanie
akceptującym (jednym ze stanów ze zbioru F).
I
Automat DAS odrzuca słowo w jeżeli po przeczytaniu
wszystkich symboli składających się na w nie znajdzie się w
stanie akceptującym.
I
Język J jest językiem regularnym jeżeli jest rozpoznawany
przez pewien deterministyczny automat skończony.
Deterministyczny automat skończony III
Sterowanie
automatu
a1 a2
a3
a4
...
an
Automat czyta symbol ai i sprawdza czy w danym stanie w którym
się znajduje (qi ) istnieje przejście do stanu qi+1 pod wpływem
symbolu (ai ), jeżeli tak to zmienia stan na qi+1 , taśma się
przesuwa i czytany jest następny symbol i proces się powtarza aż
osiągnie się koniec taśmy.
Deterministyczny automat skończony IV
I
Automat DAS akceptuje słowo w (a1 , a2 , ..., an ), jeżeli istnieje
ciąg stanów
s0 , s1 , .., sn
gdzie:
I
I
I
I
s0 = q0 ,
δ(si , ai+1 ) = si+1 dla i < n,
sn ∈ F .
Automat DAS rozpoznaje język J, jeżeli:
J = {w ∈ Σ∗ | DAS akceptuje w }
Deterministyczny automat skończony
a
b
b
q1
q2
a
I
Q = {q1, q2},
I
Σ = {a, b}
I
I
δ jest opisana
a
→ q1 q1
∗q2 q1
q0 = q1
I
F = {q2}.
tabelą:
b
q2
q2
Przykłady DAS I
Automat rozpoznający słowa kończące się jedynką:
0
1
1
A
0
B
Przykłady DAS II
Automat rozpoznający słowa zawierające przynajmniej jedną
jedynkę na końcu lub parzystą liczbę zer:
0
A
1
1
B
0
0,1
C
Niedeterministyczny automat skończony
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 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).
Niedeterminizm I
I
Z dowolnego stanu może być więcej niż jedno przejście pod
wpływem przeczytanego symbolu (można przejść do więcej niż
jednego stanu).
I
Niedeterminizm może być traktowany jako obliczenia
równoległe - wiele niezależnych od siebie procesów działa
jednocześnie. Słowo jest akceptowane, gdy przynajmniej jeden
z procesów rozpoznał słowo.
I
Niedeterminizm może być opisywany przez drzewo obliczeń.
Słowo jest akceptowane, gdy przynajmniej jedna z gałęzi
kończy się w stanie akceptującym.
Niedeterminizm II
I
Automat NAS akceptuje słowo w (a1 , a2 , ..., an ), jeżeli istnieje
ciąg stanów
s0 , s1 , .., sn
gdzie:
I
I
I
I
s0 = q0 ,
si+1 ∈ δ(si , ai+1 ) dla i < n,
sn ∈ F .
Automat NAS rozpoznaje język J, jeżeli:
J = {w ∈ Σ∗ | NAS akceptuje w }
Niedeterministyczny automat skończony
a
b
a, b
q1
q2
a
I
Q = {q1, q2},
I
Σ = {a, b}
I
I
δ jest opisana tabelą:
a
b
q1
{q1,q2} {q2}
→ ∗q2
{q1}
{q2}
q0 = q2
I
F = {q2}.
Niedeterministyczny automat skończony
q2
a
q1
a
q1
q2
a
q1
q2
q1
q2
q2
q1
b
Równoważność automatów skończonych I
1. Dwa automaty są sobie równoważne wtedy i tylko wtedy, gdy
rozpoznają ten sam język.
2. Dla każdego niedeterministycznego automatu skończonego
można podać równoważny mu deterministyczny automat
skończony rozpoznający ten sam język.
3. Dla każdego deterministycznego automatu skończonego
można podać równoważny mu niedeterministyczny automat
skończony rozpoznający ten sam język.
4. Język jest regularny wtedy i tylko wtedy, gdy jest
rozpoznawany przez pewien niedeterministyczny automat
skończony.
Równoważność automatów skończonych II
Algorytm konstrukcji deterministycznego automatu skończonego z
niedeterministycznego. NFA = (Q, Σ, δ, q0 , F ),
DFA = (Q 0 , Σ, δ 0 , q00 , F 0 )
1. Q 0 = P(Q), gdzie P(Q) jest zbiorem potęgowym zbioru Q,
zawiera wszystkie podzbiory zbioru Q,
2. Stan q00 = {q0 },
3. δ 0 (R, a) =
S
δ(r , a), gdzie R ∈ Q 0 a a ∈ Σ,
r ∈R
4. Zbiór F 0 = {R ∈ Q 0 |R zawiera stan akceptujący NFA}.
Przykład przekształcenia NAS do DAS I
→p
q∅
∗r ∅
a
{p, q}
{r }
∅
b
{p}
a,b
p
a
q
b
r
Przykład przekształcenia NAS do DAS II
∅
→ {p}
{q}
∗{r }
{p, q}
∗{p, r }
∗{q, r }
∗{p, q, r }
a
∅
{p, q}
∅
∅
{p, q}
{p, q}
∅
{p, q}
b
∅
{p}
{r }
∅
{p, r }
{p}
{r }
{p, r }
Przykład przekształcenia NAS do DAS III
a,b
b
O
a
a,b
a
{r}
b
{q,r}
a
{p,q,r}
a
{p}
a
{p,q}
b
a
b
b
{p,r}
{q}
b
Przykład przekształcenia NAS do DAS IV
b
{p}
a
a
{p,q}
b
a
b
{p,r}
Przykład przekształcenia NAS do DAS V
b
A
a
a
B
b
a
b
C
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
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
3. J.D. Ullman “Automata” - wykład Coursera.org