Automaty - Automaty skonczone

Transkrypt

Automaty - Automaty skonczone
Automaty
Automaty skończone
Adam Kobus
Updated: 2 marca 2016
automaty1
Podstawy
Podstawowe pojęcia dotyczące automatów
# Alfabety
# Słowa (łańcuchy)
# Języki
# Problemy
Alfabet
Alfabet
Jest to niepusty, skończony zbiór symboli.
Oznaczamy go symbolem Σ.
Przykładowe alfabety:
# Σ = {0, 1}
# Σ = {a, b, . . . , z}
# Σ = {A, B, . . . , Z }
Słowo
Słowo
Łańcuch, skończony ciąg symboli wybranych z symboli alfabetu.
Przykładowe słowa:
# 1110101, gdy Σ = {0, 1}
# aabbcc, gdy Σ = {a, b, . . . , z}
# XYZABC , gdy Σ = {A, B, . . . , Z }
# ε, łańcuch pusty, bez symboli, może wystąpić w przypadku
dowolnego alfabetu
Długość słowa
|ω| - długość łańcucha, czyli liczba symboli
|1110101| = 7
|ε| = 0
Zbiór łańcuchów
Σn - zbiór łańcuchów o określonej długości nad danym alfabetem
Σ∗ - zbiór wszystkich łańcuchów nad danym alfabetem
Σ+ - zbiór wszystkich łańcuchów nad danym alfabetem, z
wyłączeniem łańcucha pustego
Σ = {0, 1}; Σ2 = 00, 01, 10, 11; Σ0 = ε
Konkatenacja łańcuchów
x, y - łańcuchy,
xy - złożenie łańcuchów, najpierw x potem y
yx - złożenie łańcuchów, najpierw y potem x
Język
Język
L - jest to podzbiór łańcuchów ze zbioru Σ∗ , L ⊆ Σ∗ . Język nie
musi zawierać i zazwyczaj nie zawiera wszystkich możliwych
łańcuchów nad tym alfabetem.
# język, który zawiera łańcuchy z jednakową liczbą zer i jedynek:
ε, 01, 10, 0011, 0101, 1010, . . .
# język zawierający wszystkie łańcuchy: Σ∗
# ∅ - język na dowolnym alfabecie (czym innym jest ε)
Opis języka
{ω| warunek dla ω} - konstruktor zbiorów, zbiór takich ω, które
spełniają podany warunek
{ω|ω składa się z jednakowej liczby 0 i 1}
{ω|ω jest palindromem}
Problem
Problem
Jest to kwestia do rozstrzygnięcia, czy dany łańcuch należy do
języka.
Dany jest alfabet Σ i język L. Czy, mając dany łańcuch ω ∈ Σ∗ ,
ω ∈ L.
Zadania
Zadania
1. Na alfabecie Σ = {a, b, c} mamy zdefiniowany język
palindromów. Jakie łańcuchy wchodzą w skład takiego języka?
2. Na alfabecie Σ = {a, b, c} mamy zdefiniowany język o
parzystej liczbie każdego z symboli. Jakie łańcuchy wchodzą w
skład takiego języka?
3. Do języka należą słowa abba, bccaaa, caabbaac. Opisz alfabet
i język, do którego mogą należeć wymienione słowa. Zdefiniuj
także inny alfabet i język o takim wymogu.
Automat skończony
Automat skończony - AS
Jest to model matematyczny systemu o dyskretnych wejściach i
wyjściach. Taki system może znajdować się w jednym ze
skończonej liczby stanów. Każdy stan jest ściśle uzależniony od
poprzedniego. Skończona liczba stanów oznacza skończoną pamięć.
Diagram przejść
Automaty skończone przedstawiamy za pomocą diagramu przejść.
Początek diagramu oznaczony jest za pomocą strzałki (ew.
dodatkowego tekstu “start”).
Tabela stanów
Deterministyczny automat
skończony
Deterministyczny automat skończony - DAS
Automat skończony, w którym dla każdego wejścia (symbolu z
języka) istnieje jedno i tylko jedno przejście z aktualnego stanu.
Formalna definicja DAS
Jest to piątka A = (Q, Σ, δ, q0 , F ), gdzie
Q zbiór stanów
Σ alfabet
δ funkcja przejścia dla symbolu ze stanu w stan
q0 stan początkowy
F zbiór stanów końcowych, akceptujących
Język DAS
Zbiór wszystkich łańcuchów akceptowanych przez DAS.
Jeśli po wczytaniu całego łańcucha automat będzie w stanie
akceptującym (zbiór F ), to słowo jest akceptowane. Jeśli nie odrzucane.
Zadania
1. Stwórz DAS dla języka: {ω|ω jest postaci x00y, gdzie x, y są
dowolnymi łańcuchami 0 i 1}.
2. Stwórz DAS dla języka: {ω|ω jest postaci x101, gdzie x jest
dowolnym łańcuchem 0 i 1}.
3. Nad alfabetem Σ = {0, 1} stwórz DAS dla języka: {ω|ω, w
którym każdy blok złożony z pięciu kolejnych symboli zawiera
co najmniej dwa zera}