Nierówność Krafta-McMillana, Kodowanie Huffmana

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

Download "Nierówność Krafta-McMillana, Kodowanie Huffmana"

Transkrypt

1 Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010

2 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy sufiksem b względem a.

3 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy sufiksem b względem a. Algorytm Tworzymy listę słów kodowych. Dla każdej pary sprawdzamy czy jedno słowo jest prefiksem drugiego, jeśli tak to do listy dodajemy sufiks drugiego słowa (chyba, że już dodaliśmy taki sufiks). Powtarzamy powyższa procedurę aż do momentu kiedy znajdziemy na liście sufiks równy słowu kodowemu (kod nie jest jednoznaczny) albo nie można znaleźć nowych sufiksów (kod jest jednoznaczny).

4 Przykład Weźmy kod {0, 01, 11}.

5 Przykład Weźmy kod {0, 01, 11}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 11, 1}.

6 Przykład Weźmy kod {0, 01, 11}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 11, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 i 1 jako prefiks 11, ale sufiks 1 już dopisaliśmy do listy więc lista się nie zmienia.

7 Przykład Weźmy kod {0, 01, 11}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 11, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 i 1 jako prefiks 11, ale sufiks 1 już dopisaliśmy do listy więc lista się nie zmienia. Kod jest więc jednoznacznie dekodowalny.

8 Przykład Weźmy kod {0, 01, 10}.

9 Przykład Weźmy kod {0, 01, 10}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 10, 1}.

10 Przykład Weźmy kod {0, 01, 10}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 10, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 ale on już jest na liście oraz 1 jako prefiks 10 ale sufiks 0 jest równy kodowi 0.

11 Przykład Weźmy kod {0, 01, 10}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 10, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 ale on już jest na liście oraz 1 jako prefiks 10 ale sufiks 0 jest równy kodowi 0. Kod nie jest więc jednoznacznie dekodowalny.

12 Kody prefiksowe Kod w którym żadne słowo kodowe nie jest prefiksem innego słowa kodowego.

13 Kody prefiksowe Kod w którym żadne słowo kodowe nie jest prefiksem innego słowa kodowego. Łatwo zauważyć, że kod prefiksowy jest jednoznacznie dekodowalny.

14 Nierówność Krafta-McMillana Niech C będzie kodem składajacym się z N słów o długościach l 1, l 2,..., l N. Jeżeli C jest jednoznacznie dekodowalny to K (C) = N 1 2 l i i=1 1.

15 Własności optymalnych kodów prefiksowych Symbolom występujacym częściej odpowiadaja krótsze słowa kodowe.

16 Własności optymalnych kodów prefiksowych Symbolom występujacym częściej odpowiadaja krótsze słowa kodowe. Dwa najrzadziej występujace symbole maja w kodzie optymalnym słowa kodowe tej samej długości.

17 Konstruowanie kodów Huffmana Kody dwóch najrzadziej występujacych symboli różnia się tylko na ostatniej pozycji.

18 Konstruowanie kodów Huffmana Kody dwóch najrzadziej występujacych symboli różnia się tylko na ostatniej pozycji. Algorytm rekurencyjny: rozważ dwa najrzadziej występujace symbole rozróżniajac je na końcu przez 0 i 1. Połacz oba w jeden symbol pomocniczy i rozważ teraz rekurencyjnie mniejszy alfabet. Powtarzaj aż zostanie tylko jeden symbol.

19 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1.

20 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2.

21 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}.

22 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}. Rozważamy c i x: kod(c) = kod(y)0, kod(x) = kod(y)1 i P(y) = 0, 4.

23 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}. Rozważamy c i x: kod(c) = kod(y)0, kod(x) = kod(y)1 i P(y) = 0, 4. A = {a, b, y}.

24 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}. Rozważamy c i x: kod(c) = kod(y)0, kod(x) = kod(y)1 i P(y) = 0, 4. A = {a, b, y}. Rozważamy a i b: kod(a) = kod(z)0, kod(b) = kod(z)1 i P(z) = 0, 6.

