Algorytmy zwiazane z gramatykami bezkontekstowymi

Podobne dokumenty
Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Teoretyczne Podstawy Informatyki

Interpolacja funkcjami sklejanymi

Programowanie i struktury danych

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Funkcje wielu zmiennych

x y x y x y x + y x y

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Programowanie funkcyjne. Wykªad 13

Rekurencyjne struktury danych

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Języki formalne i automaty Ćwiczenia 2

Listy i operacje pytania

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Programowanie wspóªbie»ne

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Podstawy matematyki dla informatyków

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f.

Przekroje Dedekinda 1

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Gramatyki atrybutywne

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

AM II /2019 (gr. 2 i 3) zadania przygotowawcze do I kolokwium

3.4. Przekształcenia gramatyk bezkontekstowych

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Analiza semantyczna. Gramatyka atrybutywna

Wyra»enia logicznie równowa»ne

Analizator syntaktyczny

Matematyka dyskretna dla informatyków

Macierze i Wyznaczniki

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Statystyka matematyczna - ZSTA LMO

Model obiektu w JavaScript

Algorytmy i Struktury Danych

Interpolacja Lagrange'a, bazy wielomianów

Systemy decyzyjne Wykªad 5: Drzewa decyzyjne

Egzaminy i inne zadania. Semestr II.

Zbiory i odwzorowania

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Wykªad 12. Transformata Laplace'a i metoda operatorowa

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Lab. 02: Algorytm Schrage

Programowanie wspóªbie»ne

Metody dowodzenia twierdze«

Macierze i Wyznaczniki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Podstawy matematyki dla informatyków. Funkcje. Funkcje caªkowite i cz ±ciowe. Deniowanie funkcji. Wykªad pa¹dziernika 2012

Wektory w przestrzeni

Informacje pomocnicze

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Metody Kompilacji Wykład 3

Rozwi zania klasycznych problemów w Rendezvous

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

1 Bª dy i arytmetyka zmiennopozycyjna

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Aproksymacja funkcji metod najmniejszych kwadratów

Programowanie wspóªbie»ne

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Kolokwium Zadanie 1. Dla jakich warto±ci parametrów a i b funkcja sklejona

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

Uproszczony schemat działania kompilatora

Zadania. 4 grudnia k=1

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Materiaªy do Repetytorium z matematyki

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Analiza algorytmów zadania podstawowe

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Uproszczony schemat działania kompilatora

12: Znajdowanie najkrótszych ±cie»ek w grafach

Ÿ1 Oznaczenia, poj cia wst pne

Logika pierwszego rz du. Sposób u»ycia. Tautologie, sposoby u»ywania logiki pierwszego rz du, zwi zki z j zykiem naturalnym

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Teoria grafów i sieci 1 / 58

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

Matematyka dyskretna dla informatyków

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

Geometria Algebraiczna

Automorzmy modeli i twierdzenie EhrenfeuchtaMostowskiego

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Funkcje wielu zmiennych

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Rozdziaª 13. Przykªadowe projekty zaliczeniowe

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Wykªad 4. Funkcje wielu zmiennych.

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Podstawy logiki i teorii zbiorów wiczenia

Lekcja 12 - POMOCNICY

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Transkrypt:

Algorytmy zwiazane z gramatykami bezkontekstowymi

Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk ma opis staªego rozmiaru, a rozmiarem wej±cia jest n = x. Niech G b dzie gramatyk bezkontekstow w postaci normalnej Chomsky'ego oraz x = a 1 a 2 a n dane sªowo wej±ciowe. Niech x(i..j] oznacza podsªowo a i+1... a j. Zakªadamy tutaj,»e i < j. W szczególno±ci x(i..i + 1] jest pojedy«cz liter. Denicja Trójka (A, i, j) jest poprawna, gdy istnieje wyprowadzenie A x(i..j]. Niech Valid(G, x) oznacza zbiór poprawnych trójek.

Nast puj cy fakt wynika z dekompozycji drzewa wyprowadzenia podsªowa a i+1 a i+2... a j na dwa poddrzewa odpowiadaj ce wyprowadzeniom krótszych podsªów. Fakt Dla j i > 1 mamy (A, i, j) Valid(G, x) k, B, C (B, i, k) Valid(G, x) & (C, k, j) Valid(G, x) & A BC x L(G) (S, 0, n) Valid(G, x)

Rozpoznawanie j zyka bezkontekstowego Pierwszy algorytm spawdzania przynale»no±ci x oblicza V = Val(G, x) inkrementalnie nast puj co: Algorytm Sprawd¹ czy x L(G). V := {(A, i, i + 1) : A a i+1 }; while V si nie stabilizuje do dodaj do V wszystkie pary (A, i, j) takie,»e ( i < k < j ) A BC & (B, i, k) V & (C, k, j) V ; if (S, 0, n) V then return true else return false.

