Mérnöki modellalkotás Az elmélettől a gyakorlatig. IP forgalomtovábbítás: Prefix fák és fabejárások

Hasonló dokumentumok
Mérnöki modellalkotás Az elmélettől a gyakorlatig. Prefix fák tömörítése: a dinamikus programozás

Az internet ökoszisztémája és evolúciója

Adatszerkezetek 7a. Dr. IványiPéter

7 7, ,22 13,22 13, ,28

Az internet ökoszisztémája és evolúciója. Gyakorlat 2

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Kombinációs hálózatok egyszerűsítése

Kupac adatszerkezet. 1. ábra.

Algoritmusok és adatszerkezetek gyakorlat 07

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

Információs Technológia

Információs Technológia

Házi feladatok megoldása. Automaták analízise, szintézise és minimalizálása. Házi feladatok megoldása. Házi feladatok megoldása

10. előadás Speciális többágú fák

Rekurzív algoritmusok

Improprius integrálás

IX. A TRIGONOMETRIA ALKALMAZÁSA A GEOMETRIÁBAN

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

Improprius integrálás

Példa 30 14, 22 55,

A programozás alapjai 1 Rekurzió

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 28.

Környezetfüggetlen nyelvek

Az LR elemző felépítése. Léptetés. Redukálás. Kiegészített grammatika. Mit kell redukálni? Kiegészített grammatika. elemző. elemző.

Elemi adatszerkezetek

Környezetfüggetlen nyelvek

Jobbra és balraforgatás

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

5. Logaritmus. I. Nulladik ZH-ban láttuk: 125 -öt kapjunk. A 3 5 -nek a 3. hatványa 5, log. x Mennyi a log kifejezés értéke?

Mátrixok és determinánsok

Rendezettminta-fa [2] [2]

Házi feladatok megoldása. Veremautomaták. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 12. gyakorlat

Adatszerkezetek és algoritmusok

Adatbázisok elmélete 4. előadás

Országos Középiskolai Tanulmányi Verseny 2010/2011 Matematika I. kategória (SZAKKÖZÉPISKOLA) Az 1. forduló feladatainak megoldása

Bevezetés a programozásba. 3. Előadás Algoritmusok, tételek

Házi feladatok megoldása. Harmadik típusú nyelvek és véges automaták. Házi feladatok megoldása. VDA-hoz 3NF nyelvtan készítése

Ptolemaios-tétele, Casey-tétel, feladatok

Mesterséges intelligencia 3. laborgyakorlat

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Z600 Series Color Jetprinter

Formális nyelvek. Aszalós László, Mihálydeák Tamás. Számítógéptudományi Tanszék. December 6, 2017

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Lineáris egyenletrendszerek

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

4. Hatványozás, gyökvonás

Absztrakt adatstruktúrák A bináris fák

4: Az IP Prefix Lookup Probléma Bináris keresés hosszosztályok alapján. HálózatokII, 2007

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Programozás alapjai II. (7. ea) C++

MODERIRANA RAZLIČICA

FIGYELEM! Ez a kérdőív az adatszolgáltatás teljesítésére nem alkalmas, csak tájékoztatóul szolgál!

Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

GAZDASÁGI MATEMATIKA I.

Algoritmusok és adatszerkezetek II.

17. A 2-3 fák és B-fák. 2-3 fák

Doka apróalkatrész-tároló láda

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

5. A logaritmus fogalma, a logaritmus azonosságai

Jegyzőkönyv. Termoelektromos hűtőelemek vizsgálatáról (4)

Hierarchikus adatszerkezetek

2. Visszalépéses keresés

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Eredeti használati utasítás 11/2010. A jövőbeni használatra megőrzendő. Doka tároló paletta. a zsaluzás szakértői

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Alhálózatok. Bevezetés. IP protokoll. IP címek. IP címre egy gyakorlati példa. Rétegek kommunikáció a hálózatban

MAGYAR. A motor és a tápegység közötti kéteres kábel vezetékelésének utasításai. m mm x 0, x 1,50

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Gyakori elemhalmazok kinyerése

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

VI.8. PITI FELFEDEZÉSEK. A feladatsor jellemzői