25 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}. Rozważamy c i x: kod(c) = kod(y)0, kod(x) = kod(y)1 i P(y) = 0, 4. A = {a, b, y}. Rozważamy a i b: kod(a) = kod(z)0, kod(b) = kod(z)1 i P(z) = 0, 6. A = {y, z}.

26 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}. Rozważamy c i x: kod(c) = kod(y)0, kod(x) = kod(y)1 i P(y) = 0, 4. A = {a, b, y}. Rozważamy a i b: kod(a) = kod(z)0, kod(b) = kod(z)1 i P(z) = 0, 6. A = {y, z}. Rozważamy y i z: kod(y) = 0 i kod(z) = 1.

27 Przykład A = {a, b, c, d, e}, P(b) = 0, 4, P(a) = P(c) = 0, 2 i P(d) = P(e) = 0, 1. Rozważamy d i e: kod(d) = kod(x)0, kod(e) = kod(x)1 i P(x) = 0, 2. A = {a, b, c, x}. Rozważamy c i x: kod(c) = kod(y)0, kod(x) = kod(y)1 i P(y) = 0, 4. A = {a, b, y}. Rozważamy a i b: kod(a) = kod(z)0, kod(b) = kod(z)1 i P(z) = 0, 6. A = {y, z}. Rozważamy y i z: kod(y) = 0 i kod(z) = 1. Rekonstruujemy kody: kod(a) = 10, kod(b) = 11, kod(c) = 00, kod(d) = 010, kod(e) = 011.

28 Własności kodów Huffmana Kod Huffmana jako drzewo - tworzenie takiego drzewa jako algorytm tworzenia kodów Huffmana.

29 Własności kodów Huffmana Kod Huffmana jako drzewo - tworzenie takiego drzewa jako algorytm tworzenia kodów Huffmana. Niejednoznaczność tworzenia kodów - istnieje często wiele kodów dla jednego źródła danych (ale wszystkie maja ta sama średnia długość kodu).

30 Własności kodów Huffmana Kod Huffmana jako drzewo - tworzenie takiego drzewa jako algorytm tworzenia kodów Huffmana. Niejednoznaczność tworzenia kodów - istnieje często wiele kodów dla jednego źródła danych (ale wszystkie maja ta sama średnia długość kodu). Wariancja kodu, redundancja kodu.

31 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a.

32 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a. Dwie litery o najmniejszych prawdopodobieństwach maja słowa kodowe o tej samej, maksymalnej długości.

33 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a. Dwie litery o najmniejszych prawdopodobieństwach maja słowa kodowe o tej samej, maksymalnej długości. Z każdego wierzchołka wewnętrznego drzewa odpowiadajacego kodowi optymalnemu powinny wychodzić oba poddrzewa.

34 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a. Dwie litery o najmniejszych prawdopodobieństwach maja słowa kodowe o tej samej, maksymalnej długości. Z każdego wierzchołka wewnętrznego drzewa odpowiadajacego kodowi optymalnemu powinny wychodzić oba poddrzewa. Jeśli połaczymy dwa liście majace wspólnego ojca i ten wierzchołek wewnętrzny potraktujemy jako liść to uzyskane drzewo jest kodem optymalnym dla nowego alfabetu jeśli pierwotne drzewo było optymalne.

35 Długość kodów Huffmana Dla źródła S spełniona jest nierówność H(S) l H(S) + 1 gdzie l - średnia długość kodu Huffmana dla źródła S.

36 Rozszerzone i niebinarne kody Huffmana Kody Huffmana możemy zastosować także do bloków symboli.

37 Rozszerzone i niebinarne kody Huffmana Kody Huffmana możemy zastosować także do bloków symboli. Kody Huffmana można tworzyć także dla innego niż binarny alfabetu wyjściowego - prosta modyfikacja algorytmu: zamiast dwóch symboli łaczymy m symboli.

38 Dynamiczne kody Huffmana Aby wykonać kodowanie Huffmana musimy znać prawdopodobieństwa (częstość występowania) liter.

39 Dynamiczne kody Huffmana Aby wykonać kodowanie Huffmana musimy znać prawdopodobieństwa (częstość występowania) liter. Co zrobić gdy dane napływaja na bieżaco i nie znamy statystyk?

