Algoritmi in podatkovne strukture 2. Številska drevesa

Σχετικά έγγραφα
KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 22. oktober Gregor Dolinar Matematika 1

Funkcijske vrste. Matematika 2. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 2. april Gregor Dolinar Matematika 2

Diferencialna enačba, v kateri nastopata neznana funkcija in njen odvod v prvi potenci

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 5. december Gregor Dolinar Matematika 1

Tretja vaja iz matematike 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 14. november Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 21. november Gregor Dolinar Matematika 1

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 10. december Gregor Dolinar Matematika 1

Booleova algebra. Izjave in Booleove spremenljivke

MATEMATIČNI IZRAZI V MAFIRA WIKIJU

Numerično reševanje. diferencialnih enačb II

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 12. november Gregor Dolinar Matematika 1

13. Jacobijeva metoda za računanje singularnega razcepa

NEPARAMETRIČNI TESTI. pregledovanje tabel hi-kvadrat test. as. dr. Nino RODE

Kontrolne karte uporabljamo za sprotno spremljanje kakovosti izdelka, ki ga izdelujemo v proizvodnem procesu.

PONOVITEV SNOVI ZA 4. TEST

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

1. Definicijsko območje, zaloga vrednosti. 2. Naraščanje in padanje, ekstremi. 3. Ukrivljenost. 4. Trend na robu definicijskega območja

Delovna točka in napajalna vezja bipolarnih tranzistorjev

SKUPNE PORAZDELITVE VEČ SLUČAJNIH SPREMENLJIVK

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 15. oktober Gregor Dolinar Matematika 1

DISKRETNA FOURIERJEVA TRANSFORMACIJA

Spoznajmo sedaj definicijo in nekaj osnovnih primerov zaporedij števil.

Algebraične strukture

1 Fibonaccijeva stevila

Osnove elektrotehnike uvod

Kotne in krožne funkcije

Na pregledni skici napišite/označite ustrezne točke in paraboli. A) 12 B) 8 C) 4 D) 4 E) 8 F) 12

IZPIT IZ ANALIZE II Maribor,

Izpeljava Jensenove in Hölderjeve neenakosti ter neenakosti Minkowskega

Algoritmi nad grafi v jeziku linearne algebre

II. LIMITA IN ZVEZNOST FUNKCIJ

8. Diskretni LTI sistemi

Reševanje sistema linearnih

Splošno o interpolaciji

Podobnost matrik. Matematika II (FKKT Kemijsko inženirstvo) Diagonalizacija matrik

8. Posplošeni problem lastnih vrednosti

Posplošena električna dominacija

1. Έντυπα αιτήσεων αποζημίωσης Αξίωση αποζημίωσης Έντυπο Πίνακας μεταφράσεων των όρων του εντύπου...

Kotni funkciji sinus in kosinus

Definicija. definiramo skalarni produkt. x i y i. in razdaljo. d(x, y) = x y = < x y, x y > = n (x i y i ) 2. i=1. i=1

V tem poglavju bomo vpeljali pojem determinante matrike, spoznali bomo njene lastnosti in nekaj metod za računanje determinant.

matrike A = [a ij ] m,n αa 11 αa 12 αa 1n αa 21 αa 22 αa 2n αa m1 αa m2 αa mn se števanje po komponentah (matriki morata biti enakih dimenzij):

Navadne diferencialne enačbe

Matematika 1. Gregor Dolinar. 2. januar Fakulteta za elektrotehniko Univerza v Ljubljani. Gregor Dolinar Matematika 1

Osnove matematične analize 2016/17

Transformator. Delovanje transformatorja I. Delovanje transformatorja II

Dragi polinom, kje so tvoje ničle?

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

Matematika. Funkcije in enačbe

p 1 ENTROPIJSKI ZAKON

Matrike. Poglavje II. Matrika je pravokotna tabela realnih števil. Na primer: , , , 0 1

Analiza I. (študijsko gradivo) Matija Cencelj

vezani ekstremi funkcij

Fazni diagram binarne tekočine

Elementi spektralne teorije matrica

Iskanje najkrajs e poti

REˇSITVE. Naloga a. b. c. d Skupaj. FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost 2. kolokvij 23.

