1. ALGORITMUSOK MŰVELETIGÉNYE

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

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

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

Matematika I. 9. előadás

VÉLETLENÍTETT ALGORITMUSOK. 1.ea.

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

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

V. Deriválható függvények

EGYENLETEK ÉS EGYENLETRENDSZEREK MEGOLDÁSA A Z n HALMAZON. egyenletrendszer megoldása a

Matematika B4 I. gyakorlat

2. Hatványsorok. A végtelen soroknál tanultuk, hogy az. végtelen sort adja: 1 + x + x x n +...

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.

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.

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ó.

BIOMATEMATIKA ELŐADÁS

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

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

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

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

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

Kalkulus II., második házi feladat

Nevezetes sorozat-határértékek

1. A radioaktivitás statisztikus jellege

Az átlagra vonatkozó megbízhatósági intervallum (konfidencia intervallum)

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli beugró kérdések. Készítette: Szántó Ádám Tavaszi félév

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

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

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

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

Gyakorló feladatok II.

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

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.

1. A KOMPLEX SZÁMTEST A természetes, az egész, a racionális és a valós számok ismeretét feltételezzük:

Komplex számok. d) Re(z 4 ) = 0, Im(z 4 ) = 1 e) Re(z 5 ) = 0, Im(z 5 ) = 2 f) Re(z 6 ) = 1, Im(z 6 ) = 0

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

A tárgy címe: ANALÍZIS 1 A-B-C (2+2). 1. gyakorlat

10.M ALGEBRA < <

2. fejezet. Számsorozatok, számsorok

Pl.: hányféleképpen lehet egy n elemű halmazból k elemű részhalmazt kiválasztani, n tárgyat hányféleképpen lehet szétosztani k személy között stb.?

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

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

Matematikai statisztika

SZÁMELMÉLET. Vasile Berinde, Filippo Spagnolo

EGYENLETEK ÉS EGYENLETRENDSZEREK MEGOLDÁSA A Z n HALMAZON. egyenletrendszer megoldása a Z

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

Egy lehetséges tételsor megoldásokkal

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

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

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

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

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

(d) x 6 3x 2 2 = 0, (e) x + x 2 = 1 x, (f) 2x x 1 = 8, 2(x 1) a 1

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

1 n. 8abc (a + b) (b + c) (a + c) 8 27 (a + b + c)3. (1 a) 5 (1 + a)(1 + 2a) n + 1

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

Feladatok és megoldások a 11. heti gyakorlathoz

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

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Határértékszámítás. (szerkesztés alatt) Dr. Toledo Rodolfo április A határátmenet és a műveletek 12

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

2.5. A lineáris kongruencia egyenlet.

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;

Általános taggal megadott sorozatok összegzési képletei

Sorozatok A.: Sorozatok általában

Ingatlanfinanszírozás és befektetés

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

194 Műveletek II. MŰVELETEK A művelet fogalma

Villamos gépek tantárgy tételei

I. FEJEZET BICIKLIHIÁNYBAN

Sorozatok október 15. Határozza meg a következ sorozatok határértékeit!

8.1. A rezgések szétcsatolása harmonikus közelítésben. Normálrezgések. = =q n és legyen itt a potenciál nulla. q i j. szimmetrikus. q k.

3.4. gyakorlat. Matematika B1X február 1819.

INJEKTIVITÁS ÉS EGYÉB TULAJDONSÁGOK MEGOLDOTT FELADATOK

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

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

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.

XXVI. Erdélyi Magyar Matematikaverseny Zilah, február II.forduló -10. osztály

BIOSTATISZTIKA ÉS INFORMATIKA. Leíró statisztika

Eseme nyalgebra e s kombinatorika feladatok, megolda sok

4. Test feletti egyhatározatlanú polinomok. Klasszikus algebra előadás NE KEVERJÜK A POLINOMOT A POLINOMFÜGGVÉNNYEL!!!

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

Függvények növekedési korlátainak jellemzése

GAZDASÁGI MATEMATIKA 1. ANALÍZIS

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Feladatok megoldása. Diszkrét matematika I. Beadandó feladatok. Bujtás Ferenc (CZU7KZ) December 14, feladat: (A B A A \ C = B)

Populáció. Történet. Adatok. Minta. A matematikai statisztika tárgya. Valószínűségszámítás és statisztika előadás info. BSC/B-C szakosoknak

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

Kutatói pályára felkészítı modul