40 Dynamiczne kody Huffmana Aby wykonać kodowanie Huffmana musimy znać prawdopodobieństwa (częstość występowania) liter. Co zrobić gdy dane napływaja na bieżaco i nie znamy statystyk? Kodować k + 1 symbol na podstawie statystyk k symboli.

41 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze).

42 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach:

43 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień.

44 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień. Wierzchołki wewnętrzne maja wagę będac a suma wag liści z poddrzew.

45 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień. Wierzchołki wewnętrzne maja wagę będac a suma wag liści z poddrzew. Każdy wierzchołek drzewa ma unikalny numer x i. Numery te tworza porzadek zgodny z wagami wierzchołków (większa waga to większy numer wierzchołka). Dodatkowo rodzeństwo ma zawsze dwa kolejne numery.

46 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień. Wierzchołki wewnętrzne maja wagę będac a suma wag liści z poddrzew. Każdy wierzchołek drzewa ma unikalny numer x i. Numery te tworza porzadek zgodny z wagami wierzchołków (większa waga to większy numer wierzchołka). Dodatkowo rodzeństwo ma zawsze dwa kolejne numery. Na poczatku drzewo zawiera jeden wierzchołek o wadze 0 i etykiecie NYT oznaczajacej że symbol nie był jeszcze przesyłany.

47 Opis algorytmu Pierwsze wystapienie symbolu a Wyślij kod NYT i kod stałej długości dla nowego symbolu.

48 Opis algorytmu Pierwsze wystapienie symbolu a Wyślij kod NYT i kod stałej długości dla nowego symbolu. Stary NYT podziel na dwa wierzchołki potomne - nowy NYT i liść a, nadaj a wagę 1. Nadaj im odpowiednie numery.

49 Opis algorytmu Pierwsze wystapienie symbolu a Wyślij kod NYT i kod stałej długości dla nowego symbolu. Stary NYT podziel na dwa wierzchołki potomne - nowy NYT i liść a, nadaj a wagę 1. Nadaj im odpowiednie numery. Zmodyfikuj drzewo dodajac 1 do wierzchołków wewnętrznych na ścieżce od a do korzenia i przebudowujac drzewo tak aby było zgodne z warunkami z poprzedniego slajdu.

50 Opis algorytmu Kolejne wystapienie symbolu a Znajdź liść a i wyślij odpowiadajacy mu kod.

51 Opis algorytmu Kolejne wystapienie symbolu a Znajdź liść a i wyślij odpowiadajacy mu kod. Zwiększ wagę a o 1.

52 Opis algorytmu Kolejne wystapienie symbolu a Znajdź liść a i wyślij odpowiadajacy mu kod. Zwiększ wagę a o 1. Zmodyfikuj drzewo dodajac 1 do wierzchołków wewnętrznych na ścieżce od a do korzenia i przebudowujac drzewo tak aby było zgodne z warunkami z poprzedniego slajdu.

53 Modyfikacja drzewa Zbiór wierzchołków o tej samej wadze nazywamy blokiem.

54 Modyfikacja drzewa Zbiór wierzchołków o tej samej wadze nazywamy blokiem. Jeśli pierwszy wierzchołek od dołu nie ma największego numeru w swoim bloku to zamieniamy go z tym o największym numerze odpowiednio przebudowujac drzewo z zachowaniem własności. Następnie aktualizujemy wagę i patrzymy dalej rekurencyjnie.

55 Modyfikacja drzewa Zbiór wierzchołków o tej samej wadze nazywamy blokiem. Jeśli pierwszy wierzchołek od dołu nie ma największego numeru w swoim bloku to zamieniamy go z tym o największym numerze odpowiednio przebudowujac drzewo z zachowaniem własności. Następnie aktualizujemy wagę i patrzymy dalej rekurencyjnie. Kończymy jak dojdziemy do korzenia.

56 Przykład Mamy cztery litery z 26. (W drzewie maksymalnie 51 wierzchołków.) a d r v

