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

Hasonló dokumentumok
1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

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

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

Nagyordó, Omega, Theta, Kisordó

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

PÁRHUZAMOS ALGORITMUSOK

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

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

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

Iványi Antal PÁRHUZAMOS ALGORITMUSOK

Dr. Schuster György február / 32

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Ordó, omega, theta, rekurzió :15 11:45. Megoldás. A nagyságrendi sorra tekintve nyilvánvalóan igaz pl., hogy: 1

2010. október 12. Dr. Vincze Szilvia

Approximációs algoritmusok

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Intergrált Intenzív Matematika Érettségi

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

Általános algoritmustervezési módszerek

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Deníciók és tételek a beugró vizsgára

Függvényhatárérték és folytonosság

3. Lineáris differenciálegyenletek

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Számelméleti alapfogalmak

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Határérték. prezentációjából valók ((C)Pearson Education, Inc.) Összeállította: Wettl Ferenc október 11.

Algoritmusok bonyolultsága

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

KOVÁCS BÉLA, MATEMATIKA I.

1. A k-szerver probléma

Explicit hibabecslés Maxwell-egyenletek numerikus megoldásához

Számsorozatok (1) First Prev Next Last Go Back Full Screen Close Quit

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Fourier transzformáció

Mátrixfüggvények. Wettl Ferenc április 28. Wettl Ferenc Mátrixfüggvények április / 22

Számítógép hálózatok, osztott rendszerek 2009

Matematika (mesterképzés)

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

4. Laplace transzformáció és alkalmazása

A valós számok halmaza 5. I. rész MATEMATIKAI ANALÍZIS

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

17. előadás: Vektorok a térben

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Lineáris egyenletrendszerek

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

Analízis előadás és gyakorlat vázlat

Polinomok (el adásvázlat, április 15.) Maróti Miklós

GPK M1 (BME) Interpoláció / 16

Egyenletek, egyenlőtlenségek X.

1. Online kiszolgálóelhelyezés

7. előadás. Gyorsrendezés, rendezés lineáris lépésszámmal. Adatszerkezetek és algoritmusok előadás március 6.

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Gyakorló feladatok az II. konzultáció anyagához

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Algoritmuselmélet 2. előadás

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Ellátási lánc optimalizálás P-gráf módszertan alkalmazásával mennyiségi és min ségi paraméterek gyelembevételével

Minden x > 0 és y 0 valós számpárhoz létezik olyan n természetes szám, hogy y nx.

1.1. Alapfogalmak. Vektor: R 2 beli elemek vektorok. Pl.: (2, 3) egy olyan vektor aminek a kezdo pontja a (0, 0) pont és a végpontja a

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

1 Lebegőpontos számábrázolás

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok

egy szisztolikus példa

Valószínűségi változók. Várható érték és szórás

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

Differenciál és integrálszámítás diszkréten

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Mátrixok 2017 Mátrixok

Logika és számításelmélet. 7. előadás

egyenlőtlenségnek kell teljesülnie.

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

Markov-láncok stacionárius eloszlása

Egyenletek, egyenlőtlenségek VII.

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

Hatványsorok, Fourier sorok

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

MÉSZÁROS JÓZSEFNÉ, NUMERIKUS MÓDSZEREK

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

Exponenciális, logaritmikus függvények

Képfeldolgozás. 1. el adás. A képfeldolgozás m veletei. Mechatronikai mérnök szak BME, 2008

Érettségi feladatok: Egyenletek, egyenlőtlenségek 1 / május a) Melyik (x; y) valós számpár megoldása az alábbi egyenletrendszernek?

Tartalom. Robusztus stabilitás Additív hibastruktúra Multiplikatív hibastruktúra

Analízis I. Vizsgatételsor

Analízis I. beugró vizsgakérdések

Bázistranszformáció és alkalmazásai 2.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Abszolútértékes és gyökös kifejezések

Átírás:

17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük, hogy az f és g függvények a pozitív egészek halmazán vannak értelmezve, az f (n) és g(n) függvényértékek pedig nemnegatív valós számok. Az O jelöléssel aszimptotikus felso, az Ω jelöléssel aszimptotikus alsó korlátot tudunk adni, míg a Θ jelöléssel pontosan meg tudjuk adni a vizsgált függvény aszimptotikus viselkedését. O(g(n)) (nagy ordó) azon f (n) függvények halmazát jelenti, amelyekhez léteznek olyan c pozitív valós és n 0 pozitív egész állandók, hogy Tömören: ha n n 0, akkor f (n) cg(n). (1.1) O(g(n)) = { f (n) c R + n 0 Z + : n n 0 f (n) cg(n)}. Ω(g(n)) (nagy omega) azon f (n) függvények halmazát jelenti, amelyekhez léteznek olyan c pozitív valós és n 0 pozitív egész állandók, hogy ha n n 0, akkor f (n) cg(n). (1.2) Θ(g(n)) (nagy teta) azon f (n) függvények halmazát jelenti, amelyekhez léteznek olyan pozitív valós c 1, c 2 és pozitív egész n 0 állandók, hogy ha n n 0, akkor c 1 g(n) f (n) c 2 g(n). (1.3) Az elemzésekben arra törekszünk, hogy Θ típusú becsléseket adjunk, amihez azonos argumentumfüggvényt tartalmazó O és Ω típusú becslésekre van szükség. Ha egy becslésben hangsúlyozni akarjuk, hogy a becslés nem éles, akkor hasznos a o és a ω jelölés. o(g(n)) (kis ordó) azon f (n) függvények halmazát jelenti, melyekre teljesül, hogy minden pozitív valós c állandóhoz megadható egy pozitív egész n 0 úgy, hogy Tömören: ha n n 0, akkor f (n) cg(n). (1.4) o(g(n)) = { f (n) c R + n 0 Z + : n n 0 f (n) cg(n)}. ω(g(n)) (kis omega) azon f (n) függvények halmazát jelenti, melyekre teljesül, hogy minden pozitív valós c állandóhoz megadható egy pozitív egész n 0 úgy, hogy Ha f (n) = o(g(n)), akkor ha n n 0, akkor f (n) cg(n). (1.5) lim n f (n) g(n) = 0, (1.6)

18 Sorszám Növekedési korlát képlettel Korlát típusa szóval 1 Θ(1) konstans 2 Θ(lg n) majdnem konstans 3 o(lg n) szublogaritmikus 4 Θ(lg n) logaritmikus 5 Θ(lg Θ(1) n) polilogaritmikus 6 ω(lg n) szuperlogaritmikus 7 o(n) szublineáris 8 Θ(n) lineáris 9 ω(n) szuperlineáris 10 Θ(n 2 ) négyzetes 11 Θ(n 3 ) köbös 12 o(n Θ(1) ) szubpolinomiális 13 Θ(n Θ(1) ) polinomiális 14 ω(n Θ(1) ) szuperpolinomiális 1.1. táblázat. Függvények növekedésének leggyakoribb korlátai. és ha f (n) = ω(g(n)), akkor f (n) lim n g(n) =. (1.7) A logaritmikus tényezoket gyakran elhanyagolják. Azt mondjuk, hogy f (n) = Õ(g(n)) gyenge ordo ha léteznek olyan c pozitív valós, k és n 0 pozitív egész állandók úgy, hogy, ha n n 0, akkor 0 f (n) cg(n) lg k (n). Tömören: Õ(g(n)) = { f (n) c R + n 0 Z + : n n 0 f (n) cg(n)}. Hasonlóképpen deniálhatók a Ω(g(n)) és Θ(g(n)) jelölések is. Az 1.1. táblázatban összefoglaltuk a függvények növekedésével kapcsolatban leggyakrabban használt jelöléseket és kifejezéseket. A táblázatban szereplo korlátok tetszoleges eroforrással kapcsolatban használhatók elemzéseinkben azonban elsosorban lépésszámokra vonatkoznak. A táblázatban a szub kifejezést kisebb, a szuper kifejezést pedig nagyobb értelemben használtuk. Érdemes megemlíteni, hogy szokás a kisebb vagy egyenlo, illetve a nagyobb vagy egyenlo értelmu használat is. A könyvben a szuperpolinomiális kifejezés szinonimájaként fogjuk használni az exponenciális jelzot. Ezzel az exponenciális futási idot a matematikában szokásosnál tágabban deniáltuk: ha egy algoritmus futási ideje felülrol nem korlátozható polinommal, akkor exponenciálisnak nevezzük.

