Matematyczne Podstawy Informatyki

Podobne dokumenty
Matematyczne Podstawy Informatyki

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Języki formalne i automaty Ćwiczenia 9

Matematyczne Podstawy Informatyki

Hierarchia Chomsky ego Maszyna Turinga

Maszyna Turinga języki

Języki, automaty i obliczenia

Obliczenia inspirowane Naturą

Języki formalne i automaty Ćwiczenia 7

Imię, nazwisko, nr indeksu

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Jaki język zrozumie automat?

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

Obliczenia inspirowane Naturą

Hierarchia Chomsky ego

Dopełnienie to można wyrazić w następujący sposób:

Maszyna Turinga, ang. Turing Machine (TM)

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 1

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

1 Automaty niedeterministyczne

Elementy Teorii Obliczeń

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Efektywność Procedur Obliczeniowych. wykład 5

Maszyna Turinga (Algorytmy Część III)

Turing i jego maszyny

Języki, automaty i obliczenia

Języki, automaty i obliczenia

Języki formalne i automaty Ćwiczenia 3

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

1. Maszyna Turinga, gramatyki formalne i ONP

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Gramatyki rekursywne

Języki formalne i automaty Ćwiczenia 4

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

(j, k) jeśli k j w przeciwnym przypadku.

Efektywna analiza składniowa GBK

Języki, automaty i obliczenia

R O Z D Z I A Ł V I I

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

3.4. Przekształcenia gramatyk bezkontekstowych

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Niestandardowe modele obliczeń

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1

Matematyczne Podstawy Informatyki

MODELOWANIE RZECZYWISTOŚCI

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Automaty Büchi ego i równoważne modele obliczeń

Wprowadzenie do maszyny Turinga

Logika Matematyczna (1)

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

GRAMATYKI BEZKONTEKSTOWE

Złożoność obliczeniowa. wykład 1

Elementy modelowania matematycznego

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Wyrażenia regularne.

Języki formalne i automaty Ćwiczenia 2

Teoretyczne podstawy informatyki

Języki formalne i automaty Ćwiczenia 6

10110 =

Struktura danych. Sposób uporządkowania informacji w komputerze.

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Topologia zbioru Cantora a obwody logiczne

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

Logika Matematyczna (1)

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

MASZYNA TURINGA UPRASZCZANIE DANYCH

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S

Metoda Tablic Semantycznych

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Odwrotna Notacja Polska

PROBLEMY NIEROZSTRZYGALNE

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń

Symbol, alfabet, łańcuch

Diagram Przepływu Danych - podstawowe bloki składowe i reguły konstrukcji

LOGIKA Klasyczny Rachunek Zdań

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Obliczenia inspirowane Naturą

Teoretyczne podstawy informatyki

Analiza semantyczna. Gramatyka atrybutywna

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Definicja 2. Twierdzenie 1. Definicja 3

Transkrypt:

Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014

Automat ze stosem Automat ze stosem to szóstka uporządkowana (Q,Σ, Γ, δ, q 0, F ), gdzie: 1. Q jest skończonym zbiorem stanów; 2. Σ jest alfabetem wejściowym; 3. Γ jest alfabetem stosu; 4. δ : Q Σ ɛ Γ ɛ P(Q Γ ɛ ); 5. q 0 Q jest stanem początkowym; 6. F Q jest zbiorem stanów akceptujących.

Automat ze stosem