57 Przykład Mamy cztery litery z 26. (W drzewie maksymalnie 51 wierzchołków.) a d r v Drzewo poczatkowo wyglada tak

58 Przykład Pojawia się litera a.

59 Przykład Pojawia się litera a. Wysyłamy kod NYT (ε) i stały kod a:

60 Przykład Pojawia się litera a. Wysyłamy kod NYT (ε) i stały kod a: Modyfikujemy drzewo:

61 Przykład Pojawia się druga litera a.

62 Przykład Pojawia się druga litera a. Wysyłamy kod a: 1 (z drzewa lewe krawędzie to 0 a prawe to 1).

63 Przykład Pojawia się druga litera a. Wysyłamy kod a: 1 (z drzewa lewe krawędzie to 0 a prawe to 1). Modyfikujemy drzewo:

64 Przykład Pojawia się litera r.

65 Przykład Pojawia się litera r. Wysyłamy kod NYT (0) i stały kod r:

66 Przykład Pojawia się litera r. Wysyłamy kod NYT (0) i stały kod r: Modyfikujemy drzewo:

67 Przykład Pojawia się litera d.

68 Przykład Pojawia się litera d. Wysyłamy kod NYT (00) i stały kod d:

69 Przykład Pojawia się litera d. Wysyłamy kod NYT (00) i stały kod d: Modyfikujemy drzewo:

70 Przykład Pojawia się litera v.

71 Przykład Pojawia się litera v. Wysyłamy kod NYT (000) i stały kod v:

72 Przykład Modyfikujemy drzewo:

73 Przykład Modyfikujemy drzewo:

74 Podsumowanie - własności Optymalność wśród kodów prefiksowych.

75 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie).

76 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie). Kody rozszerzone - kompromis między optymalnościa a wielkościa systemu.

77 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie). Kody rozszerzone - kompromis między optymalnościa a wielkościa systemu. Możliwość implementacji dynamicznej.

78 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie). Kody rozszerzone - kompromis między optymalnościa a wielkościa systemu. Możliwość implementacji dynamicznej. Zastosowanie: pkzip, lha, gzip, zoo, arj, fragmenty formatów JPEG i MPEG.

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

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

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

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

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

Algorytmy kodowania entropijnego

Algorytmy kodowania entropijnego Algorytmy kodowania entropijnego 1. Kodowanie Shannona-Fano 2. Kodowanie Huffmana 3. Jednoznaczność kodów Huffmana. Kod o minimalnej wariancji 4. Dynamiczne kodowanie Huffmana Poprzedni wykład - podsumowanie

Bardziej szczegółowo

Teoria Informacji - wykład. Kodowanie wiadomości

Teoria Informacji - wykład. Kodowanie wiadomości Teoria Informacji - wykład Kodowanie wiadomości Definicja kodu Niech S={s 1, s 2,..., s q } oznacza dany zbiór elementów. Kodem nazywamy wówczas odwzorowanie zbioru wszystkich możliwych ciągów utworzonych

Bardziej szczegółowo

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski Kodowanie Huffmana Platforma programistyczna.net; materiały do laboratorium 24/5 Marcin Wilczewski Algorytm Huffmana (David Huffman, 952) Algorytm Huffmana jest popularnym algorytmem generującym optymalny

Bardziej szczegółowo

Teoria informacji i kodowania Ćwiczenia

Teoria informacji i kodowania Ćwiczenia Teoria informacji i kodowania Ćwiczenia Piotr Chołda, Andrzej Kamisiński Katedra Telekomunikacji Akademii Górniczo-Hutniczej Kod źródłowy Kodem źródłowym nazywamy funkcję różnowartościową, która elementom

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 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

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk Kompresja danych kodowanie Huffmana Dariusz Sobczuk Plan wykładu Kodowanie metodą Shannona-Fano Kodowanie metodą Huffmana Elementarny kod Golomba Kod Golomba Kod Rice a kompresja danych 2 Efektywny kod

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

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 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

Definicja. Jeśli. wtedy

Definicja. Jeśli. wtedy Definicja Jeśli wtedy Cel kompresji: zredukowanie do minimum oczekiwanego (średniego) kosztu gdzie l i jest długością słowa kodu c i kodującego symbol a i Definicja Definicje Efektywność kodowania określamy

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

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

