Kompresja danych. Tomasz Jurdziński. Wykład 6: kodowanie gramatykowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Kompresja danych. Tomasz Jurdziński. Wykład 6: kodowanie gramatykowe"

Transkrypt

1 Tomasz Wykład 6: kodowanie gramatykowe

2 Sequitur: wprowadzenie Sequitur 1 Autorzy: Nevill-Manning, Witten: 1996.

3 Sequitur: wprowadzenie Sequitur 1 Autorzy: Nevill-Manning, Witten: Reprezentacja danych: gramatyka bezkontekstowa generujaca jeden napis (bez cykli ).

4 Sequitur: wprowadzenie Sequitur 1 Autorzy: Nevill-Manning, Witten: Reprezentacja danych: gramatyka bezkontekstowa generujaca jeden napis (bez cykli ). 3 Skad gramatyka: tworzona dynamicznie, na podstawie tekstu (wnioskowana).

5 Sequitur: wprowadzenie Sequitur 1 Autorzy: Nevill-Manning, Witten: Reprezentacja danych: gramatyka bezkontekstowa generujaca jeden napis (bez cykli ). 3 Skad gramatyka: tworzona dynamicznie, na podstawie tekstu (wnioskowana). 4 Kompresja: gramatyka wykorzystuje powtarzalność na wielu poziomach (słów, zdań, etc.) gramatykę trzeba sprytnie zakodować.

6 Sequitur: wprowadzenie Sequitur 1 Autorzy: Nevill-Manning, Witten: Reprezentacja danych: gramatyka bezkontekstowa generujaca jeden napis (bez cykli ). 3 Skad gramatyka: tworzona dynamicznie, na podstawie tekstu (wnioskowana). 4 Kompresja: gramatyka wykorzystuje powtarzalność na wielu poziomach (słów, zdań, etc.) gramatykę trzeba sprytnie zakodować. 5 Dodatkowe korzyści: odkrywamy strukturę dokumentu.

7 Gramatyki bezkontekstowe Poczatki i motywacje Pojęcia Chomsky 1959: narzędzie opisu gramatyki języków naturalnych. Backus 1959: generowanie i parsowania programów w Fortranie. nieterminale N (oznaczamy dużymi literami); terminale T (oznaczamy małymi literami); symbol startowy (nieterminal): S. produkcje: X Y 1...Y p, gdzie X to nieterminal, Y 1,...,Y p to symbole z N T.

8 CFL: przykład Przykład: poprawne nawiasowania S S + S S ε S (S) S 0 1 nieterminale: S; terminale: +, 0, 1 Kiedy język skończony? nie istnieje cykl prowadzacy od X do X dla nieterminala X. dla każdego X: tylko jedna produkcja z X po lewej stronie.

9 Schemat kompresji gramatykowej RYSUNEK

10 Sequitur: niezmienniki Warunki utrzymywane w sequitur Unikalność digramów: żadna para sasiednich symboli (digram) nie występuje w gramatyce więcej niż jednokrotnie. Użyteczność produkcji: każda produkcja użyta więcej niż jeden raz. Sequitur: zasada zaczynamy od gramatyki generujacej słowo puste; po i-tym kroku gramatyka generuje prefiks tekstu o długości i; po każdym kroku modyfikujemy gramatykę, dopóki niespełnione reguły: unikaność digramów i użyteczność produkcji.

11 Sequitur: algorytm kodowania Sequitur: kodowanie Dane: tekst x 1...x n Algorytm: Utwórz gramatykę S ε Dla i = 1,...,n: Dodaj kolejny symbol (operacje wejściowe): S Y zamień na S Yx i Dopóki nie sa spełnione zasady unikalności digramów i użyteczności produkcji: poprawiaj gramatykę. (operacje modyfikujace).

12 Zachowywanie niezmienników Poprawianie gramatyki Powtórzenie digramu: gdy powtórzony digram jest prawa strona reguły: A...XY... A...B... B XY B XY gdy powtórzony digram nie jest prawa strona reguły: A...XY... B...XY... A...C... C XY B...C...

13 Zachowywanie niezmienników Poprawianie gramatyki c.d. Bezużyteczność produkcji: nieterminal B użyty tylko raz: A...B... A...X 1...X k... B X 1...X k

14 Sequitur: przykład Przykład (1) bbebeebebebbebee S b

15 Sequitur: przykład Przykład (2) bbebeebebebbebee S bb

16 Sequitur: przykład Przykład (3) bbebeebebebbebee S bbe

17 Sequitur: przykład Przykład (4) bbebeebebebbebee S bbeb

18 Sequitur: przykład Przykład (5) bbebeebebebbebee S bbebe naruszenie unikalności digramów: be występuje dwa razy. tworzymy regułę A be

19 Sequitur: przykład Przykład (6) bbebeebebebbebee S baa A be

20 Sequitur: przykład Przykład (7) bbebeebebebbebee S baae A be

21 Sequitur: przykład Przykład (8) bbebeebebebbebee S baaeb A be

