Codificare Huffman Folosind Arbori Binari

Laborator
6.8/10 (4 voturi)
Domeniu: Alte domenii
Conține 1 fișier: pdf
Pagini : 5 în total
Cuvinte : 1980
Mărime: 120.79KB (arhivat)
Publicat de: Claudiu Tănasă
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Vlariu Iorga

Extras din laborator

Obiective

In urma parcurgerii acestui laborator, studentul va fi capabil:

• sa inteleaga modul in care informatia este masurata in biti

• sa inteleaga utilitatea diverselor forme de codificare

• sa implementeze algoritmul Huffman de generare a arborelui de simboluri, avand la baza un

sir de date de intrare

• sa parcurga un sir de date comprimate, si pe baza arborelui Huffman, sa obtina sirul original

Notiuni teoretice

1. Informatia. Codificarea informatiei.

Notiunea de informatie poate fi privita din mai multe puncte de vedere, precum cel lexicografic (ce

se refera la notiuni si fapte), sau filosofic. In inginerie, totusi, informatia are o definitie matematica

riguroasa. Ea reprezinta o inlaturare a incertitudinii, si este o marime a carei unitate de masura este

bitul. Astfel pentru reprezentarea unei informatii, vom avea nevoie de un anumit numar de biti de

informatie (nu neaparat intreg, dupa cum vom vedea mai jos!).

Intuitiv, ne putem gandi ca odata ce avem mai multi biti de informatie, stim mai multe despre

entitatea respectiva, deci incertitudinea este mai bine inlaturata. De exemplu, un numar real este

mai bine reprezentat de tipul double (pe 64 de biti), decat de tipul float (pe 32 de biti), iar precizia

calculelor este mai buna. Deci putem spune ca tipul double contine mai multa informatie decat tipul

float. (Ca un fapt divers, pentru a inlatura in intregime incertitudinea, am avea nevoie de un numar

infinit de biti pentru un numar real oarecare.)

Bine-nteles, in inginerie este nevoie de definitii riguroase, iar definitia cantitatii de informatie este

legata de teoria probabilitatilor. Aceasta spune ca pentru o multime formata din n obiecte

(simboluri), cu proprietatea ca fiecare obiect i poseda probabilitatea pi de aparitie, incertitudinea

(cantitatea de informatie necesara reprezentarii) pentru acest sistem este definita ca:

H = - p1 * log2(p1) - ... - pn * log2(pn)

Astfel, de exemplu, daca avem o urna cu 8 bile, si extragem o bila intamplare, stiind ca fiecare bila

poate fi extrasa cu o probabilitate egala pi = 1/8, atunci cantitatea de informatie, conform formulei

de mai sus, este:

1/5

H = - 8 * 1/8 * log2(1/8) = - (-3) = 3

Deci pentru reprezentarea rezultatului acestui eveniment, avem nevoie de 3 biti de informatie. Acest

rezultat era oarecum de asteptat, daca ne gandim ca putem numerota fiecare bila de la 0 la 7, si

pentru acest interval de numere putem folosi 3 biti de date.

Un alt exemplu, de data aceasta mai abstract si mai apropiat de lumea calculatoarelor, este legat de

cantitatea de informatie asociata unei litere a alfabetului, care poate aparea intr-un sir de litere.

Stiind ca poate fi vorba de oricare dintre cele 26 de litere, cu aceeasi probabilitate de aparitie

(1/26), informatia asociata unei litere este:

H = - 26 * 1/26 * log2(1/26) = 4.7 biti

Deci pentru a reprezenta o litera din alfabet, avem nevoie de 4.7 biti de informatie. Insa este clar ca

nici o masina numerica nu poate lucra cu un numar fractional de biti, astfel ca pentru a reprezenta o

litera din alfabet, vor fi necesari minim 5 biti numerici. In acest moment se poate sesiza diferenta