Kodowanie i entropia

Kodowanie i entropia Kodowanie i entropia Marek Śmieja Teoria informacji 1 / 34 Kod S - alfabet źródłowy mocy m (np. litery, cyfry, znaki interpunkcyjne), A = {a 1,..., a n } - alfabet kodowy (symbole), Chcemy przesłać tekst

Bardziej szczegółowo

Elementy teorii informacji i kodowania

Elementy teorii informacji i kodowania i kodowania Entropia, nierówność Krafta, kodowanie optymalne Marcin Jenczmyk m.jenczmyk@knm.katowice.pl 17 kwietnia 2015 M. Jenczmyk Spotkanie KNM i kodowania 1 / 20 Niech S = {x 1,..., x q } oznacza alfabet,

Bardziej szczegółowo

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 1 zakres materiału zakres materiału 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja.

Bardziej szczegółowo

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu KODY SYMBOLI Materiały KODA, A.Przelaskowski Koncepcja drzewa binarnego Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Koncepcja przedziałów nieskończonego alfabetu Proste kody

Bardziej szczegółowo

Algorytmy zachłanne. dr inż. Urszula Gałązka

Algorytmy zachłanne. dr inż. Urszula Gałązka Algorytmy zachłanne dr inż. Urszula Gałązka Algorytm zachłanny O Dokonuje wyboru, który w danej chwili wydaje się najkorzystniejszy. O Mówimy, że jest to wybór lokalnie optymalny O W rzeczywistości nie

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. wykład 8

Algorytmy i struktury danych. wykład 8 Plan wykładu: Kodowanie. : wyszukiwanie wzorca w tekście, odległość edycyjna. Kodowanie Kodowanie Kodowanie jest to proces przekształcania informacji wybranego typu w informację innego typu. Kod: jest

Bardziej szczegółowo

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Witold Tomaszewski Instytut Matematyki Politechniki Śląskiej e-mail: Witold.Tomaszewski@polsl.pl Je n ai fait celle-ci plus longue

Bardziej szczegółowo

Podstawowe pojęcia. Teoria informacji

Podstawowe pojęcia. Teoria informacji Kodowanie i kompresja informacji - Wykład 1 22 luty 2010 Literatura K. Sayood, Kompresja danych - wprowadzenie, READ ME 2002 (ISBN 83-7243-094-2) Literatura K. Sayood, Kompresja danych - wprowadzenie,

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie

Bardziej szczegółowo

Przetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski.

Przetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 3 Kodowanie Shannona Fano i Huffmana Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych

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

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. KOMPRESJA ALGORYTMEM ARYTMETYCZNYM, GOLOMBA I RICE'A Idea algorytmu arytmetycznego Przykład kodowania arytmetycznego Renormalizacja

Bardziej szczegółowo

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne Algorytmy kompresji Kodowanie Huffmana, kodowanie arytmetyczne Kodowanie arytmetyczne Peter Elias 1923-2001 Kodowanie arytmetyczne to metoda kodowania źródłowego dyskretnych źródeł sygnałów, stosowana

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

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

Niech x 1,..., x n będzie ciągiem zdarzeń. ---

Niech x 1,..., x n będzie ciągiem zdarzeń. --- Matematyczne podstawy kryptografii, Ćw2 TEMAT 7: Teoria Shannona. Kody Huffmana, entropia. BIBLIOGRAFIA: [] Cz. Bagiński, cez.wipb.pl, [2] T. H. Cormen, C. E. Leiserson, R. L Rivest, Wprowadzenie do algorytmów,

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry

Bardziej szczegółowo

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017 Kody źródłowe jednoznacznie dekodowalne Zadanie Ile najwięcej słów kodowych może liczyć kod binarny jednoznacznie dekodowalny, którego najdłuższe słowo ma siedem liter? (Odp. 28) Zadanie 2 Zbiór sześciu

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

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

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

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

Entropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz

Entropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz Algorytmy kompresji danych 2007 02 27 Plan wykładu 1 Modelowanie i kodowanie 2 Modelowanie i kodowanie Plan wykładu 1 Modelowanie i kodowanie 2 Modelowanie i kodowanie definicja stowarzyszona ze zbiorem

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski.

Przetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 5 Kodowanie słownikowe Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Przemysław

Bardziej szczegółowo

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

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

Kody blokowe Wykład 2, 10 III 2011

Kody blokowe Wykład 2, 10 III 2011 Kody blokowe Wykład 2, 10 III 2011 Literatura 1. R.M. Roth, Introduction to Coding Theory, 2006 2. W.C. Huffman, V. Pless, Fundamentals of Error-Correcting Codes, 2003 3. D.R. Hankerson et al., Coding

Bardziej szczegółowo

Teoria Informacji i Metody Kompresji Danych

Teoria Informacji i Metody Kompresji Danych Teoria Informacji i Metody Kompresji Danych 1 Przykładowe zadania (dodatkowe materiały wykładowe) 2 Robert Susmaga Instytut Informatyki ul. Piotrowo 2 Poznań kontakt mail owy Robert.Susmaga@CS.PUT.Poznan.PL

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

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 1 wczoraj Wprowadzenie matematyczne. Entropia i informacja. Kodowanie. Kod ASCII. Stopa kodu. Kody bezprefiksowe.

Bardziej szczegółowo

Kompresja danych - wprowadzenie. 1. Konieczno kompresji 2. Definicja, typy kompresji 3. Modelowanie 4. Podstawy teorii informacji 5.

Kompresja danych - wprowadzenie. 1. Konieczno kompresji 2. Definicja, typy kompresji 3. Modelowanie 4. Podstawy teorii informacji 5. Kompresja danych - wprowadzenie. Konieczno kompresji. Definicja, typy kompresji. Modelowanie 4. Podstawy teorii informacji 5. Kodowanie Konieczno kompresji danych Due rozmiary danych Niewystarczajce przepustowoci

Bardziej szczegółowo

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny

Bardziej szczegółowo

Podstawy Informatyki: Kody. Korekcja błędów.

Podstawy Informatyki: Kody. Korekcja błędów. Podstawy Informatyki: Kody. Korekcja błędów. Adam Kolany Instytut Techniczny adamkolany@pm.katowice.pl Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 1 /

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

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

7a. Teoria drzew - kodowanie i dekodowanie

7a. Teoria drzew - kodowanie i dekodowanie 7a. Teoria drzew - kodowanie i dekodowanie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7a. wteoria Krakowie) drzew - kodowanie i

Bardziej szczegółowo

Joint Photographic Experts Group

Joint Photographic Experts Group Joint Photographic Experts Group Artur Drozd Uniwersytet Jagielloński 14 maja 2010 1 Co to jest JPEG? Dlaczego powstał? 2 Transformata Fouriera 3 Dyskretna transformata kosinusowa (DCT-II) 4 Kodowanie

Bardziej szczegółowo

Kodowanie Shannona-Fano

Kodowanie Shannona-Fano Kodowanie Shannona-Fano Kodowanie Shannona-Fano znane było jeszcze przed kodowaniem Huffmana i w praktyce można dzięki niemu osiągnąć podobne wyniki, pomimo, że kod generowany tą metodą nie jest optymalny.

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

Bardziej szczegółowo

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017 Algebra liniowa Zadanie 1 Czy jeśli wektory x, y i z, należące do binarnej przestrzeni wektorowej nad ciałem Galois GF (2), są liniowo niezależne, to można to samo orzec o następujących trzech wektorach:

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 22/23 Outline Programowanie zachłanne Programowanie zachłanne Rodzaje kodów Programowanie zachłanne Kody stałej długości (np. ASCII). Kody zmiennej

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu

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

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

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

7. CIĄGI. WYKŁAD 5. Przykłady :

7. CIĄGI. WYKŁAD 5. Przykłady : WYKŁAD 5 1 7. CIĄGI. CIĄGIEM NIESKOŃCZONYM nazywamy funkcję określoną na zbiorze liczb naturalnych, dodatnich, a wyrazami ciągu są wartości tej funkcji. CIĄGIEM SKOŃCZONYM nazywamy funkcję określoną na

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

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