Przykład Automat rozpoznający język 0 n 1 n Q = {q 1, q 2, q 3, q 4 }, Σ = {0, 1}, Γ = {0, $}, F = {q 1, q 4 }, Funkcja przejścia (puste miejsca oznaczają : Wejście 0 1 ɛ Stos 0 $ ɛ 0 $ ɛ 0 $ ɛ q 1 {(q 2, $)} q 2 {(q 2, 0)} {(q 3, ɛ)} q 3 {(q 3, ɛ)} {(q 4, ɛ)} q 4

Przykład

Opis chwilowy I Opis chwilowy to trójka (q, w, γ), gdzie: q jest stanem, w jest pozostałą częścią wejścia, γ jest zawartością stosu. Jeżeli dla AZS = (Q, Σ, Γ, δ, q 0, Z 0, F ) δ(q, a, X ) zawiera (p, α). Wtedy dla wszystkich łańcuchów w Σ i β Γ : (q, aw, X β) (p, w, αβ)

Opis chwilowy II 1. Jeżeli ciąg opisów chwilowych jest poprawny dla automatu ze stosem P, to obliczenie utworzone poprzez dodanie tego samego łańcucha wejściowego na koniec wejścia w każdym opisie chwilowym jest również poprawne. 2. Jeśli dane obliczenie jest poprawne dla automatu ze stosem P, to obliczenie utworzeone przez dodanie tych samych symboli stosowych pod stosem w każdym opisie jest również poprawne. 3. Jeśli dane obliczenie jest poprawne dla automatu ze stosem P i jaksa końcowka wejścia nie została pobrana, to można usunąć tę końcówkę z wejścia w każdym opise chwilowym, a wynikowe obliczenie jest nadal poprawne.

Opis chwilowy III Twierdzenie 1 Jeżeli P = (Q, Σ, Γ, δ, q 0, Z 0, F ) jest automatem ze stosem oraz (q, x, α) (p, y, β), to dla dowolnych łańcuchów w Σ i β Γ : (q, x, w, αγ) (p, yw, βγ) Twierdzenie 2 Jeżeli P = (Q, Σ, Γ, δ, q 0, Z 0, F ) jest automatem ze stosem oraz (q, xw, α) (p, yw, β) to jest także prawdą, że (q, x, α) (p, y, β).

Automat ze stosem akceptujący poprzez pusty stos Można podać równoważną definicję automatu ze stosem, definiując go jako automat, dla którego słowo wejściowe opróżni jego stos. Automat tego rodzaju jest nazywany automatem akceptującym przez pusty stos. Automat podany w poprzedniej definicji jest nazywany akceptującym przez stan końcowy. Dla danego automatu ze stosem języki akceptowane przez niego przez pusty stos i przez stan końcowy z reguły są różne. Można jednak zawsze podać przekształcenie automatu ze stosem akceptującego poprzez stan końcowy na automat akceptujący poprzez pusty stos (i odwrotnie), który akceptuje ten sam język.

Od pustego stosu do stanu końcowego I Automat ze stosem akceptujący przez pusty stos: P N = (Q, Σ, Γ, δ N, q 0, Z 0 ) można przekształcić na automat ze stosem akceptujący przez stan końcowy rozpoznający ten sam język: P F = (Q {p 0, p f }, Σ, Γ X 0, δ N, q 0, X 0, {p f }), gdzie δ F zdefiniowana jest następująco: 1. δ F (p 0, ɛ, X 0 ) = {q 0, Z 0 X 0 }, 2. Dla wszystkich stanów q Q wejść a Σ {ɛ} i symboli stosowych Y Γ, δ F (q, a, Y ) zawiera wszystkie pary z δ N (q, a, Y ). 3. Dodatkowo dla dowolnego q Q, δ F (q, ɛ, X 0 ) zawiera (p f, ɛ).

Od pustego stosu do stanu końcowego II

Od stanu końcowego do pustego stosu I Automat ze stosem akceptujący przez stan końcowy: P F = (Q, Σ, Γ, δ F, q 0, Z 0, F ) można przekształcić na automat ze stosem akceptujący przez pusty stos rozpoznający ten sam język: P N = (Q {p 0, p}, Σ, Γ {X 0 }, δ N, p 0, X 0 ), gdzie δ N jest zdefiniowana jako: 1. δ N (p 0, ɛ, X 0 ) = {(q 0, Z 0 X 0 }, 2. Dla wszystkich stanów q Q, symboli wejściowych q Σ {ɛ} oraz Y Γ, δ N (q, a, Y ) zawiera każdą parę należącą do δ F (q, a, Y ) (P N symuluje P F ). 3. Dla wszystkich stanów akceptujących q F oraz symboli stosowych Y Γ {X 0 }, delta N (q, ɛ, Y ) zawiera (p, ɛ). Według tego, za każdym razem, gdy P F zaakceptuje wejście, P N może zacząć opróżniać stos bez pobierania dalszej części wejścia.

Od stanu końcowego do pustego stosu II 4. Dla wszystkich symboli stosowych Y Γ {X 0 }, δ N (p, ɛ, Y ) = {(p, ɛ)}. Będąc w stanie p, P N po prostu wyrzuca każdy symbol ze swego stosu, dopóki stos ten nie będzie pusty.

Od stanu końcowego do pustego stosu III

Przekształcenie GBK na AZS I 1. Na stosie umieszczono znacznik $ oraz symbol początkowy gramatyki. 2. Powtarzane są następujące kroki: 2.1 Jeżeli na szczycie stosu jest zmienna oznaczona jako A, to niedeterministycznie wybiera się jedną z produkcji dla tej zmiennej i zastępuje się ją prawą stroną tej produkcji. 2.2 Jeżeli na stosie jest symbol końcowy oznaczony jako a, to czytany jest kolejny symbol z wejścia i porównywany z a. Jeżeli porównanie wypadło pozytywnie można kontynuować procedurę, w przeciwnym razie należy odrzucić tą ścieżkę obliczeń. 2.3 Jeżeli na szczycie stosu jest symbol $, to następuje wejście w stan akceptujący. W sytuacji, gdy nie ma już symboli wejściowych, to takie słowo zostaje zaakceptowane

Przekształcenie AZS na GBK I Twierdzenie 3 Niech P = (Q, Σ, Γ, δ, q 0, F ) będzie automatem ze stosem, wtdy istniej gramatyka bezkontekstowa G, dla której L(G) = N(P).

Przekształcenie AZS na GBK II Algorytm konstrukcji G = (V, Σ, R, S). Zbiór zmienych V składa się z: 1. specjalnego symbolu S, który jest symbolem początkowym, 2. wszystkich symboli postaci [pxq], gdzie p, q Q, a X Γ. Symbol [pxq] reprezentuje akcję ostatecznego zdjęcia symbolu X ze stosu i zmianę stanu z początkowego p na końcowe q. Produkcje gramatyki G są następujące: 1. Dla wszystkich stanów p gramatyka G ma produkcję S [q 0 Z 0 p]. W ten sposób generuje się wszystkich łańcuchy w, które powodują zdjęcie przez automat ze stosem symbolu Z 0 przy jednoczesnym przejściu ze stanu q 0 do stanu p. Inaczej (q0, w, Z 0 ) (p, ɛ, ɛ) - symbol początkowy S wygeneruje wszystkie łańcuchy w, które powodują opróżnienie przez P swego stosu, po wystartowaniu ze stanu początkowego.

Przekształcenie AZS na GBK III 2. Niech δ(q, a, X ) zawiera parę (r, Y 1 Y 2...Y k ),gdzie: a Σ lub a = ɛ. k może być dowolną liczbą naturalną, wyłącznie z 0, w którym przypadku para ma postać (r, ɛ). Wtedy dla wszystkich list stanów r 1, r 2,..., r k, gramatyka G ma produkcję: [qxr k ] a[ry 1 r 1 ][r 1 Y 2 r 2 ]...[r k 1 Y k r k ]

Maszyna Turinga - koncepcja I Nieograniczona pamięć jest modelowana jako taśma o nieskończonej długości. Maszyna ma głowicę, która może się przesuwać po taśmie, czytać i zapisywać symbole. Początkowo wypełniona jest słowem wejściowym, reszta taśmy jest wypełniona symbolem pustym. W sytuacji, gdy maszyna ma zapisać jakąś informację może ją zapisać na taśmie. Do odczytu informacji maszyna może przesunąć nad nią głowicę.

Maszyna Turinga - koncepcja II Maszyna kontynuuje obliczenia aż do osiągnięcia wyniku. Wynikiem jest informacja akceptuj lub odrzuć, jeżeli maszyna jest odpowiednio w stanie akceptującym lub odrzucającym. Maszyna może kontynuować obliczenia w nieskończoność, jeżeli w żadnym momencie nie wejdzie w stan akceptujący lub odrzucający.

Różnice pomiędzy maszyną Turinga a automatem skończonym Maszyna Turinga może czytać i zapisywać na taśmie. Głowica czytająco-zapisująca może przesuwać taśmę w dwóch kierunkach. Taśma jest nieskończona. Wejście w stan akceptujący lub odrzucający powoduje natychmiastowe zatrzymanie maszyny.

Działanie maszyny Turinga I 1. Maszyna przechodzi wzdłuż taśmy między odpowiadającymi sobie pozycjami po różnych stronach znaku #, by sprawdzić, czy na tych samych pozycjach stoją jednakowe znaki. 2. Jeżeli znaki są różne lub brakuje symbolu # to odrzuca słowo wejściowe. 3. W przeciwnym razie wykreśla znaki, by zapamiętać część, która została już sprawdzona. 4. Po wykreśleniu wszystkich znaków na lewo od znaku # maszyna sprawdza czy na prawej stronie zostały jakieś znaki - jeżeli zostały odrzuca słowo, w przeciwnym razie akceptuje.

Działanie maszyny Turinga II 1. [0] 1 1 1 0 1 # 0 1 1 1 0 1 _ 2. x [1] 1 1 0 1 # 0 1 1 1 0 1 _ 3. x 1 1 1 0 1 # [x] 1 1 1 0 1 _ 4. [x] 1 1 1 0 1 # x 1 1 1 0 1 _ 5. x x x x x x # x x x x x x [ _ ] 6. Akceptuj

Maszyna Turinga - formalna definicja Maszyna Turinga to siódemka uporządkowana (Q, Σ, Γ, δ, q 0, q A, q O ), gdzie Q, Σ, Γ są zbiorami skończonymi i Q jest zbiorem stanów, Σ jest alfabetem wejściowym, do którego nie należy znak pusty, Γ jest alfabetem taśmy, gdzie Γ oraz Σ Γ, δ : Q Σ Γ Q Γ {L, R} jest funkcją przejścia, q 0 Q jest stanem początkowym, q A Q jest stanem akceptującym, q O Q jest stanem odrzucającym, gdzie q O q A.

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