You are on page 1of 10

Univerzitet u Novom Sadu

Tehniki fakultet Mihajlo Pupin


Zrenjanin

Tema: Korenska stabla i Huffmanov kd


- SEMINARSKI RAD Nastavni predmet: TEORIJA GRAFOVA

Profesor:
prof. dr. Momilo Bjelica

Student: Sneana Stojanovi


Br. indeksa: IT 116/12
Smer: Informacione tehnologije

Zrenjanin
maj 2013

Teorija grafova

Sadraj
Teorija grafova...................................................................................................... 2
Stabla..................................................................................................................... 2
Korenska stabla......................................................................................................3
Binarno stablo...................................................................................................3
Huffman-ov kd.................................................................................................... 4
Zadatak.................................................................................................................. 5
Zakljuak ..............................................................................................................8
Literatura...............................................................................................................8

Teorija grafova

Teorija grafova
Kombinatorika, sa Teorijom grafova je jedna od najstarijih oblasti matematike, ali i danas
je veoma aktuelna. Neke oblasti Teorije grafova su postale vrlo aktuelne sa vrtoglavim razvojem
raunara i njihovom sve veom primenom pri reavanju matematikih problema.
Grafovi su matematiki objekti koje sreemo u svakodnevnom ivotu npr. strukturna
formula nekog molekula ili jedinjenja, ema elektrinog kola u elektronici i dr. to nam govori da
su grafovi nali veliku primenu, pored matematikih oblasti (kombinatorike, kombinatorne
optimizacije, operacionih istraivanja, linearne algebre, kompleksne analize) i u drugim naukama
elektrotehnika, hemija, raunarstvo, fizika, biologija, vojne nauke....
Dobri primeri primene grafova u raunarstvu jesu:
- Algoritam ranga stranice (eng. PageRank algorithm) koji koristi Google pri pretraivanju
- irenje virusa u raunarskim mreama model prati promenu stanja vora (zaraen ili
zdrav)
Def: Graf G je ureen par (V,E), elementi skupa V su vorovi (eng. vertex), a elementi skupa E su
grane (eng. edge) grafa G. Za dati graf G, skup vorova se oznaava sa V(G), a skup grana
E(G).

Stabla
Pojam stabla ( ili drvo, eng. tree) predstavlja jedan od najvanijih pojmova u teoriji
grafova. Stablo se moe posmatrati u dva konteksta: kao poseban graf-koji poseduje neka svojstva,
ili kao podgraf- nekog povezanog grafa.
Def: Stablo je povezan graf bez konture.
Def: vor stepena 1 u grafu naziva se list (eng. leaf)
Def: Sledei iskazi su ekvivalentni:
1. Stablo je povezan graf bez konture.
2. Stablo je povezan graf sa n vorova i m = n-1 grana.
3. Stablo je graf sa n vorova, m = n-1 grana i bezkontura.
4. Stablo je minimalan povezan graf (udaljavanjem bilo koje grane postaje nepovezan graf).
5. Stablo je maksimalan graf bez kontura (dodavanjem bilo koje grane formira se kontura).
6. Stablo je graf u kome su svaka dva vora povezana jedinstvenim elementarnim putem.

Sl 1. Stablo sa n=6, vorova i m=5, grana.


2

Teorija grafova

Korenska stabla
Def: Stablo u kome je jedan vor posebno izdvojen naziva se korensko stablo, a taj vor se naziva
koren stabla.
Def: Za korensko stablo se kae da je binarno ako svaki vor stabla (roditelj) ima najvie dva
susedna vora na sledeem nivou (deteta). U standardnom prikazu binarnog stabla dete sa
leve strane se naziva levo dete, a sa desne strane desno dete.

Binarno stablo (engl. binary tree) je u informatici struktura namenjena uvanju podataka.
Njene memorijske jedinice su organizovane po principu piramide. Tanije, svaka memorijska
jedinica (vor) binarnog stabla moe da pokazuje na jo najvie dva elementa (njegova deca),
dok stablo ima samo jedan elemenat na koga ne pokazuje ni jedan drugi (koren). Od ovog
elementa se moe doi u bilo koji drugi elemenat stabla. Svaki elemenat stabla moe biti i
svestan koji elemenat pokazuje na njega (tj. ko mu je roditelj).
vor stabla je jedna memorijska elija stabla. Ona moe imati nula, jedan ili dva podvora.
Koren stabla je vor stabla koji nije podvor nijednog drugog vora u stablu.
List je vor stabla koji nema ni jedan podvor.
Roditelj nekog vora je vor koji pokazuje na njega.
Dete nekog vora je vor na koji neki drugi vor pokazuje.
U vezi sa slikom Sl. 2: vorovi stabla su elementi prikazani krugovima. Upisani brojevi su
vrednosti kljueva po kojima se elementi sortiraju. vor sa kljuem 8 je koren stabla.
Njegova deca su vorovi sa kljuevima 3 i 10. Roditelj vorova sa vrednou kljueva 3 i 10 je
vor sa kljuem 8. Listovi stabla su vorovi sa kljuevima 1, 4, 7 i 13.
Podstablo ili podgrana je skup svih vorova stabla koji se nalaze levo ili desno od nekog od
vorova stabla.

