6. Elsőbbségi (prioritásos) sor



Hasonló dokumentumok
Elsőbbségi (prioritásos) sor

16. Az AVL-fa. (Adelszon-Velszkij és Landisz, 1962) Definíció: t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: Pl.:

(A TÁMOP /2/A/KMR számú projekt keretében írt egyetemi jegyzetrészlet):

1. ALGORITMUSOK MŰVELETIGÉNYE

VÉLETLENÍTETT ALGORITMUSOK. 1.ea.

21. Adatszerkezetek Az adattípus absztrakciós szintjei Absztrakt adattípus (ADT) Absztrakt adatszerkezet (ADS) Egyszerű adattípusok Tömbök

Kétoldali hibás Monte Carlo algoritmus: mindkét válasz esetén hibázhat az algoritmus, de adott alsó korlát a hibázás valószínűségére.

Innen. 2. Az. s n = 1 + q + q q n 1 = 1 qn. és q n 0 akkor és csak akkor, ha q < 1. a a n végtelen sor konvergenciáján nem változtat az, ha

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

VII. A határozatlan esetek kiküszöbölése

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

MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA)

A figurális számokról (IV.)

3. SOROZATOK. ( n N) a n+1 < a n. Egy sorozatot (szigorúan) monotonnak mondunk, ha (szigorúan) monoton növekvő vagy csökkenő.

Buborékrendezés: Hanoi Tornyai: Asszimptótikus fv.ek: Láncolt ábrázolás: For ciklussal:

( a b)( c d) 2 ab2 cd 2 abcd 2 Egyenlőség akkor és csak akkor áll fenn

Matematika I. 9. előadás

Villamos gépek tantárgy tételei

Hiba! Nincs ilyen stílusú szöveg a dokumentumban.-86. ábra: A példa-feladat kódolási változatai

10.M ALGEBRA < <

V. Deriválható függvények

Számsorozatok. 1. Alapfeladatok december 22. sorozat határértékét, ha. 1. Feladat: Határozzuk meg az a n = 3n2 + 7n 5n létezik.

Kalkulus II., második házi feladat

Algoritmusok és adatszerkezetek gyakorlat 07

A biostatisztika alapfogalmai, konfidenciaintervallum. Dr. Boda Krisztina PhD SZTE ÁOK Orvosi Fizikai és Orvosi Informatikai Intézet

Algoritmuselmélet 2. előadás

2. gyakorlat - Hatványsorok és Taylor-sorok

Kalkulus I. Első zárthelyi dolgozat szeptember 16. MINTA. és q = k 2. k 2. = k 1l 2 k 2 l 1. l 1 l n 6n + 8

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Feladatok és megoldások a 11. heti gyakorlathoz

1 k < n(1 + log n) C 1n log n, d n. (1 1 r k + 1 ) = 1. = 0 és lim. lim n. f(n) < C 3

NUMERIKUS SOROK II. Ebben a részben kizárólag a konvergencia vizsgálatával foglalkozunk.

Sorozatok A.: Sorozatok általában

Nevezetes sorozat-határértékek

Kvantum párhuzamosság Deutsch algoritmus Deutsch-Jozsa algoritmus

2. fejezet. Számsorozatok, számsorok

Sorozatok, határérték fogalma. Függvények határértéke, folytonossága

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

BIOMATEMATIKA ELŐADÁS

A statisztikai vizsgálat tárgyát képező egyedek összességét statisztikai sokaságnak nevezzük.

Pályázat címe: Pályázati azonosító: Kedvezményezett: Szegedi Tudományegyetem Cím: 6720 Szeged, Dugonics tér

Statisztika 1. zárthelyi dolgozat március 18.

A függvénysorozatok olyanok, mint a valós számsorozatok, csak éppen a tagjai nem valós számok,

Rendezések. Összehasonlító rendezések

15. A VERSENYRENDEZÉS

FANTASZTIKUS KOMBINATORIKA. Adva van n különböző elem. A kiválasztás sorrendje számít VARIÁCIÓ. mateking.hu

Kupac adatszerkezet. 1. ábra.

f (M (ξ)) M (f (ξ)) Bizonyítás: Megjegyezzük, hogy konvex függvényekre mindig létezik a ± ben