Podstawy kompresji danych

Podstawy kompresji danych Podstawy kompresji danych Pojęcie kompresji W ogólności kompresja (kodowanie) jest procedurą (przekształceniem) zmiany reprezentacji wejściowego zbioru danych do postaci wymagającej mniejszej liczby bitów

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

EGZAMIN MATURALNY Z INFORMATYKI

EGZAMIN MATURALNY Z INFORMATYKI WPISUJE ZDAJĄCY NUMER UCZNIA EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ I ARKUSZ EGZAMINACYJNY PROJEKTU INFORMATURA DATA: 9 GRUDNIA 2016 R. CZAS PRACY: 60 MINUT LICZBA PUNKTÓW DO UZYSKANIA:

Bardziej szczegółowo

1 Działania na zbiorach

1 Działania na zbiorach M. Beśka, Wstęp do teorii miary, rozdz. 1 1 1 Działania na zbiorach W rozdziale tym przypomnimy podstawowe działania na zbiorach koncentrując się na własnościach tych działań, które będą przydatne w dalszej

Bardziej szczegółowo

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST) Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie

Bardziej szczegółowo

ZADANIE 1. Rozwiązanie:

ZADANIE 1. Rozwiązanie: EUROELEKTR Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 200/20 Rozwiązania zadań dla grupy teleinformatycznej na zawody II. stopnia ZNIE ramka logiczna w technologii MOS składa

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

Algorytmy i struktury danych

Algorytmy i struktury danych Cel ćwiczenia lgorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Kompresja Ćwiczenie ma na celu

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

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

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Kody Huffmana. Konrad Wypyski. 11 lutego 2006 roku

Kody Huffmana. Konrad Wypyski. 11 lutego 2006 roku Kody Huffmana Konrad Wypyski 11 lutego 2006 roku Spis treści 1 Rozdział 1 Kody Huffmana Kody Huffmana (ang. Huffman coding) to jedna z najprostszych i najłatwiejszych w implementacji metod kompresji bezstratnej;

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/

Bardziej szczegółowo

Drzewa podstawowe poj

Drzewa podstawowe poj Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Temat 7. Dekodery, enkodery

Temat 7. Dekodery, enkodery Temat 7. Dekodery, enkodery 1. Pojęcia: koder, dekoder, enkoder, konwerter kodu, transkoder, enkoder priorytetowy... Koderami (lub enkoderami) nazywamy układy realizujące proces zamiany informacji kodowanej

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

Temat: Algorytmy wyszukiwania wzorca w tekście

Temat: Algorytmy wyszukiwania wzorca w tekście Temat: Algorytmy wyszukiwania wzorca w tekście 1. Sformułowanie problemu Dany jest tekst T oraz wzorzec P, będące ciągami znaków o długości równej odpowiednio n i m (n m 1), nad pewnym ustalonym i skończonym

Bardziej szczegółowo

Digraf. 13 maja 2017

Digraf. 13 maja 2017 Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,

Bardziej szczegółowo

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j Kompresja transformacyjna. Opis standardu JPEG. Algorytm JPEG powstał w wyniku prac prowadzonych przez grupę ekspertów (ang. Joint Photographic Expert Group). Prace te zakończyły się w 1991 roku, kiedy

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym

Bardziej szczegółowo

Ogólne wiadomości o drzewach

Ogólne wiadomości o drzewach Ogólne wiadomości o drzewach Algorytmy i struktury danych Wykład 4. Rok akademicki: 2010/2011 Drzewo jako struktura danych Drzewo kolekcja elementów pozostających w zależności hierarchicznej, posiadająca

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

Laboratorium ochrony danych

Laboratorium ochrony danych Laboratorium ochrony danych Ćwiczenie nr 3 Temat ćwiczenia: Kod BCH Cel dydaktyczny: Zapoznanie się z metodami detekcji i korekcji błędów transmisyjnych za pomocą binarnych kodów cyklicznych, na przykładzie

Bardziej szczegółowo