Kvadratne forme. Poglavje XI. 1 Definicija in osnovne lastnosti

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

FAKULTETA ZA STROJNIŠTVO Matematika 4 Pisni izpit 22. junij Navodila

1. izpit iz Diskretnih struktur UNI Ljubljana, 17. januar 2006

Matematika I (VS) Univerza v Ljubljani, FE. Melita Hajdinjak 2013/14. Pregled elementarnih funkcij. Potenčna funkcija. Korenska funkcija.

Diagonalni gra. 1 Predstavitev diagonalnih grafov. Zvone Klun. Maj 2007

Tabele termodinamskih lastnosti vode in vodne pare

1. Trikotniki hitrosti

UPOR NA PADANJE SONDE V ZRAKU

1. TVORBA ŠIBKEGA (SIGMATNEGA) AORISTA: Največ grških glagolov ima tako imenovani šibki (sigmatni) aorist. Osnova se tvori s. γραψ

Lastne vrednosti in lastni vektorji

Matematika vaja. Matematika FE, Ljubljana, Slovenija Fakulteta za Elektrotehniko 1000 Ljubljana, Tržaška 25, Slovenija

VEKTORJI. Operacije z vektorji

Funkcije več spremenljivk

10. poglavje. Kode za overjanje

Iterativno reševanje sistemov linearnih enačb. Numerične metode, sistemi linearnih enačb. Numerične metode FE, 2. december 2013

Funkcije dveh in več spremenljivk

MATEMATIKA ZA BIOLOGE

Najprej zapišemo 2. Newtonov zakon za cel sistem v vektorski obliki:

Enačba, v kateri poleg neznane funkcije neodvisnih spremenljivk ter konstant nastopajo tudi njeni odvodi, se imenuje diferencialna enačba.

Integralni račun. Nedoločeni integral in integracijske metrode. 1. Izračunaj naslednje nedoločene integrale: (a) dx. (b) x 3 +3+x 2 dx, (c) (d)

Linearne preslikave. Poglavje VII. 1 Definicija linearne preslikave in osnovne lastnosti

Poglavje 7. Poglavje 7. Poglavje 7. Regulacijski sistemi. Regulacijski sistemi. Slika 7. 1: Normirana blokovna shema regulacije EM

Inverzni problem lastnih vrednosti evklidsko razdaljnih matrik

5.1 Predpogojevanje. K 1 Ax = K 1 b,

S programom SPSS se, glede na število ur, ne bomo ukvarjali. Na izpitu so zastavljena neka vprašanja, zraven pa dobimo računalniški izpis izračunov. T

Arjana Žitnik. Rešene naloge iz kolokvijev in izpitov pri predmetu

Kvantni računalnik. Avtor: Miha Muškinja Mentor: prof. dr. Norma Susana Mankoč Borštnik

Dodatna poglavja iz linearne algebre za 1. letnik finančne matematike na FMF. Primož Moravec

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

3.1 Reševanje nelinearnih sistemov

Frekvenčna analiza neperiodičnih signalov. Analiza signalov prof. France Mihelič

Poliedri Ines Pogačar 27. oktober 2009

Logika in množice c

Povezanost. Izbrana poglavja iz diskretne matematike. 17. maj Univerza v Ljubljani Fakulteta za matematiko in fiziko Finančna matematika

Vektorski prostori s skalarnim produktom

1. VAJA IZ TRDNOSTI. (linearna algebra - ponovitev, Kroneckerjev δ i j, permutacijski simbol e i jk )

Matematika 2. Diferencialne enačbe drugega reda

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

Univerza v Mariboru. Fakulteta za logistiko MATEMATIKA. Univerzitetni učbenik

8. Navadne diferencialne enačbe

Transcript:

Algoritmi in podatkovne strukture 2 Številska drevesa osnove, PATRICIA, LC Trie Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 1