22 Sequitur: przykład Przykład (9) bbebeebebebbebee S baaebe A be be występuje dwa razy; wykorzystujemy istniejac a produkcję A be.

23 Sequitur: przykład Przykład (10) bbebeebebebbebee S baaea A be

24 Sequitur: przykład Przykład (11) bbebeebebebbebee S baaeab A be

25 Sequitur: przykład Przykład (12) bbebeebebebbebee S baaeabe A be be występuje dwa razy; wykorzystujemy istniejac a produkcję A be.

26 Sequitur: przykład Przykład (13) bbebeebebebbebee S baaeaa A be AA występuje dwa razy; tworzymy nowa produkcję

27 Sequitur: przykład Przykład (14) bbebeebebebbebee S bbeb A be B AA

28 Sequitur: przykład Przykład (15) bbebeebebebbebee S bbebb A be B AA

29 Sequitur: przykład Przykład (16) bbebeebebebbebee S bbebbb A be B AA

30 Sequitur: przykład Przykład (17) bbebeebebebbebee S bbebbbe A be B AA be występuje dwa razy; wykorzystujemy istniejac a produkcję A be.

31 Sequitur: przykład Przykład (18) bbebeebebebbebee S bbebba A be B AA

32 Sequitur: przykład Przykład (19) bbebeebebebbebee S bbebbab A be B AA

33 Sequitur: przykład Przykład (20) bbebeebebebbebee S bbebbabe A be B AA be występuje dwa razy; wykorzystujemy istniejac a produkcję A be.

34 Sequitur: przykład Przykład (21) bbebeebebebbebee S bbebbaa A be B AA AA występuje dwa razy; wykorzystujemy istniejac a produkcję B AA.

35 Sequitur: przykład Przykład (22) bbebeebebebbebee S bbebbb A be B AA b B występuje dwa razy; tworzymy nowa produkcję C bb.

36 Sequitur: przykład Przykład (23) bbebeebebebbebee S CeBC A be B AA C bb

37 Sequitur: przykład Przykład (24) bbebeebebebbebee S CeBCe A be B AA C bb b B występuje dwa razy; tworzymy nowa produkcję D Ce.

38 Sequitur: przykład Przykład (25) bbebeebebebbebee S DBD A be B AA C bb D Ce nieterminal C użyty tylko raz; możemy usunać produkcję C bb

39 Sequitur: przykład Przykład (26) bbebeebebebbebee S DBD A be B AA D bbe

40 Co daje Sequitur Korzyści? struktura: gramatyka odkrywa wielomopoziomowa stukturę, o ile istnieje (porównaj z LZ); kompresja: jeśli dane z duża powtarzalnościa i hierarchiczna struktura: o.k. można też kompresować wynikowa gramatykę... Wydajność? Sequitur można zaimplementować w czasie liniowym!

41 Sequitur: implementacja Struktura danych każda produkcja to jeden element tablicy; każda produkcja jako lista dwukierunkowa; każdej produkcja ma licznik wystapień (nieterminala, który ta produkcja definiuje); każdy nieterminal po prawej stronie produkcji wskazuje na definiujac a go produkcję; wszystkie digramy w tablicy (haszujacej, gdy mało pamięci); każdy element tej tablicy wskazuje na wystapienie digramu w gramatyce (może być tylko jedno!)

42 Sequitur: implementacja Przykład Struktura dla gramatyki: S CeBCe A be B AA C bb... na tablicy

43 Sequitur: implementacja c.d. Fakt Każda z operacji wykonywanych w Sequitur, czyli: dodanie nowego symbolu; usunięcie 2 wystapień digramu poprzez zastosowanie lub dodanie odpowiedniej produkcji; usunięcie produkcji bezużytecznej (jej lewa strona użyta tylko raz). może być wykonana w stałym czasie (korzystajac z podanej struktury danych). Ile operacji w czasie działania algorytmu?

44 Sequitur: czas działania Liczba operacji utrzymujacych niezmienniki Sequitur Niech n: długość danych; m: liczba operacji innych niż dodanie kolejnego symbolu. Pokażemy: m 2n Metoda: analiza kosztu zamortyzowanego.

45 Sequitur: czas działania Niech: s: suma długości prawych stron wszystkich produkcji; r: liczba produkcji; 2s r: potencjał. Wówczas: 2s r = 0 bezpośrednio po dodaniu pierwszej litery; 2s r 0 w każdym kroku po dodaniu pierwszej litery: każda produkcja ma co najmniej jeden symbol po prawej stronie; każda operacja wejściowa zwiększa 2s r o 2; każda operacja modyfikujaca zmniejsza 2s r o 1 lub 2.

46 Sequitur: czas działania Każda operacja modyfikujaca zmniejsza 2s r. Zastosowanie istniejacej produkcji: A...XY...,B XY zamiana na A...B...,B XY Zmiana 2s r: -2. Utworzenie nowej produkcji: Zmiana 2s r: -1. Usunięcie produkcji: A...XY...,B...XY... zamiana na A...C...,B...C...,C XY A...B...,B X 1...X k zamiana na A...X 1...X k... Zmiana 2s r: -1.