1.1. Hatékonysági mértékek 19 1.1. Hatékonysági mértékek Az algoritmusok elemzése során az igényelt eroforrások mennyiségét abszolút és relatív mennyiségekkel jellemezzük. Ezeknek a mennyiségeknek a célszeru megválasztása attól is függ, hogy az algoritmus konkrét gépen vagy absztrakt gépen (számítási modellen) fut. Jelöljük W(n, π, A)-vel, illetve W(n, π, p, P)-vel azt az idot (azoknak a lépéseknek a számát), amely alatt a π problémát az A soros, illetve a P párhuzamos algoritmus (utóbbi p processzort felhasználva) n méretu feladatokra legrosszabb esetben megoldja. Hasonlóképpen jelöljük B(n, π, A)-vel, illetve B(n, π, p, P)-vel azt az idot (azoknak a lépéseknek a számát), amely alatt a π problémát az A soros, illetve a P párhuzamos algoritmus (utóbbi p processzort felhasználva) n méretu feladatokra legjobb esetben megoldja. Jelöljük N(n, π)-vel, illetve N(n, π, p)-vel azoknak a lépéseknek a számát, amelyekre az n méretu π feladat megoldásához mindenképpen szüksége van bármely soros, illetve bármely párhuzamos algoritmusnak utóbbinak akkor, ha legfeljebb p processzort vehet igénybe. Tegyük fel, hogy minden n-re adott a π feladat n méretu konkrét elofordulásainak D(n, π) eloszlásfüggvénye. Ekkor legyen E(n, π, A), illetve E(n, π, p, P) annak az idonek a várható értéke, amennyi alatt a π problémát n méretu feladatokra megoldja az A soros, illetve a P párhuzamos algoritmus utóbbi p processzort felhasználva. A tankönyvekben az elemzések során gyakori az a feltételezés, hogy az azonos méretu bemenetek elofordulási valószínusége azonos. Ilyenkor átlagos futási idorol beszélünk, amit A(n, A)-val jelölünk. A W, B, N, E és A jellemzok függnek attól a számítási modelltol is, amelyen az algoritmust megvalósítjuk. Az egyszeruség kedvéért feltesszük, az algoritmus egyúttal a számítási modellt is egyértelmuen meghatározza. Amennyiben a szövegkörnyezet alapján egyértelmu, hogy melyik problémáról van szó, akkor a jelölésekbol π-t elhagyjuk. Ezek között a jellemzok között érvényesek az N(n) B(n, A) (1.8) E(n, A) (1.9) (1.10) egyenlotlenségek. Hasonlóképpen a párhuzamos algoritmusok jellemzo adataira az N(n, p) B(n, P, p) (1.11) E(n, P, p) (1.12) W(n, P, p) (1.13) egyenlotlenségek teljesülnek. Az átlagos futási idore pedig a B(n, A) A(n, A) (1.14), (1.15)

20 illetve B(n, P, p) A(n, P, p) (1.16) W(n, P, p) (1.17) áll fenn. Hangsúlyozzuk, hogy ezek a jelölések nem csak futási idore, hanem az algoritmusok más jellemzoire például memóriaigény, küldött üzenetek száma is alkalmazhatók. Ezután relatív jellemzoket, úgynevezett hatékonysági mértékeket deniálunk. A gyorsítás (vagy relatív lépésszám) azt mutatja, hányszor kisebb a párhuzamos algoritmus futási ideje a soros algoritmus futási idejénél. A P párhuzamos algoritmusnak az A soros algoritmusra vonatkozó gyorsítása g(n, A, P) = W(n, p, P). (1.18) Ha a gyorsítás egyenesen arányos a felhasznált processzorok számával, akkor lineáris gyorsításról beszélünk. Ha a P párhuzamos és az A soros algoritmusra akkor P A-ra vonatkozó gyorsítása lineáris. Ha a P párhuzamos és az A soros algoritmusra akkor P A-ra vonatkozó gyorsítása szublineáris. Ha a P párhuzamos és az A soros algoritmusra = Θ(p), (1.19) W(n, p, P) = o(p), (1.20) W(n, p, P) = ω(p), (1.21) W(n, p, P) akkor P A-ra vonatkozó gyorsítása szuperlineáris. A párhuzamos algoritmusok esetében fontos jellemzo az m(n, p, P) munka, amit a futási ido és a processzorszám szorzatával deniálunk. Akkor is ez a szokásos deníció, ha a processzorok egy része csak a futási ido egy részében dolgozik: m(n, p, P) = pw(n, p, P). (1.22) Érdemes hangsúlyozni, hogy különösen az aszinkron algoritmusok esetében a ténylegesen elvégzett lépések száma lényegesen kevesebb lehet, mint amit a fenti (1.22) képlet szerint kapunk. Egy P párhuzamos algoritmusnak az ugyanazon problémát megoldó soros algoritmusra vonatkozó h(n, p, P, A) hatékonysága a két algoritmus munkájának hányadosa: h(n, p, P, A) = pw(n, p, P). (1.23) Abban a természetes esetben, amikor a párhuzamos algoritmus munkája legalább akkora, mint a soros algoritmusé, a hatékonyság nulla és egy közötti érték és a viszonylag

