Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004
|
|
- Bożena Jarosz
- 8 lat temu
- Przeglądów:
Transkrypt
1 4 marca 2004
2 Podstawowe oznaczenia i definicje Wymagania wobec kodu Podstawowa idea Podsumowanie
3 Podstawowe oznaczenia i definicje Podstawowe oznaczenia i definicje: alfabet wejściowy: A = {a 1, a 2,..., a m } informacja własna litery: i(a) = log entropia (średnia informacja własna): 1 = log P(A) (1) P(A) H = P(A i )i(a i ) = P(A i ) log P(A i ) (2) Tw. Shannona: średnia ilość bitów przypadająca na jeden zakodowany symbol nie jest mniejsza od entropii źródła kod prefiksowy: kod, w którym żadne słowo kodowe nie jest prefiksem innego słowa kodowego
4 Wymagania wobec kodu Podstawowa idea Podsumowanie Co chcemy uzyskać: każdemu symbolowi z alfabetu chcemy przypisać jednoznacznie słowo kodowe symbolom rzadko występującym chcemy przypisać dłuższe słowa kodowe, a częściej występującym krótsze chcemy móc jednoznacznie dekodować zakodowane dane ale takich kodów jest wiele, który wybrać? no i jak wybrać, aby taki kod móc szybko zbudować?
5 Wymagania wobec kodu Podstawowa idea Podsumowanie Cel: optymalny kod spełniający wymienione wymagania. Kluczowe obserwacje: dla każdego jednoznacznie dekodowalnego kodu istnieje nie gorszy (w sensie średniej ilości bitów na symbol) kod prefiksowy w kodzie optymalnym częściej występującym symbolom będą odpowiadały krótsze słowa kodowe a rzadziej występującym dłuższe w kodzie optymalnym dwa symbole występujące najrzadziej będą miały słowa kodowe o tej samej długości
6 Wymagania wobec kodu Podstawowa idea Podsumowanie A P(A) c(a) a c(a 2 ) a c(a 1 ) a c(a 3 ) a c(a 4 ) a c(a 5 ) c(a 4 ) = α 1 0 c(a 5 ) = α 1 1 A P(A) c(a) a c(a 2 ) a c(a 1 ) a c(a 3 ) a α 1 c(a 3 ) = α 2 0 c(a 4 ) = α 2 1 α 1 = α 2 1 A P(A) c(a) a c(a 2 ) a α 2 a c(a 1 ) c(a 3 ) = α 3 0 c(a 1 ) = α 3 1 α 2 = α 3 0 A P(A) c(a) a α 3 a c(a 2 ) c(a 3 ) = 0 c(a 2 ) = 1 α 3 = 0 c(a 2 ) = 1 c(a 1 ) = 01 c(a 3 ) = 000 c(a 4 ) = 0010 c(a 5 ) = 0011
7 Wymagania wobec kodu Podstawowa idea Podsumowanie Algorytm konstrukcji drzewa Huffmana: 1. umieść m liści na liście L 2. dopóki lista L zawiera przynajmniej dwa elementy wykonuj 2.1 usuń z listy L dwa elementy x oraz y o najmniejszej wadze 2.2 stwórz nowy wierzchołek p, który będzie rodzicem x i y 2.3 ustaw wagę wierzchołka p na sumę wag x i y 2.4 umieść wierzchołek p na liście L
8 Wymagania wobec kodu Podstawowa idea Podsumowanie Algorytm Huffmana generuje optymalny kod, ale jaka jest jego średnia długość l? Twierdzenie: H(S) l H(S) + 1 (3)
9 Wymagania wobec kodu Podstawowa idea Podsumowanie Istnieje możliwość dokładniejszego oszacowania. Niech P max = max {P(a i )} m i=1 wówczas P max < 0.5 = l H(S) + P max P max 0.5 = l H(S) + P max
10 Wymagania wobec kodu Podstawowa idea Podsumowanie Zalety: kod Huffmana minimalizuje sumę ważoną długości kodów, tj. jest optymalnym kodem prefiksowym procedura budowy drzewa Huffmana jest szybka i prosta w implementacji zarówno kodowanie jak i dekodowanie jest proste i efektywne Wady: do budowy drzewa konieczne są statystyki kodowanej wiadomości do przekazywanej/zapisywanej wiadomości trzeba dołączyć opis drzewa
11 Cel: stworzenie jednoprzebiegowego algorytmu kodującego Metoda: utrzymywanie drzewa Huffmana obliczonego zgodnie z częstościami wystąpień symboli w dotychczas przetworzonym fragmencie Co zyskamy: tylko jeden przebieg nie trzeba przesyłać drzewa Problem: jak szybko uaktualniać drzewo Huffmana?
12 Wierzchołkom w drzewie przypisujemy wagę, która dla liści jest równa ilości wystąpień kodowanego symbolu w dotychczasowym tekście, a dla wierzchołków wewnętrznych sumie wag dzieci. Niech M t = a i1 a i2... a ik będzie dotychczas przetworzonym fragmentem. Następna litera a ik+1 będzie zakodowana oraz odkodowana przy użyciu drzewa Huffmana dla M t. Główna trudność: jak szybko zmodyfikować drzewo dla M t aby otrzymać drzewo dla M t+1? Proste zwiększenie o 1 wagi wierzchołka i jego rodziców nie zawsze da drzewo Huffmana. Rozwiązanie: wykorzystać własność sąsiedztwa
13 Do wyprowadzenia algorytmu wykorzystamy pewną charakteryzację drzew Huffmana: Własność sąsiedztwa Drzewo binarne o p liściach oraz nieujemnych wagach wierzchołków w i jest drzewem Huffmana wtedy i tylko wtedy gdy: 1. waga każdego wierzchołka jest sumą wag jego dzieci 2. istnieje niemalejąca numeracja wierzchołków zgodna z niemalejącym uporządkowaniem według wagi taka, że dla 1 j p 1 wierzchołki 2j 1 i 2j są sąsiadami i ich wspólny rodzic ma wyższy numer
14 Rozwiązanie: aktualizacje drzewa wykonamy w dwóch fazach: 1. przekształcenie drzewa do takiej postaci, w której proste zwiększenie wagi odpowiednich wierzchołków nie zaburzy własności sąsiedztwa 2. zwiększenie wagi wierzchołka odpowiadającego przetwarzanemu symbolowi i jego rodzicom
15 Pytanie: co zrobić z drzewem, aby można było po prostu zwiększyć wagi wierzchołków? Odpowiedź: zaczynając od wierzchołka, który odpowiada kodowanemu symbolowi, zamieniać aktualny wierzchołek z wierzchołkiem o najwyższym numerze (w sensie numeracji z własności sąsiedztwa) spośród wierzchołków o tej samej wadze
16
17
18 procedure update; q := wierzchołek odpowiadający otrzymanej literze; if (q = wierzchołek 0) and (k < m - 1) then dodaj q dwoje dzieci (numeracja: lewe, prawe, rodzic) q := prawe dziecko if q jest sąsiadem wierzchołka 0 then zamień q z liściem o tej samej wadze i najw. zwiększ wagę q o 1 q := rodzic q numerze while q nie jest korzeniem zamień q z wierz. o tej samej wadze i najw. num. zwiększ wagę q o 1 q := rodzic q
19 Obserwacje: zamiany wierzchołków, wykonywane przez algorytm, nie powodują, że drzewo przestaje być drzewem Huffmana dla M t (co wynika z własności sąsiedztwa) po zwiększeniu odpowiednich wag (w drzewie otrzymanym przez wykonanie zamian) dostaniemy drzewo Huffmana dla M t+1 (co ponownie wynika z własności sąsiedztwa)
20 Ile nas to kosztuje? O ile więcej bitów wygeneruje algorytm FGK w porównaniu z klasycznymi kodami Huffmana? Odpowiedź: Jeżeli S jest ilością bitów wygenerowanych przez oryginalny algorytm Huffmana, S ilością bitów wygenerowanych przez algorytm FGK, a m rozmiarem alfabetu, to zachodzi: S 2S + m (4)
21 Pytanie: Czy można lepiej? Odpowiedź: Tak, używając algorytmu Vittera można mieć: S < S + m (5)
22 Podstawowa idea: ograniczyć ilość zamian, w których wierzchołek q porusza się w górę drzewa, do co najwyżej jednego przy każdym wywołaniu update konstruować drzewo w ten sposób, aby minimalizowało nie tylko sumę ważoną długości ścieżek w drzewie j w jl j, ale również sumę nieważoną długości ścieżek j L j oraz długość najdłuższej ścieżki max j {L j } - intuicyjnie powinno to ograniczyć długość słowa kodowego dla następnej litery
23 Klasyfikacja zamian: wierzchołek q przesuwa się do góry o jeden poziom wierzchołek q zamieniamy z wierzchołkiem z tego samego poziomu wierzchołek q zamieniamy z wierzchołkiem na niższym poziomie wierzchołek q zamieniamy z wierzchołkiem położonym o dwa poziomy wyżej
24 Niejawna numeracja Pomysł: numerować wierzchołki drzewa w sposób odpowiadający reprezentacji wizualnej: wierzchołki numerujemy w sposób zgodny z poziomami drzewa: wierzchołki na tym samym poziomie mają numery niższe niż te na następnym, wyższym poziomie wierzchołki na tym samym poziomie numerujemy rosnąco od lewej do prawej Gdy używamy niejawnej numeracji, nie będzie zamian typu. Oprócz tego, jeżeli wierzchołek przesuwa się do góry w zamianie typu, to ten, który przesuwa się w dół, jest liściem.
25 Niezmiennik algorytmu Kluczem do polepszenia algorytmu jest uniknięcie zamian typu poza pierwszą iteracją pętli while. Aby to zrobić będziemy utrzymywać następujący niezmiennik: dla każdej wagi w, wszystkie liście o wadze w poprzedzają w niejawnej numeracji wszystkie wierzchołki wewnętrzne o wadze w Można pokazać, że drzewo Huffmana, które spełnia ten niezmiennik, minimalizuje j L j oraz max j {L j }.
26 Kilka definicji: blok - klasa równoważności relacji na wierzchołkach drzewa: wierzchołki v i x są w relacji, jeśli mają tą samą wagę oraz obydwa są wierzchołkami lub obydwa są liśćmi (w algorytmie FGK nie zwracaliśmy uwagi na liście/wierzch. wewn.) lider bloku - wierzchołek o najwyższym numerze należący do bloku Bloki są połączone w listę w kolejności rosnącej wagi, blok liści zawsze poprzedza blok wierzchołków wewnętrznych o tej samej wadze.
27 procedure update; leaftoincrement := 0; q := wierzchołek odpowiadający otrzymanej literze; if (q = wierzchołek 0) and (k < m - 1) then dodaj q dwoje dzieci, prawe odpowiadające literze q := wierzchołek, który właśnie został tatusiem leaftoincrement := prawe dziecko q else zamień q z liderem jego bloku if q jest sąsiadem wierzchołka 0 then leaftoincrement := q; q := rodzic q while q nie jest korzeniem slideandincrement(q); if leaftoincrement 0 then slideandincrement(leaftoincrement);
28 procedure slideandincrement(p); wt := waga wierzchołka p; b := następny blok na liście po bloku wierzchołka p; if p jest liściem and b jest blokiem wierzch. wewn. o wadze wt or p jest wierzch. wewn. and b jest blokiem liści o wadze wt+1 then zjedź wierzch. p w drzewie w kierunku wierzch. z b p.weight := wt + 1; if p jest liściem then p := nowy rodzic p else p := dawny rodzic p
29
30 Podsumowanie długość danych zakodowanych algorytmem Vittera może się różnić od długości danych zakodowanych statycznym algorytmem Huffmana co najwyżej o długość alfabetu algorytm jest dosyć skomplikowany, ale Vitter opublikował jego wzorcową implementację algorytm wymaga specyficznych struktur danych, opisanych dokładnie w pracach Vittera
31 Wyniki testów Typ Rozmiar Stat. kody FGK Vitter pliku początkowy Huffmana Postscript BMP Poczta Źródła w C WAV
32 Współczynnik kompresji Typ Stat. kody FGK Vitter pliku Huffmana Postscript 0,6614 0,6616 0,6616 BMP 0,9323 0,9329 0,9328 Poczta 0,6712 0,6712 0,6712 Źródła w C 0,5845 0,5846 0,5846 WAV 0,7635 0,7639 0,7637 Średnio 0,7226 0,7229 0,7228
33
34 Gdzie szukać dalszych informacji: Khalid Sayood, Kompresja danych - wprowadzenie, wydawnictwo Read Me, kwiecień Jeffrey S. Vitter, Design and Analysis of Dynamic Huffman Codes, JACM Vol. 34, październik Jeffrey S. Vitter, Dynamic Huffman Coding, ACM Transactions on Mathematical Software Vol. 15, czerwiec 1989.
35 Długość kodów Huffmana Algorytm Huffmana generuje optymalny kod, ale jaka jest jego średnia długość l? Twierdzenie: H(S) l H(S) + 1 (6)
36 Długość kodów Huffmana Lemat (Kraft, McMillan): (McMillan) Niech C będzie jednoznacznie dekodowalnym kodem. Niech A = {a 1, a 2,..., a m } będzie alfabetem wejściowym oraz niech l i = C(a i ). Wówczas: m 2 l i 1 (7) i=1 (Kraft) Dla dowolnego ciągu dodatnich liczb całkowitych {l i } m i=1 spełniającego (7) istnieje jednoznacznie dekodowalny kod o długościach {l i } m i=1
37 Długość kodów Huffmana Wpierw pokażemy, że H(S) l. Prawdopodobieństwo wystąpienia litery a i oznaczmy przez P(a i ). Wtedy mamy: m l = P(a i )l i (8) H(S) l = = = = i=1 i=1 m P(a i ) log P(a i ) i=1 m ( [ 1 P(a i ) log m i=1 m i=1 P(a i ) ( [ 1 P(a i ) log P(a i ) ] [ 2 l i P(a i ) log P(a i ) m P(a i )l i i=1 ] l i ) ] [ ] ) log 2 l i
38 Długość kodów Huffmana Nierówność Jensena: dla każdej wklęsłej funkcji ( ) f (x) zachodzi: E [f (X )] f (E[X ]) (9) Ponieważ funkcja log jest wklęsła, wobec tego: m [ 2 l i ] [ m H(S) l = P(a i ) log log P(a i ) i=1 i=1 2 l i ] (10) Ponieważ kod jest optymalny, to z lematu Krafta-McMillana (7) mamy że m i=1 2 l i 1, a więc H(S) l 0 co kończy pierwszą część dowodu.
39 Długość kodów Huffmana Górna granica - wiemy, że kod jest optymalny, więc wystarczy pokazać istnienie kodu takiego, że l H(S) + 1. Zdefiniujmy: 1 l i = log (11) P(a i ) Ponieważ x. ɛ [0, 1). x = x + ɛ to zgodnie z (11) mamy: log 1 P(a i ) l 1 i log P(a i ) + 1 (12)
40 Długość kodów Huffmana Zauważmy, że z lewej nierówności z (12) mamy: 2 l i P(a i ) wobec czego, sumując obustronnie, otrzymujemy: m 2 l i i=1 m P(a i ) = 1 i=1 skąd z kolei, przez drugą część lematu Krafta-McMillana, istnieje jednoznacznie dekodowalny kod o długościach {l i }. Długość tego kodu możemy oszacować następująco: l = m P(a i )l i < i=1 co kończy dowód. m i=1 [ ] 1 P(a i ) log P(a i ) + 1 = H(S) + 1 (13)
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ółowoKompresja 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ółowoKodowanie 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ółowoDefinicja. 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ółowoKodowanie 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ółowoGranica 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ółowoTemat: 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ółowo0-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ółowoDef. 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ółowoKODY 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ółowoKodowanie 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ółowoKody 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ółowoTeoria 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ółowoKODY 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ółowoElementy 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ółowoKompresja 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ółowoTeoria 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ółowoKodowanie 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ółowoteoria 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ółowoAlgorytmy 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ółowoKompresja 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ółowoNiech 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ółowoPodstawowe 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ółowoKody 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ółowoEntropia 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ółowoPrzetwarzanie 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ółowoAlgorytmy 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ółowoWygra 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ółowoAlgorytmy 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ółowoKodowanie 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ółowo0 + 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ółowoWstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości
Bardziej szczegółowoZADANIE 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ółowoAlgorytmy 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ółowoKompresja 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ółowomgr 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ółowoModulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a
Modulacja i kodowanie Labolatorium Kodowanie źródłowe Kod Huffman a W tym ćwiczeniu zajmiemy się kodowaniem źródłowym (source coding). 1. Kodowanie źródłowe Głównym celem kodowanie źródłowego jest zmniejszenie
Bardziej szczegółowoZałożenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG
Założenia i obszar zastosowań KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Plan wykładu: Geneza algorytmu Założenia i obszar zastosowań JPEG kroki algorytmu kodowania obrazu Założenia: Obraz monochromatyczny
Bardziej szczegółowoWstę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ółowoStruktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca
Bardziej szczegółowoGrafy (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ółowoTeoria 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ółowoMatematyka 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ółowoteoria 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ółowoPodstawy 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ółowoAlgorytmy 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ółowoWstę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ółowoAlgorytmy 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ółowoWykład 2. Poprawność algorytmów
Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm
Bardziej szczegółowoALGORYTMY 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ółowooperacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Bardziej szczegółowoPrzetwarzanie 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ółowoRekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Bardziej szczegółowoKodowanie 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ółowoAlgorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Bardziej szczegółowoProgramowanie dynamiczne
Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty
Bardziej szczegółowoKody 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ółowo7a. 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ółowoE: 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ółowoAlgorytmy 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ółowoZadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Bardziej szczegółowoStruktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy
Bardziej szczegółowoDynamiczne drzewa. Piotr Sankowski. - p. 1/27
Piotr Sankowski - p. 1/27 przypomnienie czas O(log 2 n), jak to zrobić w czasie O(log n), jak to zrobić w pesymistycznym czasie O(log n) (szkic). - p. 2/27 Operacje na dynamicznych drzewach: parent(v)
Bardziej szczegółowoMetody 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ółowoTeoria 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ółowoInstrukcje dla zawodników
Instrukcje dla zawodników Nie otwieraj arkusza z zadaniami dopóki nie zostaniesz o to poproszony. Instrukcje poniżej zostaną ci odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde zadanie
Bardziej szczegółowoSortowanie - wybrane algorytmy
Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe
Bardziej szczegółowoZASADY 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ółowoLuty 2001 Algorytmy (4) 2000/2001
Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest
Bardziej szczegółowoPrzepustowość kanału, odczytywanie wiadomości z kanału, poprawa wydajności kanału.
Przepustowość kanału, odczytywanie wiadomości z kanału, poprawa wydajności kanału Wiktor Miszuris 2 czerwca 2004 Przepustowość kanału Zacznijmy od wprowadzenia równości IA, B HB HB A HA HA B Można ją intuicyjnie
Bardziej szczegółowoModelowanie 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ółowoWysokość drzewa Głębokość węzła
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
Bardziej szczegółowoWyszukiwanie binarne
Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie
Bardziej szczegółowoKodowanie 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ółowoTadeusz 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ółowoInstrukcje dla zawodników
Płock, 17 marca 2018 r. Instrukcje dla zawodników Arkusze otwieramy na wyraźne polecenie komisji. Wszystkie poniższe instrukcje zostaną odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde
Bardziej szczegółowoLZ77 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ółowoZadanie: Wymyślić efektywną reprezentację par ciągów binarnych jako ciągów binarnych. Rozwiązanie: Propozycja wypracowana na ćwiczeniach
Wybrane zadania z ćwiczeń 2015 Bartek Klin i Damian Niwiński Uwaga. Ten tekst jest materiałem dydaktycznym opartym na wielu źródłach, których tu nie wymieniamy. 1 Obliczenia deterministyczne 1.1 Binarna
Bardziej szczegółowoLaboratorium nr 7 Sortowanie
Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę
Bardziej szczegółowoKażdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.
Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące
Bardziej szczegółowoKodowanie 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ółowoKolejka 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ółowoa) 7 b) 19 c) 21 d) 34
Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie
Bardziej szczegółowoPoprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
Bardziej szczegółowoJoint 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ółowoWstęp do programowania
Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na
Bardziej szczegółowoJarosław Wróblewski Matematyka Elementarna, zima 2014/15
Ćwiczenia 0.10.014 Powtórka przed sprawdzianem nr 1. Wzory skróconego mnożenia dwumian Newtona procenty. Postęp arytmetyczny i geometryczny. Ćwiczenia 138.10.014 Sprawdzian nr 1: 1.10.014 godz. 8:15-8:40
Bardziej szczegółowoKodowanie 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ółowoAlgorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych
Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych 1 Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych Alexander Denisjuk Prywatna Wyższa Szkoła Zawodowa w Giżycku
Bardziej szczegółowoUrządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):
1. SYSTEMY LICZBOWE UŻYWANE W TECHNICE KOMPUTEROWEJ System liczenia - sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Do zapisu
Bardziej szczegółowoDrzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II
Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem
Bardziej szczegółowoprowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325
PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj
Bardziej szczegółowoDrzewa 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ółowoAKD 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Ł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ółowoSortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:
Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące
Bardziej szczegółowoWykł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ółowo2 Kryptografia: algorytmy symetryczne
1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;
Bardziej szczegółowoPorzą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ółowoznalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.
Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często
Bardziej szczegółowo