47 Sequitur: czas... Co z tego wynika 2s t na końcu działania nie mniejsze niż na poczatku; operacje wejściowe zwiększaja 2s t o 2n; więc operacje modyfikujace moga zmniejszyć o 2n każda zmniejsza 2s t o co najmniej 1, więc operacji tych jest co najwyżej 2n. Wniosek Sequitur koduje dane w czasie O(n), gdzie n jest długościa tekstu.

48 Sequitur: kodowanie gramatyki Kodowanie podstawowe terminalom i nieterminalom przydzielamy kody stałe o długości log( N + T + 1), gdzie N,T to zbiory terminali i nieterminali; dodatkowy kod stały dla symbolu separujacego ; kodujemy prawe strony kolejnych produkcji, oddzielajac symbolem separujacym.

49 Sequitur: kodowanie gramatyki Kodowanie NMW zapisujemy prawa stronę symbolu startowego; przy pierwszym pojawieniu się każdego nieterminala: wstawiamy jego prawa stronę zamiast niego (z zagłębieniami!); przy drugim pojawieniu się nieterminala: kodujemy go jako trójkę (i,j,d), gdzie j to pozycja na której zaczyna się prawa strona tej reguły w prawej stronie reguły i, długość dopasowania to d po drugim wystapieniu nieterminala (de)koder dodaje jego produkcję do gramatyki; każde następne wystapienie nieterminala: kodowane poprzez jego numer;

50 Seqential... Sequential: Kieffer-Yang zachowujemy zasady unikalnośći digramów i użyteczności produkcji, jak w Sequitur; modyfikacja: dla gramatyki kodujacej x 1...x i : szukamy najdłuższego prefiksu x i+1...x n, który odpowiada słowu definiowanemu przez jakiś nieterminal i dołaczamy ten nieterminal do produkcji startowej; jeśli brak prefiksu x i+1...x n dopasowujacego się do którejkolwiek z produckji: dołacz x i+1 do produkcji startowej. Sequential: czas działania czy można zaimplementować liniowo?

51 Sequitur i warianty: podsumowanie Własności Sequitur liniowy czas działania; nie działa on-line; kompresja konkurencyjna wobec LZ??, ppm (dla tekstów w języku naturalnym); odkrywa/buduje hierarchiczna strukturę danych.

52 Jak mierzyć jakość kompresji gramatykowej? Rozmiar gramatyki: suma długości prawych stron wszystkich produkcji. Problem optymalnej gramatyki Dane: tekst w Wynik: najmniejsza gramatyka CF G =OPT(w), taka że L(G) = w. Zła wiadomość Problem optymalnej gramatyki jest NP-zupełny.

53 Optymalność gramatyki Czy warto szukać optymalnej gramatyki? Przykład (troche sztuczny...): dla tekstu w = a n b n mamy: P(a) = P(b) = 1/2, H(1/2,1/2) = 1. czyli kodujac jako ciag wartości niezależnych w kodujemy na 2n bitach; dla w i n = 2 k możemy zbudować gramatykę S A k B k,a 1 a,b 1 B,A i A i 1 A i 1,B i B i 1 B i 1 gdzie i [2,k].

54 Czy Sequitur jest optymalny? Sequitur a optymalna gramatyka Sequitur daje (w najgorszym przypadku) gramatykę o rozmiarze OPT (w) Ω(n 1/3 ), gdzie n = w. Dowód: analiza konkretnego przypadku, skomplikowany...

55 LZ78 jako kodowanie gramatykowe LZ78 z nieograniczonym rozmiarem słownika Słownik: {(i,w i )} p i=1, gdzie i to pozycja w słowniku, w i to słowo na pozycji i; zakodowana postać: (i 1,a 1 )...(i p,a p ) dla i 1,...,i p N, a 1,...,a p Σ.

56 LZ78 jako kodowanie gramatykowe LZ78: gramatyka dla słowa x na poczatku: w k-tym kroku LZ78: (1,x[1]) Gramatyka: A 1 w[1],s A 1 LZ78: koduje (i k,a k ) i dodaje do słownika (i max+1,w k a k ) Gramatyka: dodajemy A max+1 A k a k i zmianas α na S αa max+1

57 LZ78 jako kodowanie gramatykowe Wynik LZ78: p par (liczba,litera) gramatyka: reguła S α, gdzie α ma długość p; p reguł postaci X Ya, gdzie X,Y to nieterminale, a Σ Wniosek Kodowanie LZ78 można przekształcić w kodowanie gramatykowe co najwyżej 3-krotnie dłuższe. W praktyce: kodujac gramatykę uzyskujemy mniejsze różnice.

