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}