Osnove rekurzivna podatkovna struktura ključi so tako veliki, da ne moremo na enkrat primerjati dveh ključev (npr. nizi črk ali nizi bitov) zato organiziramo podatkovno strukturo tako, da rekurzivnost ni definirana na podlagi celotnih ključev, ampak na osnovi ene črke ključa primerjave nas vodijo od korena do lista, le da so sedaj primerjave narejene po bitih elemente shranimo v liste, medtem ko notranja vozlišča uporabimo samo za usmerjanje poti (za razdelitev na podmnožice) velikost črke ključa je poljubna: črka abecede (A..Ž), nukleotid v DNK (A, C, G, T), en bit (bitno/binarno primerjanje) v splošnem imamo abecedo Σ takšni strukturi rečemo trie, ker je uporabna za iskanjeretrieval (E. Fredkin) šteli bomo število poizvedovanj po črki ključa (dostopov) in ne primerjav Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 2

Primer imamo binarne (bitne) črke abecede {0,1} in imejmo bitno predstavitev naslednjih ključev: Imejmo ključe črka bitna predstavitev črka bitna predstavitev A 00001 C 00011 E 00101 G 00111 H 01000 I 01001 J 01010 K 01011 L 01100 M 01101 N 01110 O 01111 P 10000 R 10010 S 10011 X 11000 Z 11010 {A,C,E,G,H,I,L,M,R,S} Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 3

Gradnja črke jemljemo po vrsti od prve naprej ob vsaki črki razdelimo množico na dva ( Σ ) podmnožic, dokler ni v podmnožici samo še en element Definirali smo invarianco podatkovne strukture. Imamo ključe: {A,C,E,G,H,I,L,M,R,S} A C E G H I L M R S Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 4

Iskanje iščimol=01100: pogledamo prvi bit in je0, zato gremo v levo podstrukturo (pod-trie) pri naslednjih dveh bitih gremo obakrat desno, kjer je njuna vrednost1 na koncu še dvakrat levo in smo našlil iščimoj=01010: pogledamo prve tri bite in gremo levo, desno in levo pri četrtem bitu ne moremo desno, ker tam ni poddrevesa, torejjni v strukturi Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 5

Iskanje malce drugače če nadaljujemo z iskanjem po obstoječi poti levo, pridemo do ključai ključije sosed ključaj; celo najbljižji sosed toda, če iščemo ključk=01011 tudi najdemo ključi, ki pa ni več najbližji sosed Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 6

Iskanje soseda takšnemu iskanju rečemo tudi iskanje najboljšega ujemanja ali najboljšega odgovora v obeh primerih smo našli levega soseda kako v splošnem najdemo levega soseda poiščimo še: P =10000,O=01111 ini=01001 Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 7

Iskanje levega, desnega in najbližjega soseda iskanje levega soseda, ali najmanjšega elementa v strukturi, ki je že večji od iskanega elementa: Zadnjič, ko sem šel v strukturi desno, pojdi levo in potem kar se dâ desno. in iskanje desnega soseda največjega elementa v strukturi, ki je še manjši od iskanega elementa kaj pa iskanje najbližjega soseda? Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 8

Operacije običajne operacije: Najdi,Dodaj inizloci dodatne operacije: NajdiManj, NajdiVec in posplošena operacija: Najdi, ki sedaj najde najbolj podobni element v strukturi Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 9

Vstavljanje Invarianca: črke jemljemo po vrsti od prve naprej ob vsaki črki razdelimo množico na dva ( Σ ) podmnožic, dokler ni v podmnožici samo še en element vstavljanje J = 01010 je preprosto vstavljanjeo=01111: namestondodamo notranje vozlišče, ki ima listanino vstavljanjez=11010: pri iskanju mesta naletimo nax namestoxdodajamo nova notranja vozlišča, dokler ne dobimo vozlišča, kjer sexinz razlikujeta Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 10

Brisanje Invarianca: črke jemljemo po vrsti od prve naprej ob vsaki črki razdelimo množico na dva ( Σ ) podmnožic, dokler ni v podmnožici samo še en element postopek je obraten postopku vstavljanja brišemoc: brišemoc ker je notranje vozlišče nepotrebno, ga nadomestimo s preostalim listoma brišemox,z,s: brišemo vse predhodnikes, ki imajo samo en element v poddrevesu preostali element je lahko samo brat (zakaj?) Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 11