58 LZ78 jako kodowanie gramatykowe Przykład Tekst: a ab b aba ba abb abaa LZ78: (0,a) (1,b) (0,b) (2,a) (3,a) (2,b) (4,a) Gramatyka: S X 1 X 2 X 3 X 4 X 5 X 6 X 7 gdzie X 1 a, X 2 X 1 b, X 3 b, X 4 X 2 a, X 5 X 3 a, X 6 X 2 b, X 7 X 4 a.

59 LZ78 a optymalna gramatyka Fakt Kompresja LZ78 daje (w najgorszym przypadku) gramatykę o rozmiarze OPT (w) Ω(n 2/3 /logn), gdzie n = w. Wystarczy rozważyć inputy σ k = a k(k+1)/2 (ba k ) (k+1)2 Fakt Kompresja LZ78 daje (w najgorszym przypadku) gramatykę o rozmiarze OPT (w) O((n/logn) 2/3 ), gdzie n = w. Dowód: brak czasu...

60 LZ77 jako kompresja gramatykowa Rozważamy LZ77 (właściwie LZSS) przy założeniach nieograniczony rozmiar bufora słownikowego; dopasowanie nie może wybiegać poza bufor słownikowy; zamiast przesunięcia podajemy pozycję dopasowania w całym tekście (przy nieograniczonym buforze nie zmnienia zakresu); zamiast standardowej zachłannej metody wyboru dopasowań po zakodowaniu x 1...x i wybierz najdłuższe dopasowanie x i+1...x n wybieramy takie dopasowania, aby było jak najmniej elementów w zakodowanym tekście (można to zrobić w czasie O(n Σ )). (czy metoda zachłanna daje najmniejsza liczbę elementów?) Rozmiar LZ 77(w) Liczba elementów (par z dopasowaniem i pojedynczych liter) w powyższym kodowaniu.

61 LZ77 a optymalna gramatyka Fakt Rozmiar optymalnej gramatyki OPT (w) jest nie mniejszy niż LZ 77(w). Dowód Przekształcimy dowolna gramatykę G taka, że L(G) = w do kodowania LZ77 o tym samym rozmiarze: niech S α to produkcja startowa G; dopóki w α występuja nieterminale: wybierz nieterminal A o najdłuższym rozwinięciu; zamień pierwsze wystapienie A w α na jego prawa stronę ; zamień każde następne wystapienie A na parę (i,j), gdzie i,j wskazuja poczatek pierwszego wystapienia A w tekście i długość rozwinięcia A.

62 LZ77 a optymalna gramatyka Wynik uzyskujemy kodowanie LZ77 (LZSS) czyli ciag elementów w postaci opisu dopasowania lub pojedynczej litery; liczba elementów wynikowego kodowania nie większa niż rozmiar gramatyki. Przykład Gramatyka: Kodowanie LZ: S ABtAu A vbbw B xyz S A B t A u v B B w B t (1,8) u v x y z (2,3) w (2,3) t (1,8) u

63 Od LZ77 do (prawie) optymalnej gramatyki Idea Konstruujemy kodowanie LZ77, jego rozmiar jest nie większy od optymalnej gramatyki. Kod LZ77(w) przekształcamy (w czasie wielomianowym) w gramatykę G generujac a słowo w, tak aby rozmiar gramatyki był co najwyżej k krotnie większy od LZ 77(w) w efekcie gramatyka G jest rozmiaru k OPT (w), k nazywamy współczynnikiem aproksymacji. Algorytm Ryttera (p. też alg. Lehmana i in.) stosuje powyższa strategię; działa w czasie O(n logn), gdzie n = w ; osiaga współczynnik aproksymacji (log n)/ OPT (w), gdzie n = w ; pokażemy prostszy wariant, ze współczynnikiem log 2 n.

64 Konstrukcja gramatyki Idea gramatyka Chomsky ego drzewo wyprowadzenia binarne! budowa przyrostowa: gramatykę kodujac a tekst odpowiadajacy pierwszym i elementom LZ77 rozszerzamy do i + 1 elementów; zachowujemy niezmniennik: drzewo wyprowadzenia w jest drzewem AVL. Oznaczenia Gramatyka AVL: gramatyka Chomsky ego, której drzewo wyprowadzenia jest AVL. T (G): drzewo wyprowadzenia gramatyki G. height(t ): głębokość drzewa T ; height(v): głębokość drzewa o korzeniu w wierzchołku v.

65 Konstrukcja gramatyki Algorytm(w) Dane: słowo w o długości n. Wynik: gramatyka G taka, że L(G) = w Oblicz f 1...f k = LZ 77(w) G = {S f 1 } Dla i = 2,3,...,k: wyznacz S 1,...,S t : dekompozycja f i w gramatyce G; H Concat(S 1,...,S t ) G Concat(G,H)

66 Dekompozycja Dekompozycja f i w gramatyce G Fakt f i opisuje podsłowo słowa generowanego przez G (pomijamy przypadek, gdy f i jest pojedyncza litera); podsłowo x możemy reprezentować przez najmniejszy zbiór poddrzew T 1,...,T t drzewa wyprowadzenia, który odpowiada x (RYSUNEK); każdemu poddrzewu odpowiada nieterminal. Niech G będzie gramatyka AVL, L(G) = w, n = w. Wtedy dekompozycja każdego podsłowa w składa się z O(log n) elementów. Wynika ze zbalansowania drzew AVL,...

