Wyrazenia regularne - Konwersje

Transkrypt

Wyrazenia regularne - Konwersje
Wyrażenia regularne
Konwersje
Adam Kobus
Updated: 4 maja 2016
wyrreg2
Metoda eliminacji stanów
(AS → Regex)
Metoda eliminacji stanów
Automaty można zamieniać na wyrażenia regularne poprzez
eliminację stanów pośrednich. Eliminacji takiej dokonuje się aż do
momentu otrzymania automatu dwustanowego (jeśli stan
początkowy nie jest akceptujący) lub jednostanowego.
Dokonujemy tego zastępując etykiety przejść wyrażeniami
regularnymi. Eliminując stany łączymy wyrażenia regularne na
etykietach, budując coraz bardziej złożone wyrażenia. Język takiego
automatu jest sumą teoriomnogościową wyrażeń opisujących
wszystkie ścieżki ze stanu początkowego do akceptującego.
Schemat konstrukcji
# ∀q dokonujemy redukcji w celu otrzymania równoważnego
automatu z krawędziami opisanymi za pomocą wyrażeń
regularnych
# q 6= q0 ⇒ pozostanie automat dwustanowy. Przykład
generyczny: (R + SU ∗ T )∗ SU ∗
# q = q0 ⇒ pozostanie automat jednostanowy z pętlą ze stanu
początkowego. Jeżeli etykietą będzie R, to językiem będzie R ∗
# wynikowe wyrażenie regularne będzie sumą teoriomnogościową
wszystkich wyrażeń wyprowadzonych ze zredukowanego
automatu dla każdego stanu akceptującego za pomocą reguł z
poprzednich dwóch punktów
Przykład
Pierwszy krok to zastąpienie symboli na etykietach odpowiednimi
wyrażeniami regularnymi.
Przykład
Następnie dokonujemy eliminacji stanu B (nie jest ani początkowy,
ani akceptujący). Zauważyć można, że ze stanu A do stanu C
można przejść poprzez wyrażenie regularne 1(0 + 1).
W tym momencie trzeba wprowadzić rozgałęzienie, aby uzyskać
dwa automaty zredukowane, każdy z jednym ze stanów
akceptujących.
Przykład (gałąź D)
Sięgając po generyczny dwustanowy automat ((R + SU ∗ T )∗ SU ∗ )):
R
S
T
U
0+1
1(0 + 1)(0 + 1)
∅
∅
(R + S∅∗ ∅)∗ S∅∗ = R ∗ S = (0 + 1)∗ 1(0 + 1)(0 + 1)
Przykład (gałąź C )
R
S
T
U
0+1
1(0 + 1)
∅
∅
(R + S∅∗ ∅)∗ S∅∗ = R ∗ S = (0 + 1)∗ 1(0 + 1)
Co w sumie daje:
(0+1)∗ 1(0+1)(0+1)+(0+1)∗ 1(0+1) = (0+1)∗ 1(0+1)(ε+0+1)
Zadania
Zadanie 1
Zadanie 2
Zadanie 3
Zadanie 4
→ ?q0
q1
q2
q3
a
{q1 , q2 }
∅
{q0 }
{q0 }
b
{q3 }
{q0 }
∅
{q0 }

Podobne dokumenty