Sl. 2

Teorija grafova

Huffmanov kd
Sva slova, kao i svi drugi simboli raunaru se uvaju u vidu niza bitova (tj. niza 0 i 1).
Najei nain je ASCII kod tj. kodiranje kod koga se za svaki simbol korisri niz od 7 bitova, plus
dodatni bit (8 bitova= 1 bajt), koji slui za proveru parnosti (da se pri prenosu eliminiu greke).
Pri velikoj koliini podataka , koja je danas neminovna, javlja se potreba za saimanjem,
kompresijom podataka, tj. da se za neke simbole iskoristi manje bitova. Optimalno bi bilo da se za
simbole koji se ee javljaju koristi krai niz bitova, a za one koji se javljaju ree koristi dui niz
bitova. Na taj nain vrimo utedu memorijskog prostora za skladitenje podataka, a i bri prenos
podataka kada vrimo transfer tih podataka sa jednog medija na drugi.
Meutim, prilikom ovakvog uvanja podataka, gde nizovi bitova imaju razliite duine,
dolazimo do problema kako da utvrdimo gde se jedan niz bitova zavrava, a drugi poinje? Ovde
uvodimo definciju operacije konkatenacije (operacija koja lepi rei)
Def: Neka su a1a2a3..an i b1b2b3..bn rei jezika A*. Binarnu operaciju o, koju emo zvati
konkatenacija, definiemo kao a1a2a3..an o b1b2b3..bn = a1a2a3..an b1b2b3..bn
Kd koji se jednoznano deifruje za dati jezik je skup S, takav da se svaka re u jeziku moe
jedinstveno izraziti kao konkatenacija elemenata skupa S. Kd S je prefiksni kd ako ima
osobinu da element kda ne moe da predstavlja poetni podniz nekog drugog elementa
kda.
Reenje problema nalazimo u upotrebi binarnog stabla. Ako neka njegova grana vodi do
levog deteta njoj e odgovarati bit 0, a ako vodi do desnog deteta njoj e odgovarati bit 1. Kako
svakom listu odgovara jedinstven put od korena do stabla, to svakom listu moemo da pridruimo
niz bitova koji odgovaraju granama na putu od korena do tog lista. Taj niz bitova se naziva kd
putanje do lista.
Teo: U bilo kom binarnom stablu, kd putanje do lista za listove predstavlja prefiksni kd.
Koristei definicije i primenjujui teoreme vraamo se pomenutoj ideji da za simbole koji
se ee javljaju koristimo krae nizove bita, a za ree due nizove bitova. U tu svrhu uvodimo
teinu kda i slino teinu korenskog stabla.
Def: Neka se svako od slova ai (i=1,2,.,n) iz azbuke simbola A* javlja sa relativnom
frekvencijom f i da duina binarnog niza koji ga predstavlja iznosi li. Tada se teina kda
uvdi kao
w = l1*f1+l2*f2+..+ln*fn
Ista formula vai i za teinu korenskog stabla kod koga je teina lista koji odgovara simbolu
ai jednaka frekvenciji fi, a rastojanje od korena do tog lista je jednako li.
Objedinjenje svih ovih pojmova dobijamo u Huffman-ovim kdovima i Huffman-ovom algoritmu.
Huffman-ovo kdiranje je algoritam entropijskog kdiranja (entropijsko kdiranje je
dodatan postupak kompresije bez unoenja gubitaka) koji se koristi za kompresiju podataka koji
pronalazi optimalni sistem kdiranja objekata zasnovan na relativnoj frekvenciji pojave svakog
objekta u kolekciji.

Teorija grafova

Algoritam je razvio 1953.g. (tada postdiplomac na MIT) David A. Huffman (1925-1999) i


objavio u radu A Method for the Construction of Minimum-Redundancy Codes, za tekstualne
datoteke, a do danas je doivio mnoge promene.
Huffman-ov algoritam za pravljenje Huffman-ovog stabla za simbole s1, s2,.sn, kojima
odgovaraju frekvencije f1, f2,..,fn sastoji se iz sledee procedure.
procedure Huffmanov algoritam
1. Poreati frekvencije u neopadajui redosled
2. Ako su dve najmanje frekvencije fi i fj (fi < fj), obrazovati binarno stablo sa vorovima ili
stablima si i sj kao decom, pri emu je si levo dete, dok frekvenciju poditelja predstavlja suma
frekvencija fi + fj. Staviti broj 0 na granu koja vodi ka levom detetu i broj 1 na granu koja vodi
ka desnom detetu.
3. Ukloniti frekvenciju fi i fj i zameniti ih njihovom sumom fi + fj .
4. Ponavljati korake 1-3 sve dok ne preostane samo jedna frekvencija.
end procedure
Huffmanovo kdiranje koristi kdne tablice koje mora poznavati kder i dekder. Tablice su
ulazni parametar, a mogu se koristiti standardne ili se proraunavaju algoritmom.