A félév során előkerülő témakörök

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

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

A paramétereket kísérletileg meghatározott yi értékekre támaszkodva becsülik. Ha n darab kisérletet (megfigyelést, mérést) végeznek, n darab

3. Számelmélet. 1-nek pedig pontosan három. Hány pozitív osztója van az n számnak? OKTV 2012/2013; I. kategória, 1. forduló

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

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

f(n) n x g(n), n x π 2 6 n, σ(n) n x

Bizonyítások. 1) a) Értelmezzük a valós számok halmazán az f függvényt az képlettel! (A k paraméter valós számot jelöl).

Hosszmérés finomtapintóval 2.

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

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Átírás:

1 ALGORITMUSOK MŰVELETIGÉNYE Az ismertetésre kerülő adatszerkezeteket és algoritmusokat midig jellemezzük majd a hatékoyság szempotjából Az adatszerkezetek egyes ábrázolásairól megállapítjuk a helyfoglalásukat, az algoritmusokál pedig a műveletigéyt becsüljük, midkettőt az iput adatok méretéek függvéyébe Általába megelégszük midkét adat agyságredbe közelítő értékével A agyságredi értékek közelítő ereje aál agyobb, miél agyobb méretű adatokra értelmezzük azokat Amit látjuk majd, egy sajátos matematikai határértékfogalmat vezetük be és alkalmazuk a hatékoyságra iráyuló számításaikba A műveletigéy számításakor eleve azzal a közelítéssel élük, hogy csak az algoritmus meghatározó műveleteit vesszük számításba Egy műveletet meghatározóak (domiásak) moduk, ha a többihez képest jeletős a végrehajtási ideje, valamit a végrehajtásaiak száma Általába kijelölhető egyetle meghatározó művelet, amelyre a számítást elvégezzük A műveletigéyt a kiszemelt művelet végrehajtásaiak számával adjuk meg, mivel az egyes műveletek végrehajtási ideje gépről-gépre változhat A lépésszám közelítéssel kiszámolt agyságredje gyakorlati tapasztalatok szerit is jól jellemzi az algoritmus téyleges futási idejét 11 A buborékredezés műveletigéye A redezés általáos feladata jól ismert A tömbökre megfogalmazott változat egyik legkorábbi (kevéssé hatékoy) megoldása a buborékredezés Az eljárás működéséek alapja a szomszédos elemek cseréje, ameyibe az elől álló agyobb, mit az utáa következő Az első meetbe a szomszédos elemek cseréjével felbuborékoltatjuk a legagyobb elemet a tömb végére A következő iterációs lépésbe ugyaezt tesszük az eggyel rövidebb tömbbe, és így tovább Utoljára még a tömb első két elemét is megcseréljük, ha szükséges Az ( 1)- edik iteráció végére elérjük, hogy az elemek agyság szerit övekvő sorba követik egymást A redezés algoritmusa az 11 ábrá látható (Az egyszerűség kedvéért a Csere műveletét em botottuk három értékadásra) 11 ábra A buborékredezés algoritmusa 1

