1. Podstawowe definicje
- Alfabet (Σ) — skończony zbiór symboli
- Słowo — skończony ciąg symboli z alfabetu
- Język — zbiór słów nad danym alfabetem (∅ — język pusty)
- ϵ — słowo puste
2. Deterministyczny Automat Skończony (DFA)
— uporządkowana piątka (Q,Σ,δ,q0,F) gdzie
- Q — skończony zbiór stanów
- Σ — skończony alfabet wejściowy
- δ — funkcja przejścia postaci Q×Σ→Q
- q0 — stan początkowy
- F⊆Q — zbiór stanów akceptujących
2.1. Rozszerzenie funkcji przejścia
Funkcję δ możemy rozszerzyć w taki sposób, żeby akceptowała całe słowa (możemy tak zrobić jeśli δ^(q,ϵ)=q): δ^(q,wa)=δ(δ^(q,w),a)
Automat akceptuje słowo w jeśli delta^(q0,w)∈F.
2.2. Przykład DFA
Mamy DFA M=({q0,q1,q2,q3},{0,1},δ,q0,{q0})
q0 |
q2 |
q1 |
q1 |
q3 |
q0 |
q2 |
q0 |
q3 |
q3 |
q1 |
q2 |
Maszyna ta pozwala tylko na takie ciągi, w których mamy parzystą liczbę 0 oraz parzystą liczbę 1.
3. Niedeterministyczny Automat Skończony (NFA)
Modyfikacja DFA:
istnieje *
przejść ze stanu przy tym samym symbolu wejściowym. δ:Q×Σ→2Q
Automat niedeterministyczny akceptuje słowo w jeżeli istnieje odpowiadający mu ciąg przejść ze stanu początkowego do stanu akceptującego.
3.1. Przykład NFA
Mamy NFA M=({q0,q1,q2,q3,q4},{0,1},δ,q0,{q2,q4})
q0 |
{q0,q3} |
{q0,q1} |
q1 |
∅ |
{q2} |
q2 |
{q2} |
{q2} |
q3 |
{q4} |
∅ |
q4 |
{q4} |
∅ |
q5 |
{q4} |
{q4} |
Maszyna ta akceptuje tylko ciągi z infiksem 00 lub z infiksem 11.
4. NFAϵ
Wprowadzamy dodatkową modyfikację: dopuszczamy przejścia między stanami bez symboli wejściowych. δ:Q×(Σ∪{ϵ})→2Q
5. Wyrażenia regularne (RE)
Niech L,L1,L2 — języki nad alfabetem Σ.
Wówczas L1L2L0Li+1L∗={xy:x∈L1∧y∈L2}={ϵ}=LLidla i>0=i=0⋃∞Lidomknięcie Kleene’ego(L+=i=1⋃∞Li)
5.1. DEF
Wyrażenia regularne:
- ∅ — język pusty
- ϵ — język {ϵ}
- a — język {a} dla a∈Σ
5.2. Działania
Mamy wyrażenia regularne r oraz s reprezentujące odpowiednio języki R oraz S, wówczas:
- (r+s) reprezentuje język R∪S
- (rs) reprezentuje język RS
- r∗ reprezentuje język R∗
5.3. Przykłady
- ∅∗={ϵ}∪∅∪⋯={ϵ}
- (0+1)∗ – wszystkie ciągi nad alfabetem {0,1} (w tym ϵ)
- 00=00ϵϵ
- 11=ϵϵ11