Érdekes informatika feladatok

Numerikus módszerek 2.

Rekurzió. Dr. Iványi Péter

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek 1. Dr. Iványi Péter

4. Legyen Σ = {0, 1}. Adjon meg egy determinisztikus véges automatát, amely azokat a szavakat fogadja el,

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Kifejezések. Kozsik Tamás. December 11, 2016

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

TERMOELEKTROMOS HŰTŐELEMEK VIZSGÁLATA

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Középiskolás leszek! matematika. 13. feladatsor

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Átírás:

Mérnöki modelllkotás Az elmélettől gykorltig IP forglomtováítás: Prefix fák és fejárások

Trtlom IP ímzés és forglomtováítás Legspeifikus ejegyzés keresése (LPM) LPM prefix fákkl, prefix fák trnszformáiój és ekvivleniáj Fejárások: preorder-postorder

IP ímzés és forglomtováítás

IPv4: ímzés IPv4 ím: 32 it unsigned integer, 4294967296 (2 32 ) dr egyedi zonosító De pl. 2554524783 ím nehezen olvshtó deimális jelölés: 2554524783 ináris:00000 00000000 00 dotted deiml : 8 itenként feltördelve négy yte-os számr: 52.66.244. 52 66 244 00000 00000000 00 2554524783

IPv4: lhálóztok IPv4 ím = lhálózt-zonosító + hoszt-zonosító IP ímek soportji lhálózti prefixe (sunet) gyűjthetőek Az lhálózt egyetlen IP prefixen látszik z Internetről (ggregáió) Az lhálózt-zonosító hossz: prefix hossz 2.0.0.0/8 2.0.0.0/6 2..0.0/6 2.2.0.0/6... 2.254.0.0/6 2.255.0.0/6 2..0.0/2 2..8.0/2 2..6.0/2... 2..248.0/2 2.254.0.0/7 2.254.28.0/7 2..8.0/24 2..9.0/24 2..0.0/24... 2..4.0/24 2..5.0/24

IPv4 lhálóztok: CIDR CIDR: ruglmsn kilkíthtó lhálóztok Vrile Length Sunet Msking (VLSM) CIDR nottion 92.68.92.0/8 Prefix hossz 8 it (z MSB-től) ináris 000000000000000 00000000 Sunet msk (ináris) 000000 00000000 Sunet msk (dotted) 255.255.92.0 Egyedi IP ímek szám Első IP ím 92.68.92. 2 32-8 =2 4 =6384 (vlóján 2-vel kevese, trtomány első és z utolsó IP íme nem hsznált) ináris 000000000000000 0000000 Utolsó IP ím 92.68.255.254 ináris 000000000 0

IPv4 forglomtováítás Minden somg trtlmzz él IP ímét Forglomtováítási tál (Forwrding Informtion Bse, FIB) minden routeren minden ismert prefixre egy ejegyzés z útvonlon következő router íme (next-hop) 92.68..0/24 FIB: 0.0.0.0/8 0.3.0.2 0.3.0.2/24 0.2.0.2/24 FIB: 0.4.0.0/6 0.2.0.2 0.4..0/24 0.4.5.0/24 Forrás 92.68..37 CSOMAG Célím: 0.4.9.29 Cél 0.4.9.29 0.4.9.0/24

A legspeifikus prefix Adott IP ímre tö FIB-ejegyzés illeszkedhet Egy router FIB-jének részlete IP prefix/prefix hossz A prefix inárisn Next-hop IP íme 92.68.0.0/6 0000000000.0.0. 92.68.0.0/7 0000000000 0.0.0.2 92.68.64.0/8 0000000000 0 0.0.0.3 92.68.96.0/9 0000000000 0 0.0.0.4 Longest Prefix Mth (LPM): preferált legspeifikus ejegyzés legtö iten illeszkedő prefix (MSB-től szmítv) legszűke lhálózt, mi trtlmzz ímet