Algorytm Youngera Policzmy tablic T, gdzie T [i, j] jest zbiorem A takich,»e (A, i, j) Val(G, x). Dla zbiorów nieterminali deniujemy operacj : X Y = { A : A BC, dla pewnych B X, C Y. Algorytm Youngera (sprawdza czy x L(G)) for i := 0 to n 1 do T [i, i + 1] :=:={(A : A a i+1 }; for j := 0 to n do for i := j 1 downto 0 do T [i, j] := i<k<j T [i, k] T [k, j]; if (S, 0, n) V then return true else return false.

Algorytm Youngera - przykªad Rozwa»my gramatyk G : S SS AA b; A AS AA a i sªowo x = a a b b. Wtedy tablica T wygl da nast puj co: {A} {S, A} {S, A} {A, S} {A} {A} {A} {S} {S} {S} W tym przypadku n = 4 oraz S T [0, 4], tak wi c aabb L(G).

Algorytm dla gramatyk jednoznacznych Zaªó»my,»e gramatyka jest jednoznaczna i nie ma zb dnych nieterminali. Dla ka»dego nieterminal A oraz numeru kolumny j zdeniujmy: LISTA(A, j) = { i : A T [i, j] }. Obserwacja. Je±li znamy j-t kolumn tablicy T to LISTA(A, j) dla wszystkich A (staªa liczba) mo»emy policzy w czasie liniowym. W algorytmie Youngera najbardziej kosztown jest operacja T [i, j] := T [i, k] T [k, j]; i<k<j Teraz zamieniamy t operacj na drobne, tak aby koszt ka»dej jednostkowej operacji wstawiania do T [i, j] byª proporcjonalny do tworzenia jednego w zªa w drzewie generacji dla pewnego podsªowa. Poniewa» z powodu jednoznaczno±ci takich w zªów jest tylko O(n 2 ) zmodykowany algorytm dziaªa w czasie O(n 2 ) podczas gdy algorytm Youngera dziaªa ogólnie w czasie O(n 3 ).

Algorytm Youngera dla gramatyk jednoznacznych for i := 0 to n 1 do T [i, i + 1] :=:={(A : A a i+1}; Oblicz Lista(A, 1) dla ka»dego nieterminala A; for j := 0 to n do for k := j 1 downto 0 do for each A, B, C takich,»e A BC, C T [k, j] do for each i LISTA(B, k) do dodaj A do T [i, j]; Oblicz LISTA(A, j) dla ka»dego nieterminala A; {kolumna j-ta tablicy T jest ju» policzona} if (S, 0, n) V then return true else return false.

Parsing Lemat Je±li znamy tablic T to mo»emy skonstruowa drzewo wyprowadzenia sªowa (o ile istnieje) w czasie O(n 2 ). Cofamy si w tablicy T, znajdujemy takie k,»e S T [0, n] gdy» S XY oraz X T [i, k], Y T [k, j]. W ten sposób znajdujemy synów dla (A, 0, n) w drzewie. Podobnie znajdujemy synów dla w zªa (A, i, j) rozbijaj c (A, i, j) na (B, i, k) i (C, k, j), gdzie A BC. Dla ka»dego w ªa przegl damy O(n) elementów tablicy»eby znale¹ odpowiednie k, w sumie wykonujemy prac O(n 2 ) gdy» w zªów w drzewie wyprowadzenia jest O(n).

Gramatyki atrybutywne Gramatyka S-atrybutywne (litera S od syntezowane atrybuty) w czasie generacji drzewa wyprowadzenia liczy w tym drzewie pewne warto±ci (atrybuty) skojarzone z wierzchoªkami. Obliczenia s wykonywane w kolejno±ci bottom-up (warto±ci ojca s liczone za pomoc warto±ci synów). Przez $$ oznaczamy atrybut aktualnego w zªa, a przez $ i atrybut skojarzony z i-tym synem (i-tym elementem po prawej stronie produkcji).

Gramatyka musi by jednoznaczna, tak aby byªo tylko jedno drzewo wyprowadzenia i jednoznacznie zdeniowane warto±ci atrybutów. Przykªad gramatyki jednoznaczej (wyra»enia arytmetyczne). Zaªó»my dla uproszczenia,»e mamy tylko dwie operacje +,, oraz staªe a, b. Wtedy gramatyk jednoznaczn dla wyra»e«jest: E E + T T ; T T F F F a b (E).

Gramatyka atrybutywna dla wyra»e«w li±ciach drzewa mamy staªe a, b, które maj pewne okre±lone warto±ci (z wej±cia). Mo»emy skojarzy z nieterminalami atrybut okre±laj cy warto± wyra»enia. E E + T $$ := $1 + $ 3 E T $$ := $1 T T F $$ := $1 $ 3 T F $$ := $1 F a $$ := $ 1 F b $$ := $ 1 F (E) $$ := $ 2