Amortizációs elemzés Alapelv: nem egy-egy művelet lefutási idejét vizsgáljuk, hanem több műveletét együtt, sokszor Eredmény: átlagolt időszükséglet időátlagban.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
MESTERSÉGES INTELLIGENCIA (ARTIFICIAL INTELLIGENCE)
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
Adatszerkezetek Az adatokat két fő csoportra oszthatjuk: egyszerű és összetett adatok.  Az egyszerű adatot egy érték jellemez, tovább nem bontható. (szám,
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Prímtesztelés Témavezető: Kátai Imre Komputeralgebra Tanszék Nagy Gábor:
4. Helyes zárójelezés algoritmusa
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Az összehasonlító rendezések
A verem működése fpga-n
Készítette: Pető László
Papp Róbert, Blaskovics Viktor, Hantos Norbert
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
AVL fák.
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
Regresszióanalízis 10. gyakorlat.
A digitális számítás elmélete
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
Kapacitás, átbocsátóképesség, időalapok, az erőforrás nagyság, átfutási idő, a termelő-berendezések térbeli elrendezése. Átfutási idő számítások.
Egydimenziós tömbökön végezhető műveletek
Excel Függvények Páll Boglárka.
Listák, Vermek és Várakozási Sorok. Vermek Def: Egy sajátos lista amelyben minden beszúrási illetve törlési művelet csak a lista egyik végén történik.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Gráf szélességi bejárása SzB(G,p). Tetszőleges gráf, melyben a p csúcsot választottam kiindulónak: A gráfnak megfelelő fa:
Hogyan fejlesszük ki magunkban a
RADIX bináris számokra ___A___ Szembe 2 mutatóval, ha a felsőnél 1-es, az alsónál 0, akkor csere.
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
Egyenesvonalú (lineáris) adatszerkezetek
Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek,
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Táblázatkezelés KÉPLETEK.
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Dodekaéder Hamilton köre
Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás.
Algoritmusok és Adatszerkezetek Egy kifejezés lengyelformára hozása - bemutató.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Nagy Szilvia 2. Lineáris blokk-kódok II.
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
Algebrai logika Leibniz folytatói a 18. században: Lambert, Segner és mások. 19. sz., Nagy-Britannia: Aritmetikai és szimbolikus algebra. Szimbolikus algebra:
Szimmetrikus titkosítás: DES és társai. DES  Digital Encryption Standard  Alapja az IBM által kifejlesztett titkosítási eljárás (Lucifer, 1974 – 128.
Készítette: Rummel Szabolcs Elérhet ő ség: Linux kezelése.
BFák Kiegyensúlyozott keresőfák
Mediánok és rendezett minták
Piros-fekete fák Beszúrás, ill. törléskor a fa elveszítheti az egyensúlyát. A piros-fekete fák: az egyensúly megtartását biztosítják. +1 bit információ.
Gyorsrendezés Elemzések Változatok.
Változók.
Kapacitás, átbocsátóképesség, időalapok, az erőforrás nagyság, átfutási idő, a termelő-berendezések térbeli elrendezése. Átfutási idő számítások.
1.3 Relációk Def. (rendezett pár) (a1 , a2) := {{a1} , {a1 , a2 }} .
Tanulási görbék.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Adatbázisrendszerek elméleti alapjai 9. előadás
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Informatikai gyakorlatok 11. évfolyam
Algoritmusok és Adatszerkezetek I.
Cache példák 2019 (IMSC).
Előadás másolata:

Amortizációs elemzés Alapelv: nem egy-egy művelet lefutási idejét vizsgáljuk, hanem több műveletét együtt, sokszor Eredmény: átlagolt időszükséglet időátlagban és/vagy műveletek szerinti átlagban Három alapmódszer: Összesítési módszer: egy n műveletből álló sorozat össz-idejére határozunk meg egy T(n) felső korlátot Könyveléses módszer: túlszámlázás, hitel, visszafizetés, mindez az alaphalmaz elemeihez kötve Potenciál módszer: túlszámlázás, hitel, visszafizetés a teljes halmazra vetítve

Összesítési módszer. Pl. veremműveletek n művelet költsége: Verembe(x), Veremből() ideje O(1), n db művelet ideje O(n) TöbbVeremből(k) (Veremből ciklikus hívásával), ideje O(k). Legrosszabb esetben a verem n<=mély, n műveletet hajtunk végre, tehát. n*TöbbVeremből(n) =O(n2)  az eredmény nem eléggé pontos/éles a három művelet nem független egymástól egymás után, üres veremre alkalmazva őket az időszükséglet csupán O(n) l*Verembe,m*Veremből,n*Veremből(k) ha l=m+n*k

Összesítési módszer. Pl. számláló 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 3 0 0 0 0 0 0 1 1 4 0 0 0 0 0 1 0 0 7 0 0 0 0 0 1 0 1 8 0 0 0 0 0 1 1 0 10 0 0 0 0 0 1 1 1 11 0 0 0 0 1 0 0 0 15 0 0 0 0 1 0 0 1 16 0 0 0 0 1 0 1 0 18 0 0 0 0 1 0 1 1 19 0 0 0 0 1 1 0 0 22 0 0 0 0 1 1 0 1 23 0 0 0 0 1 1 1 0 25 0 0 0 0 1 1 1 1 26 0 0 0 1 0 0 0 0 31 növel() i=0 while i<hossz és A[i]=1 A[i]=0 i=i+1 if i<A.hossz then A[i]=1 A növelés költsége a bitmódosítás költségével arányos A[0] minden alkalommal változik A[1] csak minden második alkalommal A[2] minden negyedik … bitszélesség/=log(n) (ha n> akkor ismétlődik) 8 hosszú bitvektor: a számláló

Összesítési módszer. Pl. számláló T(n)= i=0Σlog(n) n/2n<i=0Σ¥n/2n=2n

Könyvelési módszer A műveleteknek „amortizációs költsége” van. amortizációsktsg=ténylegesktsg+hitelletét ténylegesktsg=amortizációsktsg+hitelfelhasználás Hitel>=0, a ténylegesktsg>=számolt ktsg Cél: a teljes műveletsorra hosszfüggetlen felső költségkorlátot adni

Könyvelési módszer. Verem műveletek Verembe: 1 Veremből: 1 TöbbVeremből: min(k,s) Könyveléssel: Verembe: 2 Veremből: 0 TöbbVeremből: 0 Azt kell megmutatni, hogy a fenti könyveléssel az hitelegyenlegünk mindig>=0. Vagyis, a betétkor a túlszámlázást (betétdíjat) a kivétkor használjuk fel. Vagyis bármely műveletsorozat ennél olcsóbb lesz. Világos, hogy a verem tartalma=hitelegyenleg

Könyvelési módszer. Számláló Növel: művelet Rendeljünk 2 költséget az egyes bitek 01 átmenetéhez vagyis az 1-eknek hitelük van, viszont a 0-zás ingyenes Minden futáskor legfeljebb 1 bitet állítunk 1-be, ennek költsége 2. Ezért a könyveléses amortizációs ktsg: T(n)=2n

Potenciál módszer Az előre kifizetett ktsget „potenciálként” kezeli. Potenciálfüggvény:F(D), ahol D egy adatállapot D: adathalmaz, D0: kezdeti állapot ci: az i-ik lépés tényleges ktsge, c’i: az amortizációs ktsge. Ekkor az i-k lépésre: c’i=ci+F(Di)-F(Di-1) A teljes amortizációs ktsg: i=0Σnc’i=i=0Σn(ci+F(Di)-F(Di-1))=i=0Σnci+F(Dn)-F(D0) Azt kell belátni/úgy kell F-t megválasztani, hogy: F(Dn)>=F(D0), ilyenkor a teljes amortizációs ktsg felső korlátja lesz a ténylegesnek mivel nem tudjuk, hogy n mennyi, F(Di)>=F(D0) Teleszkopikus összeg

Potenciál módszer. Verem műveletek Legyen a F potenciálfüggvény a verem elemeinek száma, azaz F(D0)=0. Mivel az elemszám>=0, ezért F(Di)>=0 bármely i-re Verembe: F(Di)-F(Di-1)=1, tényleges ktsg: ci=1, amortizációs ktsg: c’i=ci+F(Di)-F(Di-1)=2. TöbbVeremből: Tfh. k’=min(k,s) objektumot vesz ki a veremből. Potenciálkül:F(Di)-F(Di-1)=-k’, tényleges ktsg: ci=k’, amortizációs ktsg: c’i=ci+F(Di)-F(Di-1)=k’+ -k’=0 Veremből: ugyanez, k’=1 a műveletek amortizációs ktsge: O(1), n műveleté O(n). Mivel F(Di)>=F(D0), ezért a teljes amortizációs ktsg felső korlátja a tényleges ktsgnek, vagyis O(n).

Potenciál módszer. Bináris számláló Legyen a F potenciálfüggvény a számláló 1-es bitjeinek a száma. F(Di)>=0 bármely i-re. Tfh. A „növel” eljárás ti bitet állít 1-ből 0-ba, (1 bitet pedig 0-ból 1-be). Tényleges ktsg: ti(+1). Egyesek száma: bi<=bi-1-ti+1. Potenciálkül: F(Di)-F(Di-1)<=bi-1-ti+1-bi-1=1-ti Amortizációs ktsg: c’i=ci+F(Di)-F(Di-1)<=(ti+1)+(1-ti)=2  A „növel” műveletsorozat amort ktsge felső korlátja a ténylegesének, 1 lépés amort. Ktsge O(1),  a teljes műveletsorozat tényleges költségr O(n) HF: Biz. be, hogy ugyanez igaz akkor, amikor a szló nem 0-ról indult.

Dinamikus táblák Beszúr/Töröl mellett: private Kiterjeszt/Összehúz Azt fogjuk belátni, hogy mindezek mellett Beszúr/Töröl hosszútávon O(1) költségű. Tfh. Az elemek egyforma szélesek Kitöltöttségi arány (a=n/m): üres tábla mérete 0, a=0 A meggondolások a tényleges megvalósítástól függetlenek…

Csak beszúró dinamikus táblák Elemi beszúrás (átmásolás, végén beszúrás). Tfh. az időigény az elemi beszúrásokkal arányos Beszúr(x) if max=0 then helyfoglalás max=1 if max=méret then 2*méret helyfoglalás tábla átmásolás tábla felszabadítás méret=méret*2 x beszúrása méret=méret+1

Csak beszúró dinamikus táblák Beszúrás ktsge: ci=1, ha nincs kiterjesztés, ilyenkor ci=(i-1)+1=i. Legrosszabb eset becslés ezek alapján O(n), ami n lépésre O(n2) időigényt ad. (nem eléggé éles becslés) Kiterjesztés csak akkor, ha i-1= kettőhatvány… Amortizációs költség: i=0Σnci<=n+i=0Σlogn2i<n+2n=3n 3 Miért? Egy új elem 3-szor fizet. 1. Első beszúráskor 2. Kiterjesztéskor a tábla felső felének átmásolásakor 3. Kiterjesztéskor a tábla korábban megtöltött alsó felének átmásolásakor.

Potenciálelemzés A F potenciálfüggvény legyen 0 a kiterjesztés után, és legyen a táblaméret a kiterjesztés előtt (legyen miből állni a kiterjesztést) F(T)=2*T.méret-T.max  F(T0)=0 Ha nincs kiterjesztés  c’i=ci+Fi-Fi-1=1+(2*méreti-maxi)-(2*méreti-1-maxi-1)=1+(2*méreti-maxi)-(2*(méreti-1)-maxi)=3 Ha van kiterjesztés (méret=max) c’i=ci+Fi-Fi-1 =méreti+(2*méreti-maxi)-(2*méreti-1-maxi-1)= méreti +(2*méreti-(2*méreti-2))-(2*(méreti-1)-(méreti-1))=3 Kiterjeszthető/összehúzható tábla elemzés: HF.