67 Konkatenacja Concat(G 1,G 2 ) Dane: G 1,G 2, gramatyki AVL. Wynik: G, gramatyka AVL taka, że L(G) = L(G 1 )L(G 2 ). Założenie: height(t (G 1 )) height(t (G 2 )). Na skrajnie prawej ścieżce T (G 1 ) znajdź wierzchołek v taki, że height(v) height(t (G 2 )) [0,1] (istnieje wskutek zbalansowania drzew) dodaj wierzchołek v pomiędzy v i rodzic(v) oraz przebuduj drzewo: v lewy(v ); korzen(t (G 2 )) prawy(v ) popraw zbalansowanie na ścieżce od v do korzenia T (G 1 ).

68 Konkatenacja Poprawianie zbalansowania zbalansowanie v jest poprawne: height(v) height(t (G 2 )) 1; zbalansowanie w może wynieść co najwyżej 2, jeśli depth(left(w)) < depth(v) a zatem wystarczy wykonać standardowe rotacje: tak jak przy standardowym wstawianiu/usuwaniu wierzchołka z drzewa AVL; Rotacje wymagaja nowych nieterminali: rotacja powoduje zmiane poddrzew dla 2 lub 3 wierzchołków; więc zmieniaja się słowa im odpowiadajace; ale nie możemy zmienić definicji odpowiadajacych im nieterminali (moga wystapić gdzie indziej); więc wprowadzamy nowe nieterminale.

69 Algorytm Ryttera a optymalność Wnioski każda operacja Concat wprowadza O(log n) nieterminali; dodanie każdego elementu kodowania LZ77 wprowadza O(log 2 n) nieterminali; algorytm generuje gramatykę Chomsky ego, więc liczba nieterminali to połowa rozmiaru gramatyki. Twierdzenie Algorytm Ryttera tworzy w czasie O(n log 2 n) gramatykę o rozmiarze O( OPT (w) log 2 n), gdzie n = w. Uwaga Dokładniej czas to O( OPT (w) log 2 n), ponieważ algorytm potrzebuje O(log 2 n) czasu przy każdym elemencie LZ77. A LZ 77(w) OPT (w).

70 Kodowanie gramatykowe: podsumowanie Podsumowanie Sequitur: praktyczny algorytm działajacy w czasie liniowym. Konstrukcja optymalnej gramatyki: problem NP-zupełny. LZ78 szczególnym przypadkiem kompresji gramatykowej (daleki od optimum). LZ77: nie gorszy od kompresji gramatykowej. w oparciu o LZ77: wielomianowy algorytm konstrukcji gramatyki log 2 n razy większej od optymalnej.

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

JAO - lematy o pompowaniu dla jezykow bezkontekstowy JAO - lematy o pompowaniu dla jezykow bezkontekstowych Postać normalna Chomsky ego Gramatyka G ze zbiorem nieterminali N i zbiorem terminali T jest w postaci normalnej Chomsky ego wtw gdy każda produkcja

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 2

Języki formalne i automaty Ćwiczenia 2 Języki formalne i automaty Ćwiczenia 2 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Metoda brute force... 2 Konwersja do postaci normalnej Chomskiego... 5 Algorytm Cocke a-youngera-kasamiego

Bardziej szczegółowo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

JAO - Wprowadzenie do Gramatyk bezkontekstowych JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa

Bardziej szczegółowo

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe Tomasz Wykład 5: kodowanie słownikowe Motywacja Motywacje 1 zazwyczaj dane nie tworza ciagu wartości niezależnych, kolejny symbol jest zależny od poprzedzajacych go; 2 pewne sekwencje (słowa) często się

Bardziej szczegółowo

Kodowanie informacji

Kodowanie informacji Tomasz Wykład 4: kodowanie słownikowe Motywacja Motywacje 1 kodowane dane nie tworza ciagu wartości niezależnych, rozkład prawdopodobieństwa zależy od symboli poprzedzajacych symbol kodowany; 2 pewne sekwencje

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 1

Języki formalne i automaty Ćwiczenia 1 Języki formalne i automaty Ćwiczenia Autor: Marcin Orchel Spis treści Spis treści... Wstęp teoretyczny... 2 Wprowadzenie do teorii języków formalnych... 2 Gramatyki... 5 Rodzaje gramatyk... 7 Zadania...

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 9: Własności języków bezkontekstowych Sławomir Lasota Uniwersytet Warszawski 27 kwietnia 2016 Plan 1 Pompowanie języków bezkontekstowych 2 Własności domknięcia 3 Obrazy

Bardziej szczegółowo

Kodowanie informacji

Kodowanie informacji Kodowanie informacji Tomasz Wykład 4: kodowanie arytmetyczne Motywacja Podstawy i własności Liczby rzeczywiste Motywacje 1 średnia długość kodu Huffmana może odbiegać o p max + 0.086 od entropii, gdzie

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 9