Az algoritmus műveleteit két kategóriába sorolhatjuk Az egyikbe tartozak a ciklusváltozókra voatkozó műveletek, a másikba pedig az A[1] tömb szomszédos elemeiek összehasolítása és cseréje Nyilvávaló, hogy az utóbbiak a meghatározó műveletek Egyrészt végrehajtásuk léyegese agyobb időt vesz igéybe, mit a ciklust admiisztráló utasításoké (külööse, ha a tömb elemeiek mérete jeletős), másrészt midkét utasítás a belső ciklusba va (még ha a csere feltételhez kötött is), így végrehajtásukra mide iterációs lépésbe sor kerülhet Ezért az összehasolítások, illetve a cserék számát fogjuk számoli Ha ezt a dötést meghoztuk, érdemes az algoritmusba szereplő ciklusokat tömörebb, áttekithetőbb formába, for-cikluskét újra felíri Ez a változat látható az 1 ábrá 1 ábra Buborékredezés (for-ciklusokkal) A számolást az egyszerűség kedvéért külö-külö végezzük Nézzük először az összehasolítások Ö(-el jelölt számát A külső ciklus magja ( 1)-szer hajtódik végre, a belső ciklus eek megfelelőe redre 1,,, 1 iterációt eredméyez Mivel a két szomszédos elem összehasolítása a belső ciklusak olya utasítása, amely midig végrehajtódik, ezért Ö( ( 1) ( ) 1 ( 1) Az 13 potba precíze bevezetjük majd azokat az aszimptotikus fogalmakat és jelöléseket, amelyekkel a műveletigéy agyságredjét jellemezzük Most elégedjük meg ayival, hogy általába elegedő az, ha csak a kifejezés domiás agyságredű tagját tartjuk meg, az együttható elhagyásával Az összehasolítások számára eek megfelelőe azt modjuk majd, hogy értéke agyságredbe és ezt így jelöljük: Ö( Megjegyezzük, hogy az összehasolítások száma a bemeő adatok bármely permutációjára ugyaayi Az elemzett műveletek végrehajtási száma a legtöbbször azoba változó az adatok függvéyébe Ilyekor elsősorba a végrehajtások maximális és átlagos számára vagyuk kívácsiak, de a miimális végrehajtási számot is gyakra meghatározzuk, bár eek általába ics jeletősége Ha T(-el jelöljük a műveletigéyt, akkor aak miimális, maximális és átlagos értékét redre mt(, MT( és AT( jelöli Vizsgáljuk meg most a cserék Cs(-el jelölt számát Ez a szám már em álladó, haem a bemeő adatok függvéye Nevezetese, a cserék száma megegyezik az A[1] tömb elemei között feálló iverziók számával: ) Cs( iv( A) Valóba, mide csere potosa egy iverziót szütet meg a két szomszédos elem között, újat viszot em hoz létre A redezett tömbbe pedig ics iverzió Ha a tömb eleve redezett,

akkor egyetle cserét sem kell végrehajtai, így a cserék száma a legkedvezőbb esetbe ulla, azaz mcs ( 0 A legtöbb cserét akkor kell végrehajtai, ha mide szomszédos elempár iverzióba áll, azaz akkor, ha a tömb éppe fordítva, agyság szerit csökkeő módo redezett Ekkor MCs( ( 1) ) A cserék átlagos számáak meghatározásához először is feltesszük, hogy a redezedő számok mide permutációja egyformá valószíű (Az átlagos műveletigéy számításához midig ismeri kell a bemeő adatok valószíűségi eloszlását, vagy legalább is feltételezéssel kell éli arra ézve!) Az általáosság megszorítása élkül vehetjük úgy, hogy az 1,,, számokat kell redezük, ha elfogadjuk azt a szokásos egyszerűsítést, hogy a redezedő értékek mid külöbözők A cserék számáak átlagát yilvávalóa úgy kapjuk, hogy az 1,,, elemek mide permutációjáak iverziószámát összeadjuk és osztjuk a permutációk számával: 1 ACs (! pperm ( iv( p), ahol Perm( az elem összes permutációiak halmazát jelöli Az összeg meghatározásáál ehézségbe ütközük, ha megpróbáljuk azt megmodai, hogy adott -re háy olya permutáció va, amelybe i számú iverzió található ( 0 i ( 1) ) Ehelyett célszerű párosítai a permutációkat úgy, hogy midegyikkel párba állítjuk az iverzét, pl az p = 143 és a p R = 341 alkot egy ilye párt Egy ilye párba az iverziók száma együtt éppe a -t teszi ki, pl iv ( 143) iv(341) 4 6 Az állítás igazolására godoljuk lehetséges meg, hogy egy permutációba két elem potosa akkor áll iverzióba, hogy ha az iverz permutációba ics közöttük iverzió Írjuk le godolatba mid az! permutációt kétszer egymás mellé egy-egy oszlopba, a modott párosításak megfelelőe Ekkor mide sorba a, így két permutáció iverzióiak száma együtt iv( p) iv( p ACs(! R! )! ( 1) 4 A cserék számáak átlaga tehát a legagyobb érték fele, de agyságredbe ez így is -es Az elemzés eredméye az, hogy a buborékredezés a legrosszabb és az átlagos esetbe is midkét meghatározó művelete szerit agyságredbe -es algoritmus 1 A Haoi toryai probléma megoldásáak műveletigéye A következő algoritmus, amelyet elemzük, a Haoi toryai probléma megoldása A probléma régről ismert Adott három rúd és az első darab, felfelé egyre csökkeő méretű korog, ahogya az 13 ábrá látható = 4 esetére A feladat az, hogy a korogokat át kell helyezi az A rúdról a B-re, a C rúd felhaszálásával, oly módo, hogy egyszerre csak egy korogot szabad mozgati és csak ála agyobb korogra, vagy üres rúdra lehet áthelyezi ) 3

A feladatak több külöböző megoldása va, köztük olya (iteratív) heurisztikus algoritmusok, amelyek a mesterséges itelligecia területére tartozak Itt a szokásos rekurzív algoritmust ismertetjük 13 ábra Haoi toryai probléma Számítógépes programok, algoritmusok eseté akkor beszélük rekurzióról, hogyha az adott eljárás a működése sorá meghívja ömagát, vagyis a számítás egyik lépésekét ömagát hajtja végre, más bemeeti adatokkal, paraméterekkel Sok haszos algoritmus rekurzív szerkezetű, és többyire az ú oszd meg és uralkodj elv alapjá működek Eek a léyege az, hogy a feladatot több részfeladatra botjuk, amelyek egyekét az eredetihez agyo hasolóak, de kisebb méretűek, így köyebbe megoldhatók A defiiált működések az lesz a hatása, hogy a részfeladatokat hasolóa, további egyre kisebb és kisebb részekre osztja az eljárás, amíg el em éri az elemei feladatok megadott méretét A már kellőe kicsi részfeladatokat közvetle módo megoldjuk Ez az elemi lépés gyakra egésze egyszerű Ezutá a rekurzív hívások redszerébe visszafelé haladva mide lépésbe összegezzük, összevojuk a részfeladatok megoldását Az utolsó lépésbe, amikor a működés visszaér a kiiduló szitre, megkapjuk az eredeti feladat megoldását A módszer általáos elevezése oa ered, hogy a rekurzió mide szitjé három alapvető lépést hajt végre: felosztja a feladatot több részfeladatra, uralkodik a részfeladatoko, rekurzív módo való megoldásukkal; ameyibe a feladat mérete kellőe kicsiy, közvetleül megoldja, összevoja a részfeladatok megoldását az eredeti feladat megoldásává Eek az általáos elvek megfelelőe a Haoi toryai probléma rekurzív megoldási elve a következő: 1 A felső 1 korogot helyezzük át az A rúdról a C-re a megegedett lépésekkel úgy, hogy a B rudat vesszük segítségül (Ez az eredetihez hasoló, de kisebb méretű feladat) Az egyedül maradt alsó korogot tegyük át az A rúdról az üres B-re (Ez az elemi méretű feladat közvetle megoldása) 3 Vigyük át a C rúdo található 1 korogot a B-re az A rúd igéybe vételével, hasolóa ahhoz, ahogya az 1 potba eljártuk A rekurzív eljárás működése 1 és 3 lépésbe szereplő 1 korogot hasoló szemlélettel korog kétszeri mozgatására, valamit egy korog áthelyezésére botja, és így tovább 4

A rekurzióból való "kijárat" megfogalmazása természetes módo egyetle korogra adóda: ha = 1, akkor egyszerűe tegyük át a korogot a redeltetési helyére Egyszerűbb formájú algoritmust kapuk, amelyet elemezi is köyebb, ha "még lejjebb" adjuk meg a kijáratot a rekurzióból: ha = 0, akkor em kell semmit sem teük Erre az ad lehetőséget, hogy így az = 1 eset is kezelhető a feti három lépéssel: az 1 és a 3 lépés üressé válik, a lépés pedig tartalmazza az elemi áthelyezés műveletét Általáos szabálykét jegyezzük meg azt, hogy a rekurzióból való kijáratot egedjük miél lejjebb, azaz a szóba forgó változó miél kisebb értékére próbáljuk azt megadi (pl a kíálkozó = 1 helyett az = 0 esetre) Arra törekszük tehát, hogy miél kisebb legye az a részfeladat, amelyet már közvetleül olduk meg Írjuk meg ezutá az eljárást! A Haoi (, i, j, k) rekurzív eljárás számú korogot átvisz az i-edik rúdról a j-edikre, a k-adik rúd felhaszálásával Az eljárást "kívülről" a kokrét feladatak megfelelő paraméterekkel kell meghívi, pl az ábrá látható esetbe így: Haoi (4, 1,, 3) Az eljárás struktogramja a 14 ábrá látható A rekurzív eljárás ömagát hívja egésze addig, amíg agyobb ulláál Amikor = 1, akkor is ez törtéik, de a rekurzív hívások végrehajtása az = 0 ágo már egy-egy üres utasítást eredméyez Az Átrak (i, j) utasítás jelöli azt az elemi műveletet, amellyel egyetle korogot átteszük az i- edik rúdról a j-edikre 14ábra A Haoi toryai probléma megoldása Meghatározzuk az korog átpakolásához szükséges lépésszámot Az algoritmus rekurzív megfogalmazása szite kíálja az átrakások számára voatkozó rekurzív egyeletet: T ( 1) 1, ha 1, T( 0, ha 0 Ha kiszámítjuk T( értékét éháy -re, akkor azt sejthetjük, hogy T ( 1 Ezt teljes idukcióval köye bebizoyíthatjuk Azt kaptuk, hogy a Haoi toryai egy expoeciális műveletigéyű probléma: T( ) (A legeda szerit Idiába, egy ősi város templomába a szerzetesek ezt a feladatot 64 korogra kezdték el valamikor megoldai azzal, hogy amikor a rakosgatás végére érek, elkövetkezik a világ vége Ha mide korogot 1 mp alatt helyezek át, akkor a 64 korog 6 teljes átpakolása agyságredbe 600 milliárd évet vee igéybe Ha 10 mp-cel számoluk, ami már a számítógépek sebessége, akkor is em egésze 600 ezer évre lee szükség a korogok átredezéséhez A agyságredek érzékeltetésére: az uiverzumról úgy tudjuk, hogy kevesebb, mit 14 milliárd éves, a másodikak kiszámolt időtartam pedig a homo sapies megjeleése óta eltelt idővel egyezik meg agyságredbe) 5

13 Függvéyek aszimptotikus viselkedése* (Azt javasoljuk, hogy az olvasó e tekitse befejezettek alapszitű taulmáyait az algoritmusok témakörébe, amíg ezzel az alfejezettel meg em ismerkedett! Célszerű most átolvasi ezt a *-gal jelölt 13 részt, majd később talá többször is visszatéri ide a mélyebb megértés céljával) Kiszámítottuk két algoritmus műveletigéyét a bemeő adatok méretéek függvéyébe Szereték potosabb matematikai fogalmakra támaszkodva beszéli az algoritmusok hatékoyságáról Ebbe a potba eek megalapozása törtéik Először is alkalmasa megválasztjuk az algoritmusok műveletigéyét, illetve lépésszámát jelető függvéyek értelmezési tartomáyát és értékkészletét A továbbiakba legye f olya függvéy, amelyet a természetes számok halmazá értelmezük és em-egatív valós értékeket vesz fel: ahol N { 0,1,, } f : N, R 0 Defiiáljuk egy adott g függvéy eseté azo függvéyek osztályait, amelyek agyságredbe redre em agyobbak, kisebbek, em kisebbek, agyobbak, mit g, illetve g-vel azoos agyságredűek Az osztályok jelölései és evei: O agy ordó vagy ordó, kis ordó, agy omega, kis omega és theta 131 Defiíciók 1 Egy adott g függvéy eseté O(g)-vel jelöljük függvéyekek azt a halmazát, amelyre O( g) { f : létezik c 0és 0 úgy, hogy mide 0 eseté f ( c 0 teljesül Ha f O(g), akkor azt modjuk, hogy g aszimptotikus felső korlátja f-ek Ebbe az esetbe szokásos módo ikább az f O(g) jelölést alkalmazzuk Valamit, haszáljuk a következő függvéyhalmazt is: ( g) { f : mide c 0eseté létezik 0,hogy mide 0 )} eseté f ( c 0 )} Hasolóa, jelölje (g) azo függvéyek halmazát, amelyekre ( g) { f : létezik c 0és 0 úgy, hogy mide 0 eseté f ( c 0 áll fe Ha f g) szokásos jelöléssel f g), akkor azt modjuk, hogy g aszimptotikus alsó korlátja f-ek Az itt megjeleő másik függvéyhalmaz pedig: ( g) { f :mide c 0eseté létezik 0,hogy mide 0 )} eseté f ( c 0 )} 3 Végül, (g) jelöli azt a függvéyosztályt, amelyet a ( g) { f :létezik c1, c 0és 0 0,hogy mide 0 eseté c1 f ( c } összefüggés ír le Ha f g) szokásos jelöléssel f g), akkor azt modjuk, hogy g aszimptotikusa éles korlátja f-ek A defiíciók alapjá teljesül a következő egyelőség: ( g) g) ( g) 6

Ha egy tetszőleges, rögzített g függvéyt tekitük, akkor a többi függvéy általába besorolható a most defiiált osztályok émelyikébe (Megjegyezzük, hogy vaak em összehasolítható függvéyek is, pl és f ( (1 si, ill és f ( 1 1si mide -re Köye belátható ezekre, hogy sem f g) f O(g), sem pedig em teljesül) A agyságredi viszoyokról az 15 ábra ad szemléletes képet 15 ábra A függvéyosztályok egymáshoz való viszoya A függvéyek aszimptotikus viszoyaiak jele vizsgálatához az szolgál alapul, hogy kellőe agyméretű bemeet eseté egy algoritmus futási idejéek (ill az azt leíró függvéyek) csak a agyságredje léyeges Viszoylag kisméretű bemeeteket leszámítva tehát az aszimptotikusa leghatékoyabb algoritmus lesz a téylegese leggyorsabb! 13 Visszavezetés határértékekre Valamely adott f és g függvéy aszimptotikus viszoyát a ameyibe létezik a következőképpe határozza meg: f ( 0, vagy f ( 1 Ha lim, akkor f g) lim 0 c 0 f (, vagy f ( Ha lim, akkor f g) lim c 0 g ( ) f ( 3 Ha lim c 0, akkor f g) Megjegyzés: A f ( lim határérték általába létezik, de pl ha g ( ) 1, ha 1(mod ) f (, ha 0(mod ) f ( lim g ( ) határérték eseté f g) eseté f g) és g ( 1 mide -re, akkor em létezik a határérték, de a két függvéy aszimptotikus viszoya mégis megállapítható, ebbe az esetbe f g) 7

133 L Hospital szabály alkalmazása Ha az adott f és g függvéyekre lim f ( és lim, és midkét függvéy valós kiterjesztése differeciálható, akkor gyakra alkalmazzuk a L Hospital szabályt a f ( lim g ( ) határérték meghatározására: 134 Tulajdoságok f ( f '( lim lim g'( A,,,, jelöléseket függvéyek közötti biáris relációkét is felfoghatjuk (pl {( f, g) : f g)} ) Így a relációkra voatkozó ismert defiíciók értelmezhetők rájuk, és beláthatók a következő állítások: 1,,,, mid trazitív: f, g, h függvéyekre pl: f g) g f 3 4,, midegyike reflexív: pl f f szimmetrikus: f g) g f ) ) és, valamit és felcserélte szimmetrikusak: pl f g) g f ) 5 Rögzített h függvéy mellett (, (, (, (, ( halmazok zártak az összeadásra és a (pozitív) számmal való szorzásra ézve: pl f g f g ; és f c 0 cf 6 Összegbe a agyobb függvéy határozza meg az aszimptotikát: max{ f, g} f g) (Itt a max jelölés az aszimptotikusa agyobb függvéyt jeleti) Ha ezt a szokásos alakot átírjuk az f g max{ f, g}) formába, akkor köye kiolvasható belőle az, hogy egy szekvecia műveletigéyéek agyságredjét a agyobb műveletigéyű tag határozza meg 135 Függvéyosztályok A feti 1, és 3 tulajdoságok miatt mit biáris reláció ekvivaleciareláció a függvéyek halmazá, tehát osztályokra botja azt Az egyes osztályok reprezetálhatók a legegyszerűbb függvéyükkel, pl: (1), (, ( ), (, Megjegyzés: A gyakorlatba ameyibe em okoz félreértést az egyszerűség kedvéért a g, (g), (g), (g), (g), (g) jelölések helyett gyakra a g (, ( ), ( ), ( ), ( ), ( ) jelöléseket haszáljuk Így pl a 3 7 ) jeletése: f, ahol f ( 3 7 és h( mide -re Néháy további köye belátható tulajdoság: Poliom eseté a legagyobb fokú tag a meghatározó (lásd: feti 6 tulajdoság): a k k a k1 k1 a a 1 0 k ) 8

Bármely két (1-él agyobb) alapszámú logaritmikus függvéy aszimptotikusa egyeértékű: log a log b (a>1 és b>1) Ezért az alap feltütetése em szükséges: log log a Hatváyfüggvéyek eseté külöböző kitevők külöböző függvéyosztályokat jelölek ki: és eseté a a ) és a a ), vagyis a a ( ) a 0 0 136 Az aszimptotikus jelölések haszálata Az aszimptotikus jelölések haszálatába elterjedt éháy gyakori hiba Ezek általába em zavarók, mégis fel kell hívi a figyelmet rájuk A kritikával azoba már csak azért is óvatosa kell bái, mert a szerzők egy része kizárólag az -t haszálja 1 Leggyakoribb hiba az, hogy algoritmusok műveletigéyéek jellemzésekor -t haszálak, de -t érteek alatta Az így leírt egyelőség általába igaz, de mást (kevesebbet) fejez ki, mit amit általába közöli szeretéek általa Pl a buborékredezésre igaz, hogy MT( ), de többet mod az, hogy MT( ) A jelölés haszálata is hibát rejthet az összes lehetséges futási időt magába foglalja, amelyek agyságredbe külöbözőek lehetek Pl ahogy korábba láttuk, a buborékredezésre igaz (Cs helyett T-vel), hogy: MT( ) és AT( ) A legkedvezőbb esetbe azoba ics csere, vagyis mt ( 0 Ekkor a T( ) (felületes) kijeletés em igaz, helyette a T( ) írásmódot kellee haszáli, mely az összes esetre helyes lesz Ez azoba kevesebb iformációt tartalmaz, mit a feti két egyelőség, ezért ajálatos MT( -t és AT( -t haszáli T( 3 Néháy tipikus haszálat: T( a) 3 1 ( ), 3 1 ( ), de 3 1 ( ) b) 3 1 ) c) A logaritmikus keresés futási idejére feáll a következő (közelítő) rekurzív egyelet: T ( T 1) 14 Algoritmusok műveletigéyéek tipikus agyságredjei Néháy jellegzetes, és a gyakorlatba gyakra előforduló függvéy meetét és egymáshoz viszoyított aszimptotikus agyságredjét szemlélteti az 16 ábra (em mérethűe, főleg em az origó közelébe Ezek a függvéyek aszimptotikusa mid külöböző agyságredűek A hatváyfüggvéyek az ábrá is látható egyik fotos tulajdosága, hogy bármely 1 kitevő eseté az log és az a ( a 1) közé, míg ha 0 1, akkor a log és az közé esik aszimptotikusa 9

16 ábra A gyakra előforduló agyságredek grafikoja Megaduk éháy példát az algoritmusok aszimptotikus futási idejére Verem vagy sor bármely művelete Logaritmikus (=biáris) keresés (1) (log Prímszámteszt ( 1/ -ig) ( 1/ ) Lieáris keresés ( Kupacredezés ( log Shell redezés 3/ ( ) Buborékredezés ( ) Mátrixszorzás ( 3 ) Haoi toryai ( ) Utazó ügyök probléma (!) A műveletigéyek gyakra előforduló agyságredjeiek értékeit az 17 ábrá látható tartalmazza éháy jellegzetes értékre, midössze 104-ig Az =1 evezetes érték az! függvéy esetébe A 1! még egészkét ábrázolható, a 13! már csak lebegőpotos számkét, és egy! műveletigéyű probléma egzakt teljes körű megoldása általába az =1 értékre még kivárható egy erős asztali gépe, de agyobb értékekre már em Ezt a 10 8 agyságredű határt a függvéy 9-él éri el, az 3 -ös műveletigéyű algoritmusok pedig 500 felett em sokkal Figyelemre méltó még az is, hogy az és az lo értékek =104 eseté (ami a gyakorlatba csekély adatmeyiség) már két agyságredbe térek el (Néháy olya értéket, amely a Matlab programba túlcsordulást okozott, em helyettesítettük kiszámolt értékekkel, hisze ezekek a agyságredekek ics valós értelmük; em csak az algoritmusok világába, de a földi tér-idő meyiségek szempotjából sem) Látszik, miért modják az iformatikusok, hogy legfeljebb az 3 -ös algoritmusokak vesszük haszát a gyakorlatba Az is yilvávaló, hogy agyobb -ekre miért érdemes lo műveletigéyű redezéseket haszáli az -es eljárásokkal szembe, illetve miért érdemes a gráfos algoritmusokat gyorsítai például miimumválasztó kupac adatszerkezet alkalmazásával, hisze ott is ez a két utóbbi agyságred állítható egymással szembe 10

17 ábra A gyakra előforduló agyságredek értékeiek táblázata A táblázat valós értékei jól érzékeltetik azt, hogy meyire fotos az algoritmusok műveletigéyével tisztába lei, és azt a lehetőség szerit miél alacsoyabbra választai 11