Brisanje algoritem pobriši element if (brat IS list) zamenjaj starša z bratom while (stari starš HAS samo enega otroka) samenjaj starega starša s staršem Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 12

Analiza recimo, da je naš ključ velik m črk v našem primeru je dolg 5 bitnih črk in od tu bomo analizirali primer, ko imamo samo binarno abecedo v vsakem primeru potrebujemo m = O(m) dostopov (primerjav), da se sprehodimo do lista pri običajnem iskanju, kaj pa pri posplošenem iskanju? velikost strukture je v najslabšem primeru 2n 1 + n(m lgn) = O(nm) vozlišč. Zakaj? največ lahko rokujemo z M = 2 m različnimi elementi, ki jim pravimo univerzalna množica. Primeri univerzalnih množic: naše črke-ključi tvorijo množico velikosti 2 5 = 32 vsi IPv4 naslovi na svetu tvorijo množico 2 32 = 4.294.967.296 IP naslovov vsa cela števila, s katerimi (običajno) računamo, tvorijo množico 2 64 = 18.446.744.073.709.551.616 števil,... Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 13

cela števila lahko obravnavamo kot elemente z enovitim ključem, ali kot elemente s ključem sestavljenim iz črk (binarne/bitne) abecede npr. namesto po bitih, po zlogih na primer, ko n postaja vedno večji ter se po velikosti približuje M, postane O(m) iskanje povsem primerljivo z iskanji v običajnih podatkovnih strukturah Vprašanje: imamo univerzalno množico velikosti M in njeno podmnožico velikosti n < M/2. Koliko bitov potrebujemo, da predstavimo podmožico? Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 14

Analiza povzetek vse operacije imajo enak čas O(m) prostor je 2n 1 + n(m lgn) = O(nm) kaj je najbolj motečega v naši strukturi (prostorsko)? Kakšne ideje za izboljšave? Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 15

Primer imamo binarne (bitne) črke abecede {0,1} in imejmo bitno predstavitev naslednjih ključev: Imejmo ključe črka bitna predstavitev črka bitna predstavitev A 00001 C 00011 E 00101 G 00111 H 01000 I 01001 J 01010 K 01011 L 01100 M 01101 N 01110 O 01111 P 10000 R 10010 S 10011 X 11000 Z 11010 {A,C,E,G,H,I,L,M,R,S} Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 16

Primer A C E G H I L M R S opazujmo predvsem naslednje tri vrste vozlišč: a) zunanja, b) notranja z enim naslednikom in c) notranja z 2 naslednikoma. POZOR: dostop do vsakega vozlišča stane eno enoto! kolikšno je število vozlišč a), b) in c)? čemu potrebujemo vozlišča b) in čemu vozlišča c)? kakšna je razlika v uporabi enih in drugih? ugotovitve so:... Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 17

Stiskanje poti path compression na poti od korena do lista: izpustimo vsa vozlišča, ki imajo samo enega naslednika v preostala vozlišča dodamo informacijo, kateri bit po vrsti naj primerjamo ali koliko bitov naj preskočimo 1 2 3 3 4 4 A C E G 5 5 5 H I L M R S OPAŽANJE: če smo izločili notranja vozlišča v, imajo vsi nasledniki tega vozlišča poljubno vrednost bita, ki ga je predstavljalo opuščeno vozlišče. Zato, ko pridemo do lista, smo našli samo kandidata in moramo še preveriti, ali smo našli iskani ključ ali katerega drugega. Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 18

Stiskanje poti analiza čas: nespremenjen ali boljši prostor: O(n) Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 19

Definicija razreda imamo dve vrsti vozlišč: notranja: hranijo podatke o levem in desnem poddrevesu ter številko primerjanega bita listi: hranijo element vsa vozlišča pa imajo enake metode: iskanje, vstavljanje in izločanje torej naredimo vmesnik z definicijo vseh teh metod in iz njega izpeljemo dva različna razreda definirajte vmesnik in oba razreda za domačo nalogo class Patricia class PatInternal class PatLeaf Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 20