Języki formalne i automaty Ćwiczenia 9 Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej

Bardziej szczegółowo

Temat: Algorytm kompresji plików metodą Huffmana

Temat: Algorytm kompresji plików metodą Huffmana Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 1 Kody Tunstalla Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 14.04.2005 Inne podejście: słowa kodowe mają ustaloną długość, lecz mogą kodować ciągi liter z alfabetu wejściowego o różnej

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 3

Języki formalne i automaty Ćwiczenia 3 Języki formalne i automaty Ćwiczenia 3 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Algorytm LL(1)... 2 Definicja zbiorów FIRST1 i FOLLOW1... 3 Konstrukcja tabeli parsowania

Bardziej szczegółowo

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego 2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór

Bardziej szczegółowo

Imię, nazwisko, nr indeksu

Imię, nazwisko, nr indeksu Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Kody Tunstalla. Kodowanie arytmetyczne

Kody Tunstalla. Kodowanie arytmetyczne Kody Tunstalla. Kodowanie arytmetyczne Kodowanie i kompresja informacji - Wykład 3 8 marca 2010 Kody Tunstalla Wszystkie słowa kodowe maja ta sama długość ale jeden kod może kodować różna liczbę liter

Bardziej szczegółowo

Hierarchia Chomsky ego Maszyna Turinga

Hierarchia Chomsky ego Maszyna Turinga Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór

Bardziej szczegółowo

3.4. Przekształcenia gramatyk bezkontekstowych

3.4. Przekształcenia gramatyk bezkontekstowych 3.4. Przekształcenia gramatyk bezkontekstowych Definicje Niech będzie dana gramatyka bezkontekstowa G = G BK Symbol X (N T) nazywamy nieużytecznym w G G BK jeśli nie można w tej gramatyce

Bardziej szczegółowo

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

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.

Bardziej szczegółowo

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Metody Kompilacji Wykład 7 Analiza Syntaktyczna Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej

Bardziej szczegółowo

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka Gramatyki, wyprowadzenia, hierarchia Chomsky ego Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G =

Bardziej szczegółowo

Hierarchia Chomsky ego

Hierarchia Chomsky ego Hierarchia Chomsky ego Gramatyki nieograniczone Def. Gramatyką nieograniczoną (albo typu 0) nazywamy uporządkowaną czwórkę G= gdzie: % Σ - skończony alfabet symboli końcowych (alfabet, nad którym

Bardziej szczegółowo

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

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994] Programowanie w Logice Gramatyki metamorficzne Przemysław Kobylański na podstawie [CM2003] i [SS1994] Gramatyki bezkontekstowe Gramatyką bezkontekstową jest uporządkowana czwórka G = Σ, N, S, P, gdzie

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 12: Gramatyki i inne modele równoważne maszynom Turinga. Wstęp do złożoności obliczeniowej Sławomir Lasota Uniwersytet Warszawski 20 maja 2015 Plan 1 Gramatyki 2 Języki

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

Analiza semantyczna. Gramatyka atrybutywna

Analiza semantyczna. Gramatyka atrybutywna Analiza semantyczna Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji na temat składni języka podlegającego tłumaczeniu, translator musi posiadać możliwość korzystania z wielu innych informacji

Bardziej szczegółowo

Symbol, alfabet, łańcuch

Symbol, alfabet, łańcuch Łańcuchy i zbiory łańcuchów Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Symbol, alfabet, łańcuch Symbol Symbol jest to pojęcie niedefiniowane (synonimy: znak, litera)

Bardziej szczegółowo

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004 4 marca 2004 Podstawowe oznaczenia i definicje Wymagania wobec kodu Podstawowa idea Podsumowanie Podstawowe oznaczenia i definicje Podstawowe oznaczenia i definicje: alfabet wejściowy: A = {a 1, a 2,...,

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 4

Języki formalne i automaty Ćwiczenia 4 Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji

Bardziej szczegółowo

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001. KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

Bardziej szczegółowo

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}

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} Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy

Bardziej szczegółowo

0.1 Lewostronna rekurencja

0.1 Lewostronna rekurencja 0.1 Lewostronna rekurencja Sprawdź czy poniższa gramatyka E jest zgodna z LL(1), tzn. czy umożliwia przeprowadzenie analizy bez powrotu z wyprzedzeniem o jeden symbol. Wyjaśnienie pojęcia LL(1): Pierwsze

Bardziej szczegółowo

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Wprowadzenie do analizy składniowej. Bartosz Bogacki. Wprowadzenie do analizy składniowej Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy wprowadzenia do analizy składniowej. Zapraszam serdecznie

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki 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

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

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

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 4 kwietnia 2019 1 Dodajmy kontekst! Rozważaliśmy

Bardziej szczegółowo

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

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 Zadanie 1. Rozważmy jezyk 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 równe. Narysować diagram minimalnego automatu deterministycznego akceptujacego