1.1. Hatékonysági mértékek 21 nagy érték a kedvezo. Központi fogalom a párhuzamos algoritmusok elemzésével kapcsolatban a munkahatékonyság és munkaoptimalitás. Ha a P párhuzamos és A soros algoritmusra akkor P A-ra nézve munkahatékony. Ez a meghatározás egyenértéku a pw(n, p, P) = Õ(), (1.24) pw(n, p, P) = O(lg k n) (1.25) egyenloség eloírásával. Eszerint egy párhuzamos algoritmus csak akkor munkahatékony, ha van olyan k érték, hogy a párhuzamos algoritmus munkája nagyságrendileg nem nagyobb, mint a soros algoritmus munkájának (lg k n)-szerese. Ha a P párhuzamos és A soros algoritmusra akkor P A-ra nézve munkaoptimális. Ez a meghatározás egyenértéku a pw(n, p, P) = O(), (1.26) pw(n, p, P) = O(1) (1.27) egyenloség eloírásával. Eszerint egy párhuzamos algoritmus csak akkor munkaoptimális, ha van olyan k érték, hogy a párhuzamos algoritmus munkája nagyságrendileg nem nagyobb, mint a soros algoritmus munkája. Egy párhuzamos algoritmus csak akkor munkahatékony, ha a gyorsítása legalább lineáris. Egy munkahatékony párhuzamos algoritmus hatékonysága Θ(1). Ha egy algoritmus egy feladat megoldásához adott eroforrásból csak O(N(n)) mennyiséget használ fel, akkor az algoritmust az adott eroforrásra, számítási modellre (és processzorszámra) nézve aszimptotikusan optimálisnak nevezzük. Ha egy A (P) algoritmus egy feladat megoldásához adott eroforrásból a bemenet minden lehetséges n 1 mérete esetében csak az okvetlenül szükséges N(n, A) illetve (N(n, p, A)) mennyiséget használja fel, azaz illetve = N(n, A), (1.28) W(n, p, P) = N(n, p, P), (1.29) akkor az algoritmust az adott eroforrásra (és az adott számítási modellre) nézve abszolút optimálisnak nevezzük és azt mondjuk, hogy a vizsgált feladat pontos bonyolultsága N(n) (N(n, p)). Két algoritmus összehasonlításakor a = Θ(W(n, B)) (1.30) esetben azt mondjuk, hogy a A és B algoritmus futási idejének növekedési sebessége aszimptotikusan azonos nagyságrendu.

22 Amikor két algoritmus futási idejét (például a legrosszabb esetben) összehasonlítjuk, akkor gyakran találunk olyan helyeket, melyeknél kisebb méretu bemenetekre az egyik, míg nagyobb méretu bemenetekre a másik algoritmus futási ideje kedvezobb. A formális deníció a következo: ha a pozitív egész helyeken értelmezett f (n) és g(n) függvényekre, valamint a v 2 pozitív egész számra teljesül, hogy 1. f (v) = g(v); 2. ( f (v 1) g(v 1))( f (v + 1) g(v + 1)) < 0, akkor a v számot az f (n) és g(n) függvények váltási helyének nevezzük. Például két mátrix szorzatának a deníció alapján történo és a Strassen-algoritmussal történo kiszámítását összehasonlítva (lásd például Cormen, Leiserson, Rivest és Stein többször idézett új könyvét) azt kapjuk, hogy kis mátrixok esetén a hagyományos módszer, míg nagy mátrixok esetén a Strassen-algoritmus az elonyösebb egy váltási hely van, melynek értéke körülbelül 20. Az ido mellett algoritmusok számos más eroforrást is használnak például memóriát, üzeneteket. Utóbbira például W üzenet (n, p, P) módon hivatkozhatunk.