LPM: péld Egy router FIB-jének részlete IP prefix/prefix hossz A prefix inárisn Next-hop IP íme 92.68.0.0/6 0000000000.0.0. 92.68.0.0/7 0000000000 0.0.0.2 92.68.64.0/8 0000000000 0 0.0.0.3 92.68.96.0/9 0000000000 0 0.0.0.4 A 92.68..=x.x.0000000.00000000 ímre z első két ejegyzés illik, 3. és 4. pirossl jelzett pozíiókn eltér: 2. preferált A 92.68.95.2=x.x.00.00000000 ímre 3. ejegyzés, 92.68.97.3=x.x. 00000.0000000 ímre 4. LPM

A LPM jelentősége Az IP somgtováítás legonyolult része IP ore router: LPM tö mint 550 ezer FIB ejegyzés felett minden somgr (40 Git/se ~ 50 millió LPM/se) PKT IN interfész Heder prsing IP router dt plne LPM lookup PKT pro: TTL-- hdr hksum PKT OUT interfész interfész interfész IP FIB

LPM prefix fákkl

FIB keresés: LPM A LPM megvlósítás nem triviális Nív megközelítés: végigkeresni z összes ejegyzést FIBen és megjegyezni legtö iten illeszkedőt O(N) komplexitás, h ejegyzések szám N A niv módszer hsználhttln

A (ináris) prefix f LPM keresésre optimlizált dtstruktúr A prefix f következő műveleteket támogtj: keresés: dott mintár legtö iten illeszkedő prefix megtlálás és hozzá tárolt ímke kiolvsás eszúrás: (prefix ímke) páros eillesztése törlés: prefix és hozzá trtozó ímke törlése módosítás: prefix ímkéjének módosítás

A prefix f A next-hopokt zonosítsuk egyedi ímkékkel és tároljuk külön egy next-hop index tálán FIB IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0 Next-hop index Címke Next-hop 0.0.0. Prefix f 0.0.0.2 0.0.0.3

A prefix f Gyökér Üres pont IP ím első itje IP ím második itje Élimke IP ím hrmdik itje Belső pont IP ím negyedik itje IP ím ötödik itje Levélpont Címkével ellátott pont

A prefix f Prefix=pont vezető út élímkéinek sorozt A fán prefixeknek megfelelő pontokt prefixhez trtozó next-hop ímkével jelöljük FIB IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0 Next-hop index Címke Next-hop 0.0.0. 0.0.0.2 0.0.0.3

A prefix f Prefix=pont vezető út élímkéinek sorozt A fán prefixeknek megfelelő pontokt prefixhez trtozó next-hop ímkével jelöljük FIB IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0 Next-hop index Címke Next-hop 0.0.0. 0.0.0.2 0.0.0.3

A prefix f Prefix=pont vezető út élímkéinek sorozt A fán prefixeknek megfelelő pontokt prefixhez trtozó next-hop ímkével jelöljük FIB IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0 Next-hop index Címke Next-hop 0.0.0. 0.0.0.2 0.0.0.3

A prefix f Az üres levélpontokt elhgyhtjuk, z üres pontok muttó pointerek: NULL Kise f, kevese memóri FIB IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0 Next-hop index Címke Next-hop 0.0.0. 0.0.0.2 0.0.0.3

A prefix f: keresés Keressük 84...=0... IP ímre legspeifikus tláltot prefix fán Strt gyökérpontól, output érvénytelen output: érvénytelen 0 0 84...=0... IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0

A prefix f: keresés A 84...=0... keresési ím első itje értékű, így gyökéről z -es élímkével ellátott élen lépünk következő pont 84...=0... 0 IP prefix Prefix Címke 0 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0

A prefix f: keresés Az új pontn nins ímke, output változtln A második it 0, így z 0 élímkén hldunk tová következő pont 84...=0... 0 output: érvénytelen 0 IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0

A prefix f: keresés A hrmdik it ismét, z élímkén hldunk to következő pont Az új pont ímkéje, ezért: output 84...=0... 0 IP prefix Prefix Címke 0 output: 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0

A prefix f: keresés A 4. és 5. it, z élímkéken egy, ímkével ellátott pont jutunk, ezért: output A kpott pont levél, így kilépés: output = 84...=0... 0 0 IP prefix Prefix Címke 60.0.0.0/3 0 96.0.0.0/4 00 96.0.0.0/3 0 84.0.0.0/5 0 output:

A prefix f: keresés Algoritmus: sorn olvssuk keresett IP ím itjeit, és z olvsott itnek megfelelően mindig 0 vgy élímkével ellátott élen lépünk tová egy következő pont Az iteráió közen z output változón tároljuk legutoljár olvsott ímkét (kezdeten: érvénytelen) H levélpontot vgy NULL pointert tlálunk: kilépés A kpott ímkéhez (output) kiolvsuk next-hop indexől megfelelő next-hop ímet és visszdjuk Esetünken z LPM eredmény: 0.0.0.2

A prefix f: keresés LPM 69.2.75.54=0000... IP ímre Nem tlálkozunk érvényes ímkéjű ponttl: output = érvénytelen 0 0 NULL 0

A prefix f: keresés LPM 78.4.66.9=00... IP ímre Utolsó látott ímke:, output = 0 0 0 NULL

A prefix f Tétel: prefix fán LPM keresés, eillesztés, törlés és módosítás, legfelje O(W) lépésen végez, hol W ímtér itszélessége (IPv4: 32, IPv6: 28) A fánk nnyi szintje vn, hány itől áll ím Áltlánosságn: N prefix tárolás esetén LPM keresés, eillesztés, törlés és módosítás műveletek komplexitás O(log N) A táláztos tárolási módszerrel z összes prefixen végig kellene keresni: O(N) lépés

Prefix fák trnszformáiój A ináris prefix f nem minden eseten ideális túl sok pontot/pointert trtlmz, nem fér gyors memóriá (SRAM he) 32 RAM elérés ngy seességnél gond lehet A prefix fák nem egyediek: keressünk dott FIBhez htékony prefix fákt! FIB ggregáió: prefix f konverziój kise, de z eredetivel keresés szempontjáól teljesen ekvivlens formá

Prefix fák ekvivleniáj Jelölés: legyen LPM(F, ) = x, h F FIBen IP ímre pontosn x next-hop ímke LPM Def.: FIB FIB 2, h minden 32 ites IPv4 ímre: LPM(FIB, ) = LPM(FIB 2, ) 0 0 0

FIB ggregáió Bináris prefix f 0 0 Optimlizált ináris prefix f 0 Bináris normlizált prefix f 00 0 Szinttömörített normlizált prefix f 0 0

Fejárások

Fejárások A fejárások segítségével egyszerű formán definiálhtók fákon végzett trnszformáiók Preorder/postorder ejárások: F ímkézett f összes pontján egy f függvény lklmzás A különség pontok sorrendje Az láikn sk legegyszerű esettel fogllkozunk ( prentless fák, állpotmentes preorder )

Jelölés Egyszerűsítés: F ímkézett f és gyökérpontj p = root(f) jelölésen felserélhető F pont l/jo oldli részfáj: left(f), right(f) F ímkéje: lel(f) Az egyszerűsítés mitt tehát például lel(f) = lel(root(f)) Most z üres pontokt is tároljuk root(f) left(f) Prefix f F lel(f) right(f)

Fejárások: preorder Preorder ejárás: preorder(f, f, i) először F gyökerére lklmzzuk f-et mjd l és jo oldli részfákr rekurzívn f vissztérési értéke tová gyermekeknek mint kezdeti érték ejárás kezdeti értékét meg kell dni! preorder(f, f, i): x f(f, i) preorder(left(f), f, x) preorder(right(f), f, x)

Preorder: péld Legyen f következő: f(f, i): lel(f) i return (i+) Legyen F prefix f z lái: Értékeljük ki preorder(f, f, ) ejárást

Preorder: péld preorder(f, f, i): x f(f, i) preorder(left(f), f, x) preorder(right(f), f, x) f(f, i): lel(f) i return (i+) ) F gyökerének ímkéje f vissztérési értéke: 2 preorder(left(f), f, 2): vissztérési érték l oldli részf kezdőértéke rekurzíó részfák 2