Bardziej szczegółowo

Gramatyka operatorowa

Gramatyka operatorowa Gramatyki z pierwszeństwem operatorów Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka operatorowa Definicja: G = G BK jest gramatyką operatorową (i) (ii) G jest gramatyką

Bardziej szczegółowo

Definiowanie języka przez wyrażenie regularne(wr)

Definiowanie języka przez wyrażenie regularne(wr) Wykład3,str1 Definiowanie języka przez wyrażenie regularne(wr) DEFINICJA: (wyrażenia regularne) M(specjalneznakinienależącedoalfabetu:{,},, ) literyalfabetusąwr złożeniawrsąwr: jeśliw 1 iw 2 sąwr,to{w

Bardziej szczegółowo

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, δ)

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, δ) Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też L = {vw : vuw L dla pewnego u A takiego, że u = v + w } Rozwiązanie. Niech A =

Bardziej szczegółowo

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

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

AKD Metody słownikowe

AKD Metody słownikowe AKD Metody słownikowe Algorytmy kompresji danych Sebastian Deorowicz 2009 03 19 Sebastian Deorowicz () AKD Metody słownikowe 2009 03 19 1 / 38 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela

Bardziej szczegółowo

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

Dopełnienie to można wyrazić w następujący sposób: 1. (6 punktów) Czy dla każdego regularnego L, język f(l) = {w : każdy prefiks w długości nieparzystej należy do L} też jest regularny? Odpowiedź. Tak, jęsli L jest regularny to też f(l). Niech A będzie

Bardziej szczegółowo

Jaki język zrozumie automat?

Jaki język zrozumie automat? Jaki język zrozumie automat? Wojciech Dzik Instytut Matematyki Uniwersytet Śląski Katowice wojciech.dzik@us.edu.pl 7. Forum Matematyków Polskich, 12-17 września 2016, Olsztyn Prosty Automat do kawy Przemawiamy

Bardziej szczegółowo

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

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

Efektywna analiza składniowa GBK

Efektywna analiza składniowa GBK TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji

Bardziej szczegółowo

Sortowanie. Bartman Jacek Algorytmy i struktury

Sortowanie. Bartman Jacek Algorytmy i struktury Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39

Bardziej szczegółowo

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:

Bardziej szczegółowo

Gramatyki rekursywne

Gramatyki rekursywne Gramatyki bezkontekstowe, rozbiór gramatyczny eoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki rekursywne Niech będzie dana gramatyka bezkontekstowa G =

Bardziej szczegółowo

Metoda Tablic Semantycznych

Metoda Tablic Semantycznych Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,

Bardziej szczegółowo

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35 Kody Marek Śmieja Teoria informacji 1 / 35 Entropia Entropia określa minimalną statystyczną długość kodowania (przyjmijmy dla prostoty że alfabet kodowy A = {0, 1}). Definicja Niech X = {x 1,..., x n }

Bardziej szczegółowo

Wykład 5. Jan Pustelnik