Verovatnoa
pojavljivanja znaka
0.25

0.0625

1001

0.0625

1000

0.0625

1010

0.1875

110

0.125

111

0.1875

00

0.0625

1011

Znak

Huffmanov kd
01

Tablica: Primer izraunatog Huffmanovog kda

Zadatak : Optimalnim binarnim prefiksnim kdom kdirati ime i prezime:


SNEZANA STOJANOVIC
Skup karaktera S={S,N,E,Z,A, ,T,O,J,V,I,C}
Ako kdiramo ravnomernim kdom,onda je duina binarne rei kda svakog karaktera bar 4 bita.
Za ime i prezime od 18 karaktera je potrebno 4*18 = 72 bita.
Upotrebom tradicionalnih 7-bitnih/8-bitnih kdova, duina je:
7*18 =126 bitova
8*18 =144 bitova
Ali, Huffman-ovim kdiranjem e se dobiti optimalna duina.

Teorija grafova

Neka je fi broj pojava karaktera i u imenu i prezimenu. Tada je:

fi

bl

1. korak - ubacivanje karaktera u hip prema frekvencijama pojavljivanja, neopadajui redosled.


2. korak
fE=1, fZ=1
Sa hipa se skidaju E, Z (najmanje frekvencije) i zamenjuju u hipu sa EZ, gde je
fEZ = fE + fZ = 2
Isti korak se ponavlja i za parove bl,T J,V I,C
Otuda,tablica glasi:

fi

EZ

blT

JV

IC

3. korak = formiranje segemenata stabla


EZ je otac ija dva sina E, Z (bez obzira koji sin je levi, a koji desni) i dalje
blT je otac ija dva sina bl, T
JV je otac ija dva sina J, V
IC je otac ija dva sina I, C
Daljim preureivanjem hipa (koraci 1-3), dobijaju se redom tablice ( i segmenti drveta redom):

fi

EZblT

JVIC

SO

EZblT

JVIC

SO

NA

Teorija grafova

fi

fi

fi

EZblTJVIC

SO

NA

EZblTJVIC

SONA

10

EZblTJVICSONA

fi

18

Ako hip ostane samo sa jednim lanom, taj lan je koren kdnog stabla Huffman-ovog kda.
18
EZblTJVICSONA
0

1
10
SONA

8
EZblTJVIC

0
2
EZ

4
EZblT

4
JVIC

1
2
blT

0
2
JV

1
4
SO

1
27
IC

0
2
S

6
NA

1
2
O

0
3
N

1
3
A

Teorija grafova

1
1
E

1
Z

1
bl

1
T

1
1
J

1
V

1
I

1
C

Dakle,tablica kdova glasi:

karakter

bl

kd

0000

1000

0100

1100

0010

1010

0110

1110

001 101

011

111

SNEZANA STOJANOVIC

fi

bl

Broj bitova za ime i prezime je:


f1*l1 + . . . + f12*l12= 1*4 + . . . + 2*3 = 92 bita, gde se uoava optimalnija duina.

Zakljuak
Povodom osobine optimalnosti, vano je istai i da je pokazano da je Huffman-ovo
kdiranje najefikasniji kompresioni metod u svojoj klasi, a to je klasa preslikavanja karaktera
eksterne azbuke neke tekstualne koleracije u bitove za poznatu frekvenciju pojave svakog
karaktera eksterne azbuke. Ako verovatnoa pojave svakog simbola ima uniformnu distribuciju, a
broj simbola je stepen dvojke, Huffman-ovo kdiranje je kodiranje binarnim blokovima.
Prednosti Huffman-ovog algoritma:

Jednostavnost implementacije i brzina.


8

Teorija grafova

Provodi kompresiju bez gubitaka.


Huffmanov algoritam je besplatan, bez licenciranja (za razliku od aritmetikog kodiranja)

Nedostaci Huffman-ovog algoritma:

Efikasnost zavisi o statistikoj prirodi slike.


Huffman-ovo kdiranje je vremenski spor proces, jer se odvija u dva koraka. Prvo je
potrebno napraviti statistiku analizu slike, a onda se pristupa procesu kdiranja. Ovaj
nedostatak ne postoji kad se koriste gotove Huffmanove tablice.
Kdovi kdiranog niza podataka su razliite duine to dekderu oteava detekciju zadnjeg
bita pojedinog kda. Ukoliko negde doe do greke, u dekderu e nastati rekonstruirana
slika koja je neupotrebljiva.

Literatura
[1] Vladimir Balti, Teorija grafova, FON, Beograd 2008
[2] Drago Cvetkovi, Teorija grafova i njene primene, Nauna knjiga, Beograd, 1990
[3] http://poincare.matf.bg.ac.rs
[4] Wikipedia, free encyclopedia http://sr.m.wikipedia.org

You might also like