SZÁMELMÉLET. Vasile Berinde, Filippo Spagnolo

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

Függvényhatárérték-számítás

Statisztika 1. zárthelyi dolgozat március 21.

Matematikai statisztika

NÉMETH LÁSZLÓ VÁROSI MATEMATIKA VERSENY 2013 HÓDMEZŐVÁSÁRHELY OSZTÁLY ÁPRILIS 8.

KAOTIKUS VAGY CSAK ÖSSZETETT? Labdák pattogása lépcsôn

Amortizációs költségelemzés

Rudas Tamás: A hibahatár a becsült mennyiség függvényében a mért pártpreferenciák téves értelmezésének egyik forrása

2.5. A lineáris kongruencia egyenlet.

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

Numerikus sorok. Kónya Ilona. VIK, Műszaki Informatika ANALÍZIS (1) Oktatási segédanyag

3. Sztereó kamera. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

A szórások vizsgálata. Az F-próba. A döntés. Az F-próba szabadsági fokai

ALGEBRA. egyenlet megoldásait, ha tudjuk, hogy egész számok, továbbá p + q = 198.

2. egy iskola tanulói, a változók: magasságuk cm-ben, súlyuk (tömegük) kilóban; 3. egy iskola tanulói, a változó: tanulmányi átlaguk;

Statisztikai hipotézisvizsgálatok

képzetes t. z = a + bj valós t. a = Rez 5.2. Műveletek algebrai alakban megadott komplex számokkal

18. Differenciálszámítás

REOIL. növeli a transzformátorok élettartamát.

1. Írd fel hatványalakban a következõ szorzatokat!

Bevezető analízis II. példatár

I. FEJEZET BICIKLIHIÁNYBAN

Kombinatorika. Variáció, permutáció, kombináció. Binomiális tétel, szita formula.

Gyakorló feladatok II.

Lineáris kódok. u esetén u oszlopvektor, u T ( n, k ) május 31. Hibajavító kódok 2. 1

17. Tördelőtáblák (Hasítótáblák)

min{k R K fels korlátja H-nak} a A : a ξ : ξ fels korlát A legkisebb fels korlát is:

1. A radioaktivitás statisztikus jellege

Kidolgozott feladatok a nemparaméteres statisztika témaköréből

24. tétel A valószínűségszámítás elemei. A valószínűség kiszámításának kombinatorikus modellje.

Matematika B4 I. gyakorlat

A G miatt (3tagra) Az egyenlőtlenségek két végét továbbvizsgálva, ha mindkét oldalt hatványozzuk:

Az iparosodás és az infrastrukturális fejlődés típusai

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

Lajkó Károly Kalkulus I. példatár mobidiák könyvtár

Diszkrét matematika II., 3. előadás. Komplex számok

Ingatlanfinanszírozás és befektetés

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

FELADATOK A KALKULUS C. TÁRGYHOZ

Egy lehetséges tételsor megoldásokkal

A FUNDAMENTÁLIS EGYENLET KÉT REPREZENTÁCIÓBAN. A függvény teljes differenciálja, a differenciális fundamentális egyenlet: U V S U + dn 1

Debreceni Egyetem, Közgazdaság- és Gazdaságtudományi Kar. Feladatok a Gazdasági matematika I. tárgy gyakorlataihoz. Halmazelmélet

n akkor az n elem összes ismétléses ... k l k 3 k 1! k 2!... k l!

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

Haladó rendezések. PPT 2007/2008 tavasz.

Rendezés. 1. Példa: Legyen A=R, és a reláció a kisebb < jel. Az a b reláció azokat a számpárokat jelenti, amelyekre fennáll az a<b összefüggés.

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

I. Függelék. A valószínűségszámítás alapjai. I.1. Alapfogalamak: A valószínűség fogalma: I.2. Valószínűségi változó.

7. el adás Becslések és minta elemszámok fejezet Áttekintés

Analízis feladatgy jtemény II.

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

Átírás:

6. Elsőbbségi (prioritásos) sor Közapi fogalma, megjeleése: pl. sürgősségi osztályo a páciesek em a beérkezési időek megfelelőe, haem a sürgősség mértéke szerit kerülek ellátásra. Az operációs redszerekbe a prioritásos jobok feldolgozása is hasoló elv alapjá törtéik. Keressük azt az adatszerkezetet, amelybe az elsőbbségi sor típus tárolása hatékoy módo lehetséges. Ez azt jeleti, hogy szereték, ha az elsőbbségi sor műveleteit a lehető leggyorsabba tudák végrehajtai. Jó lee olya struktúrát találi, amelybe a beérkező beteg elhelyezése, illetve az ellátásra következő pácies kiválasztása (együttese miél rövidebb időt vee igéybe. (Milye elredezésbe ültessük le őket a váróterembe? A válasz em triviális, általába egy kezdő em is ismeri, oha a veremről, sorról már tudja, hogy hogya ézek ki.) 6.. ADT Az egyszerűség kedvéért a P prioritásos sor típusba csak az egyes elemek prioritását tesszük be, az elemet magát em. Így a sorba csak N-beli elemek vaak.. Műveletek Eze műveletek elevezése más köyvekből Empty: P Üres Create IsEmpty: P L Üres? Empty? Isert: P N P Sorba Equeue Max: P N Első Prior / Első Elem MaxPrior DelMax: P P N Sorból Serve / Dequeue. Megszorítások: D Max = D DelMax = P \ {Empty} 3. Axiómák: p P-re, N. IsEmpty(Empty) vagy p = Empty IsEmpty(p). IsEmpty(p) p = Empty 3. IsEmpty(Isert(p,) 4. Max(p) = DelMax(p), ahol a -es idex a pár második kompoesét jelzi. 5. Isert(DelMax(p)) = p 6. IsEmpty(DelMax(p) ) Max(p) Max(DelMax(p) ) 7. Max(p) DelMax(Isert(p,) = p Max(Isert(p,) = 8. < Max(p) Max(Isert(p,) = Max(p) 9. DelMax(Isert(Empty,) = (Empty, 0. Max(Isert(Empty,) = Megjegyzés: A 4.-8. axiómákál feltettük, hogy IsEmpty(p).

6.. ADS és reprezetációs szit A két potot együtt tárgyaljuk, ugyais meg kell vizsgáli, hogy milye reprezetációval tudjuk leghatékoyabbá tei a típus műveleteit. A külöböző megvalósítási módok pedig külöböző szerkezeti tulajdoságokat eredméyezek, melyekkel az ADS-szit foglalkozik. A következőkbe láti fogjuk, hogy bármely megvalósítást is választjuk, az Empty és IsEmpty műveletek Θ() hatékoyságúak, ezért midig csak a többi művelet hatékoyságát vizsgáljuk.. Megvalósítás: Redezetle tömbbe kerülek az elemek, pl. a beírás sorredjébe. ) ) k max = k jelzi a midekori elemszámot. Az egyes típusműveletek hatékoysága (T( az összehasolítások számát jelöli): Isert (A[..],t): Ha a tömb ics tele, akkor k értékét öveljük -el, A[k] értékét t-re állítjuk. T( = Θ(). Max (A[..]): Ha a sor em üres, akkor egy MaxKer-rel megoldható a feladat. T( = = Θ(. DelMax (A[..]): A maximális és egybe törledő elem megkeresése az előzőek alapjá törtéik. Ha i a legagyobb elem idexe, akkor a törléshez A[i] megkapja A[k] értékét, k értéke pedig -el csökke. T( = Θ(. Isert (A[..],t) Max (A[..]) DelMax (A[..]) k = k := k + A[k] := t MaxKer (A[..k],i) Retur(A[i]) MaxKer (A[..k],i) t := A[i] A[i] := A[k] k := k Retur(t) Megjegyzés: Ha T( em korlátozódik az összehasolítások számára, haem általába végrehajtási időt jelöl, a feti agyságredek akkor is jók. Javítás: Nem evezhetjük új megvalósítási módak az alábbiakat, az előzőhez képest csak új változót vezetük be: maxh maxh midig a maximális elem idexe (helye)

Az így módosított stuktogramok: Isert (A[..],t) Max (A[..]) DelMax (A[..]) H I B A k = k := k + A[k] := t t > A[maxh] maxh := k SKIP Retur(A[maxh]) H I B A t := A[maxh] A[maxh] := A[k] k := k MaxKer (A[..k],maxh) Retur(t) A műveletigéyek: Isert: változatlaul T( = Θ(), mivel maxh karbatartása itt egyetle (feltételes) értékadással megoldható. Max: T( = Θ(), itt tehát javítottuk! DelMax: T( = Θ(, mert a (eleve megjelölt) maximum törlése utá a maxh karbatartásához újra végre kell hajtai egy MaxKer-t.. Megvalósítás: Redezett tömbbe helyezzük el az elemeket. A maximális elem midig az utolsó. Haszáljuk ki azt, hogy egy redezett tömbbe egy elemet logaritmikus (=biáris) kereséssel lehet megtaláli. Ha a keresett elem ics a tömbbe, akkor a logaritmikus keresés jelzi ezt és ebbe az esetbe a keresés idexeiek végső helyzete alapjá meg lehet modai, hogy hol lee a keresett elem helye (HF!). Oda be is szúrhatjuk az elemet, ha a tőle jobbra lévőket eggyel jobbra léptetjük. Az alábbi LogKer (A[..k],t,i) tehát úgy működik, hogy ha a t elem ics A[..k]-ba, akkor az i idex értéke jelzi, hogy hol lee a helye, azaz hová kell beszúri. Isert (A[..],t) Max (A[..]) DelMax (A[..]) k = LogKer (A[..k],t,i) j := k j i A[j+] := A[j] Retur(A[k]) t := A[k] k := k Retur(t) j := j A[i] := t k := k +

Megjegyzés: Ez a speciális Isert már egy javítási kísérlet eredméye ahhoz a változathoz képest, amely lieárisa keresi meg a beszúrás helyét. A műveletigéyekre térve, itt az Isert miatt MT(-et, vagy AT(-et kell számoluk. A logaritmikus keresés átlagos összehasolítás száma kb. log, tehát agyságredbe log, a léptetés pedig átlagosa k/ elemre voatkozik, ahol k a tömb aktuális elemszáma, ami pedig átlagos esetbe /-ek vehető. A léptetések várható száma így kb. /4, ami agyságredbe lieáris. Isert: Max: AT( = Θ(log + Θ( = Θ(. MT( = Θ( (yilvávalóa T( = Θ(). DelMax: T( = Θ(). Az Isert és a DelMax műveletek hatékoyságára pot fordított eredméyt kaptuk, mit az előző reprezetációba. Ez a második ábrázolás érezhetőe kevesebbet dolgozik, de agyságredbe ics köztük külöbség. 3. Megvalósítás: Egy kupac tulajdoságú fát töltük fel az elemekkel. A kupac (heap) egy olya majdem teljes, balra tömörített biáris fa (tehát az utolsó szit jobb oldaláról esetleg hiáyozhatak elemek), amelybe mide belső elem agyobb, vagy egyelő, mit a gyermekei. De a számítástechikai megvalósítás ebbe az esetbe sem lesz poiteres, ajálott a fát szitfolytoosa egy tömbbe raki. (Jegyezzük meg: a heap-et midig tömbbe ábrázoljuk, em pedig poiterese!) Ha az eredetileg meglévő kapcsolatokat lácokét behúzzuk a vektor egyes elemei között, akkor láthatjuk, hogy a tömb sem em redezetle, sem em teljese redezett, haem egy bizoyos kompromisszumos részbe redezettség áll fe: az elemek az egyes lácok meté redezettek, mivel csökkeő sorozatokat alkotak. max Az egyes típusműveleteket itt csak ituitív szite adjuk meg, potos megírásukra később kerül sor (lásd: kupacredezés / heap sort). Isert: Az új csúcs beszúrásával meg kell tartauk a kupac tulajdoságot, ezért az új csúcs az utolsó sorba, balról az első üres helyre, vagy ha az utolsó sor teljes, akkor egy új sor bal szélére kerül. De még redbe kell hozi a csúcsok értékeiek viszoyát, tehát elemcseréket végzük alulról a gyökér felé haladva a megfelelő élsorozato (tömbél a megfelelő láco, ameddig szükséges. Nézzük eek működését az alábbi kupaco, ha a 5-ös értéket szúrjuk be:

A műveletigáy ekkor átlagos ill. legrosszabb esetbe is a fa magasságával lesz egy agyságredbe, ami elemű fa esetébe log. Tehát AT( = MT( = Θ(log. Max: Ebbe az esetbe csak kiolvassuk a gyökérbe lévő értéket. DelMax: A gyökérbe lévő értéket kiolvassuk, majd a szitfolytoos bejárás sorá utolsókét bejárt (jobb alsó) értéket rakjuk a gyökérbe, az utolsó csúcs kitörlődik. A kupac tulajdoság megtartása érdekébe a gyökérbe került értéket elemcserékkel lesüllyesztjük (midig a agyobb gyerekkel cserélve) a megfelelő helyre. Az alábbi kupaco láthatjuk eek működését: A műveletigéy itt is a fa magasságával aráyos: AT( = MT( = Θ(log. -----

Foglaljuk össze egy hatékoysági táblázatba a külöböző megvalósítások jellemzőit: Redezetle tömb. Redezetle tömb. Redezett tömb Kupac Isert Θ() Θ() Θ(log + Θ( = Θ( Θ(log DelMax Θ( Θ( Θ() Θ( log Max Θ( Θ() Θ() Θ() A Max műveletre a javítás utá már midhárom reprezetációba kostas lépésszámot kaptuk. A két fotosabb művelet az Isert és a DelMax a kupac reprezetációba kiegyesúlyozott módo hatékoyabb, mit az első kettőbe. Ezt akkor látjuk igazá, ha egy olya művelet sorozatot hajtuk végre, amelybe vegyese szerepel beszúrás és a maximum törlése. 6.3. A prioritásos sor felhaszálása redezésre Találtuk egy agyo egyszerű és talá meglepő algoritmust, amely az említett két műveletet egyelő számba hajtja végre működése sorá. RedPrior (s) Empty (p) s ε Read (s,x) Isert (p,x) IsEmpty (p) DelMax (p,x) Write (x) Az eljárás az s szekveciális iputról beolvasott értékeket sorba beteszi egy (kezdetbe üres) elsőbbségi sorba. Azutá pedig sorba kiveszi az elemeket az elsőbbségi sorból. A kiírt sorozat yílvá redezett lesz! Ez a redezés mide bizoyal meglepő, hisze ics bee egymásba ágyazott ciklus. Eek az a magyarázata, hogy az algoritmus szitjé el va takarva előlük a felhaszált adatszerkezet megvalósításáak módja. (Érdekes HF és vizsgakérdés aak a meggodolása, hogy milye redező algoritmust kapuk az egyes reprezetációk eseté!) Elemezzük most eek az algoritmusak a műveletigéyét midhárom reprezetáció eseté! Eek sorá a bevezetett műveletek egész sorát vesszük számba, ezáltal úgyevezett amortizációs elemzést hajtuk végre. Mivel csak agyságredekkel foguk számoli, midegy, hogy az összehasolítások maximális vagy átlagos számát határozzuk meg, hisze a két meyiség midig azoos agyságredű. Az alábbi elemzés alapjá joggal modhatjuk, hogy az elsőbbségi sorak kupaccal megvalósítása hatékoyabb a másik két ábrázolási módál!

Reprezetációtól függetleül igaz, hogy MT ( = T Empty + MT Isert ( + k = MT DelMax ( és AT(-re is hasoló összefüggés igaz. Számítsuk ki a feti kifejezés agyságredjét a három reprezetációba.. Redezetle tömb. Redezett tömb 3. Kupacos ábrázolás MT( = Θ() + Θ() + Θ( = Θ( MT( = Θ() + Θ( + Θ() = Θ( MT ( = Θ() + Θ(log + log +... + log Azt állítjuk, hogy eek az összegzések az eredméye agyságredbe azaz: MT( = Θ( log. ) ) log -es, Bizoyítás: A kiszámítadó összeget, mit a log x függvéy beírt téglalapjaiak területösszegét, tekitsük itegrál közelítő összegek. Ekkor + + log + log +... + log log x dx = l x dx = l = + x l x x = ( + )l( + ) ( + ) +,44 l l l = log = Θ( log [ ] [ ] = log +