Wykład 5. Jan Pustelnik Wykład 5 Jan Pustelnik Konstruowanie parsera Istnieje kilka podstawowych metod konstrukcji parsera bez nawracania Ze względów wydajnościowych parser bez nawracania jest jedynym sensownym rozwiązaniem (prawo

Bardziej szczegółowo

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

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty Dr inŝ. Janusz Majewski Katedra Informatyki Literatura Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques

Bardziej szczegółowo

Kodowanie predykcyjne

Kodowanie predykcyjne Kodowanie i kompresja informacji - Wykład 5 22 marca 2010 Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie. Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie.

Bardziej szczegółowo

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

Bardziej szczegółowo

Łyżwy - omówienie zadania

Łyżwy - omówienie zadania Komisja Regulaminowa XVI Olimpiady Informatycznej 1 UMK Toruń 12 luty 2009 1 Niniejsza prezentacja zawiera materiały dostarczone przez Komitet Główny Olimpiady Informatycznej. Treść zadania Wejście Wyjście

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 7

Języki formalne i automaty Ćwiczenia 7 Języki formalne i automaty Ćwiczenia 7 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Automaty... 2 Cechy automatów... 4 Łączenie automatów... 4 Konwersja automatu do wyrażenia

Bardziej szczegółowo

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Egzamin, AISDI, I termin, 18 czerwca 2015 r. Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział

Bardziej szczegółowo

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

Bardziej szczegółowo

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Modelowanie motywów łańcuchami Markowa wyższego rzędu

Modelowanie motywów łańcuchami Markowa wyższego rzędu Modelowanie motywów łańcuchami Markowa wyższego rzędu Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki 23 października 2008 roku Plan prezentacji 1 Źródła 2 Motywy i ich znaczenie Łańcuchy

Bardziej szczegółowo

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

JIP. Analiza składni, gramatyki

JIP. Analiza składni, gramatyki JIP Analiza składni, gramatyki Książka o różnych językach i paradygmatach 2 Polecam jako obowiązkową lekturę do przeczytania dla wszystkich prawdziwych programistów! Podsumowanie wykładu 2 3 Analiza leksykalna

Bardziej szczegółowo

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

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin Algorytmy stochastyczne, wykład 5, modelowanie roślin Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 214-3-2 1 2 3 ze stosem Przypomnienie gramatyka to system (Σ, A, s,

Bardziej szczegółowo

Zależności funkcyjne

Zależności funkcyjne Zależności funkcyjne Plan wykładu Pojęcie zależności funkcyjnej Dopełnienie zbioru zależności funkcyjnych Postać minimalna zbioru zależności funkcyjnych Domknięcie atrybutu relacji względem zależności

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 04 Systemy Lindenmayera Jarosław Miszczak IITiS PAN Gliwice 19/10/2016 1 / 37 1 L-Systemy 2 GroIMP i XL ALife 2 / 37 L-Systemy L-systemy czyli systemy Lindenmayera.

Bardziej szczegółowo

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np. Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %). Powrót Twój wynik: 4 punktów na 6 możliwych do uzyskania (6667 %). Nr Opcja Punkty Poprawna Odpowiedź Rozważmy algorytm AVLSequence postaci: 1 Niech drzewo będzie rezultatem działania algorytmu AVLSequence

Bardziej szczegółowo

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego. Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego

Bardziej szczegółowo

11 Probabilistic Context Free Grammars

11 Probabilistic Context Free Grammars 11 Probabilistic Context Free Grammars Ludzie piszą i mówią wiele rzeczy, a ich wypowiedzi mają zawsze jakąś określoną strukture i regularność. Celem jest znalezienie i wyizolowanie tego typu struktur.

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 1 Kody cykliczne: dekodowanie Definicja 1 (Syndrom) Niech K będzie kodem cyklicznym z wielomianem generuja- cym g(x). Resztę z dzielenia słowa

Bardziej szczegółowo

Wykład 3. Drzewa czerwono-czarne

Wykład 3. Drzewa czerwono-czarne Wykład 3 Drzewa czerwono-czarne 1 Drzewa zbalansowane Wprowadzenie Drzewa czerwono-czarne Definicja, wysokość drzewa Rotacje, operacje wstawiania i usuwania Literatura Cormen, Leiserson, Rivest, Wprowadzenie

Bardziej szczegółowo

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk Kompresja Kodowanie arytmetyczne Dariusz Sobczuk Kodowanie arytmetyczne (lata 1960-te) Pierwsze prace w tym kierunku sięgają początków lat 60-tych XX wieku Pierwszy algorytm Eliasa nie został opublikowany

Bardziej szczegółowo

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany , 1 2 3, czas zamortyzowany zajęcia 3. Wojciech Śmietanka, Tomasz Kulczyński, Błażej Osiński rozpinajace, 1 2 3 rozpinajace Mamy graf nieskierowany, ważony, wagi większe od 0. Chcemy wybrać taki podzbiór

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. IX Jesień 2014 1 / 26 Algorytmy zachłanne Strategia polegająca

Bardziej szczegółowo

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

(j, k) jeśli k j w przeciwnym przypadku. Zadanie 1. (6 punktów) Rozważmy język słów nad alfabetem {1, 2, 3}, w których podciąg z pozycji parzystych i podciąg z pozycji nieparzystych są oba niemalejące. Na przykład 121333 należy do języka, a 2111

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 8

Języki formalne i automaty Ćwiczenia 8 Języki formalne i automaty Ćwiczenia 8 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Konwersja NFA do DFA... 2 Minimalizacja liczby stanów DFA... 4 Konwersja automatu DFA do

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka Języki i operacje na językach Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Definicja języka Definicja języka Niech Σ będzie alfabetem, Σ* - zbiorem wszystkich łańcuchów

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kwantyzacja wektorowa. Kodowanie różnicowe. Kwantyzacja wektorowa. Kodowanie różnicowe. Kodowanie i kompresja informacji - Wykład 7 12 kwietnia 2010 Kwantyzacja wektorowa wprowadzenie Zamiast kwantyzować pojedyncze elementy kwantyzujemy całe bloki

Bardziej szczegółowo

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS Problem straŝaka w drzewach Agnieszka Skorupka Matematyka Stosowana FTiMS Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,

Bardziej szczegółowo

Wykład 8. Drzewa AVL i 2-3-4

Wykład 8. Drzewa AVL i 2-3-4 Wykład 8 Drzewa AVL i 2-3-4 1 Drzewa AVL Ø Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Ø Drzewa 2-3-4 Definicja drzewa 2-3-4 Operacje wstawiania i usuwania Złożoność

Bardziej szczegółowo

Algorytmika Problemów Trudnych

Algorytmika Problemów Trudnych Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.

Bardziej szczegółowo

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach

Bardziej szczegółowo

Algorytmy zwiazane z gramatykami bezkontekstowymi

Algorytmy zwiazane z gramatykami bezkontekstowymi 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

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A

Bardziej szczegółowo