Preorder: péld preorder(f, f, i): x f(f, i) preorder(left(f), f, x) preorder(right(f), f, x) f(f, i): lel(f) i return (i+) 2) left(f) gyökerímkéje 2 f vissztérési értéke: 3 preorder(left(f), f, 3): l oldli f ímkéje 3 3 3 2 3 levélpont: rekurzió leáll preorder(right(f), f, 3): jo oldli f ímkéje 3

Preorder: péld preorder(f, f, i): x f(f, i) preorder(left(f), f, x) preorder(right(f), f, x) f(f, i): lel(f) i return (i+) 3) Vissz F gyökerére és preorder(right(f), f, 2) A preorder ejárásunk érdekes dolgot sinál Minden ponton eállítj pont szintjét fán! 3 4 3 2 2 2 3 3 3 4 4 3

Fejárások: postorder A preorder ellentéte: most f függvényt elő lklmzzuk részfákon rekurzívn és sk ezután gyökéren Postorder ejárás: postorder(f, f) lklmzzuk f-et l és jo részfákr rekurzívn, mjd hívjuk f-et gyökéren most nins vissztérési- és kezdőérték postorder(f, f): postorder(left(f), f) postorder(right(f), f) f(f)

Postorder: péld Legyen most f következő: f(f): if (F lef): lel(f) else: lel(f) lel(left(f)) + lel(right(f)) + H nins továi részf (F levélpont) ímke Ellenkező eseten gyermekek ímkéinek összege plusz Legyen F prefix f ugynz, mint elő Értékeljük ki postorder(f, f) ejárást

Postorder: péld postorder(f, f): postorder(left(f), f) postorder(right(f), f) f(f) f(f): if (F lef): lel(f) else: lel(f) lel(left(f)) + lel(right(f)) + ) F mindkét részfáján rekurzió postorder(left(f), f): továi rekurzió két részfán f először left(left(f)) és right(left(f)) levélen hívódik mindkét levél ímkéje: left(left(f)) right(left(f))

postorder(f, f): postorder(left(f), f) postorder(right(f), f) f(f) Postorder: péld 2) Mivel gyermekei ejárv, f függvény hívódik left(f) részfán z új ímke: + gyermekek ímkéinek összege = 3 f(f): if (F lef): lel(f) else: lel(f) lel(left(f)) + lel(right(f)) + left(f) 3

postorder(f, f): postorder(left(f), f) postorder(right(f), f) f(f) Postorder: péld 3) Rekurzívn ejárjuk right(f) részfát 4) Legutoljár gyökérponton értékeljük ki f függvényt z új ímke: +3+5=9 A ejárás minden pont eírj hozzá trtozó részf pontjink számát! f(f): if (F lef): lel(f) else: lel(f) lel(left(f)) + lel(right(f)) + 9 3 5 3

Érdekes fejárások Részfák mélysége (leghossz út levélig): postorder(f, f) z lái f függvénnyel f(f): if (F lef): lel(f) else lel(f) mx[lel(left(f)), lel(right(f))] + Aritmetiki kifejezés kiértékelése: postorder(f,g) g(f): if (F='+'): lel(f) lel(left(f))+lel(right(f)) if (F='*'): lel(f) lel(left(f))*lel(right(f)) 2 * 3 + 7 + 3 * 7 postorder(f,g) 6 7 2 3 2 3

Érdekes fejárások F visszállíthtó konvertálás sztringre (szerilizálás): postorder(f, f) f(f): if (F is lef): lel(f) '('. lel(f). ')' else: lel(f) '('. lel(left(f)). lel(f). lel(right(f)). ')' (((3)2(4))(5)) 3 2 5 4 postorder(f, f) ((3)2(4)) (5) (3) (4)

Érdekes fejárások Legyenek f és g függvények z láik f(f): if (F lef): lel(f) lel(f) lel(left(f)) + lel(right(f)) + g(f, i): lel(f) lel(f) / i return i Mit trtlmznk ekkor z lái F'' ímkéi? F' postorder(f, f) F'' preorder(f, g, lel(f')) Először előállítjuk pontokn részfák méretét, mjd leosztjuk ímkéket z egész f méretével Részfák reltív mérete z egész fához képest