Vstavljanje Invarianca: črke jemljemo po vrsti od prve naprej ob vsaki črki razdelimo množico na dva ( Σ ) podmnožic, dokler ni v podmnožici samo še en element OPAŽANJE: za vsak list velja, da indeksi bitov padajo po poti od korena do lista ko pridemo do lista, ki ne vsebuje vstavljanega elementa, se lahko zgodi: 1. da se ključa elementov razlikujeta v bitu, ki je kasneje (nižje) od lista tedaj samo vstavimo novo notranje vozlišče 2. sicer je potrebno: (a) poiskati prvi bit, na katerem se ključa razlikujeta (zakaj vozlišča za ta bit zagotovo še ni v strukturi?) (b) na to mesto dodati novo notranje vozlišče (prim. zgornje opažanje) (c) kot poddrevesi novega vozlišča nastopata staro poddrevo in list, ki predstavlja vstavljani element časovna zahtevnost ostaja O(m) Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 21

Vstavljanje poenostavitev Invarianca: črke jemljemo po vrsti od prve naprej (za vsak list velja, da indeksi bitov padajo po poti od korena do lista) ob vsaki črki razdelimo množico na dva ( Σ ) podmnožic, dokler ni v podmnožici samo še en element Vedno dodamo notranje vozlišče na mestu lista, le v tem primeru zgornje opažanje ne bo več držalo. Kaj bo posledica? Je takšen pristop pravilen? Nova invarianca: za vsak list velja, da so indeksi bitov po poti od korena do lista različni ob vsaki črki razdelimo množico na dva ( Σ ) podmnožic, dokler ni v podmnožici samo še en element Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 22

Brisanje ter iskanje soseda brisanje je obratna operacija vstavljanju, le da sedaj pobrišemo poleg lista še eno od notranjih vozlišč in sicer tisto, ki je prvi starš brisanemu listu časovna zahtevnost ostaja O(m) kaj v primeru poenostavitve? iskanje sosedov poteka na enak način kot pri običajnem trie kaj pa v primeru poenostavitve? Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 23

Polja in drevesa polja so implicitne podatkovne strukture, kjer do posameznih elementov dostopamo s pomočjo indeksa, ki je izračunljiv iz vrednosti ključa v O(1) času drevesa so eksplicitne podatkovne strukture, kjer do posameznih elementov dostopamo s pomočjo referenc velikost drevesnih struktur je O(n), oziroma toliko, da se shranijo vsi elementi in reference, ki jih pa ni (bistveno) več kot elementov prostor, ki zaseda polje, načeloma ni odvisen od trenutnega števila elementov v strukturi n (ima kdo kakšno idejo, kako se temu izogniti? NAMIG: amortizacijske podatkovne strukture.) Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 24

v splošnem, če imamo univerzalno množico velikosti M in iz nje n elementov, potem: polje: potrebuje O(M) prostora in O(1) časa ter drevo: potrebuje O(n) prostora in O(logn) (O(logm)) časa optimalno: potrebujemo najmanj (M ) lg nlg M n n = n(lgm lgn) = n(m lgn) bitov Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 25

Najboljše od obeh ko je n = O(M) (gosta množica), je smiselneje uporabiti polje in ko je n zelo majhen (redka množica), je smiselneje uporabiti drevo opažanje velja tudi za majhne delčke univerzalne množice IDEJA: uporabili bomo hkrati dve strukturi: polje in drevo, pač glede na lokalno gostoto Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 26

Primer Vzemimo, da imamo naslednje elemente črka bitna predstavitev črka bitna predstavitev A 00001 I 01001 P 10000 X 11000 Z 11010 1 2 2 A I P 4 X Z Zgornji nivoji predstavljajo gosto množico in jih lahko nadomestimo s poljem ter dobimo A I P X 4 Z Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 27

Nivojsko stisnjena drevesa LC tries definirajmo gostoto α in če je na nekem nivoju gostota elementov večja od α, drevo stisnemo še po nivoju postopek: 1. pričnemo s drevesom PATRICIA 2. od korena proti listom se spuščamo po nivojih (plasteh) l, dokler je v plasti več kot α 2 l elementov 3. ko ni več, prejšnje plasti stisnemo in ponovimo korak 2 z novim korenom IZZIV: kako tvoriti optimalno LC drevo? optimizacijski problem Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Številska drevesa osnove, PATRICIA, LC Trie (03) 28