clara intre informatia teoretica, si codificarea acesteia, adica modul in care aceasta este reprezentata

pe masina numerica.

De exemplu, pentru numerele de la 0 la 9, informatia asociata unei cifre este 3.32 biti, insa o cifra

este reprezentata de obicei pe 4 biti, iar codificarea este asociata ordinii numerice in baza 2: 0000

pentru cifra 0, 0001 pentru 1, 0010 pentru 2, pana la 1001 pentru cifra 9. Acest tip de codificare

este numit, din motive evidente, cu lungime fixa. Fiecare cifra (simbol), are asociat acelasi numar de

biti. Avantajul major al acestui tip de codificare este simplitatea cu care pot fi manipulate

reprezentarile simbolurilor, care pot fi aliniate foarte usor in memorie, iar acest lucru il face foarte

popular in informatica. Numerele intregi sunt reprezentate in lungime fixa pe 8, 16, 32 sau 64 de

biti, numerele reale pe 32 sau 64 de biti, s.a.m.d.

Preview document

Codificare Huffman Folosind Arbori Binari - Pagina 1
Codificare Huffman Folosind Arbori Binari - Pagina 2
Codificare Huffman Folosind Arbori Binari - Pagina 3
Codificare Huffman Folosind Arbori Binari - Pagina 4
Codificare Huffman Folosind Arbori Binari - Pagina 5

Conținut arhivă zip

  • Codificare Huffman Folosind Arbori Binari.pdf

Alții au mai descărcat și

Sinteză camă rotație cu tachet translație cu rolă

Sinteza mecanismului cu cama de rotatie cu tachet de translatie cu rola. Metoda I Se cunosc: - legea de miscare a camei: (1) - legea de...

Bazele Tehnologiei Informației

Capitolul 1. Concepte de baza privind tehnologia informationala si de comunicatii 1.1. Informatia, resursa strategica a societatii Orice...

Jurnalism și Terorism

Crize, conflicte sociale si comunicare mediatica Criza Stare a unui sistem care nu îsi poate îndeplini rolul, misiunile Tipuri de crize...

Definirea Economiei Politice

= Definirea Economiei Politice = -Economia este stiinta care trateaza productia si distributia drepturilor.In care aceasta productie si aceasta...

Legislație rutieră

TEMA 1 Notiuni generale privind circulatia pe drumurile publice 1) Acte normative care reglementeaza circulatia pe drumurile publice a) Legea...

Studiu Economic al Reductorului Cilindric

2006 – 2007 Identificarea si definirea produsului si a functiilor acestuia Nomenclatorul functiilor Tabel 1 Simbol Denumirea functiei A...

Măsurări Executate cu Aparate cu Amplificare Mecanică

Scopul lucrari Lucrarea de fata prezinta principalele aparate cu amplificare mecanica si modul lor de utilizare în vederea executarii de...

Te-ar putea interesa și

Arbori Huffman - Implementare în C++

INTRODUCERE În lucrarea de fața tratez metodele Huffman de codificare și comprimare a datelor, necesare pentru elaborarea unor algoritmi optimi...

Compresia Datelor - Compresia în Formatele Grafice

1.INTRODUCERE Interesul pentru reducerea spatiului ocupat de fisiere pe suportii magnetici a impus constituirea algoritmilor de comprimare....

Algoritmul de Compresie Huffman

1.1 Noţiuni introductive 1.1.1 Terminologie Pentru a evita eventualele neînţelegeri ce ar putea rezulta din utilizarea unor termeni care sunt...

Algoritmi GREEDY

Pusi in fata unei probleme pentru care trebuie sa elaboram un algoritm, de multe ori "nu stim cum sa incepem". Ca si in orice alta activitate,...

Teoria Grafurilor

1. Noţiuni introductive Există mai multe moduri echivalente de definire a arborilor. Din punctul de vedere al teoriei grafurilor numim arbore un...

Ai nevoie de altceva?