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

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

Programozási módszertan. Mohó 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.

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

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

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

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

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

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

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

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

Dr. Schuster György február / 32

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Fibonacci számok. Dinamikus programozással

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Diszkrét matematika I.

Matematika szintfelmérő dolgozat a 2018 nyarán felvettek részére augusztus

Számjegyes vagy radix rendezés

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

Dinamikus programozás - Szerelőszalag ütemezése

Biometria az orvosi gyakorlatban. Korrelációszámítás, regresszió

Partíció probléma rekurzíómemorizálással

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

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

1. előadás. számításokban. Adatszerkezetek és algoritmusok előadás február 12. Kósa Márk, Pánovics János, Szathmáry László és Halász Gábor

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

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

14. Mediánok és rendezett minták

BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli

2015, Diszkrét matematika

Egészrészes feladatok

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

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

1. ábra. Számláló rendezés

Diszkrét matematika I.

Egyenletek, egyenletrendszerek, egyenlőtlenségek Megoldások

Online migrációs ütemezési modellek

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

Optimalizációs stratégiák 1.

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Algoritmuselmélet 1. előadás

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

2016, Diszkrét matematika

Algoritmusok helyességének bizonyítása. A Floyd-módszer

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

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

2018, Diszkre t matematika. 10. elo ada s

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Irányításelmélet és technika II.

Számítógépes döntéstámogatás. Döntések fuzzy környezetben Közelítő következtetések

Nagyordó, Omega, Theta, Kisordó

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

Abszolútértékes és gyökös kifejezések Megoldások

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Diszkrét Matematika MSc hallgatók számára. 11. Előadás. Előadó: Hajnal Péter Jegyzetelő: Szarvák Gábor november 29.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

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

a) A logaritmus értelmezése alapján: x 8 0 ( x 2 2 vagy x 2 2) (1 pont) Egy szorzat értéke pontosan akkor 0, ha valamelyik szorzótényező 0.

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

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Abszolútértékes és Gyökös kifejezések

Számláló rendezés. Példa

Bevezetés az informatikába

19. Függvények rekurzív megadása, a mester módszer

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

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Másodfokú egyenletek, egyenlőtlenségek

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Algoritmusok. Dr. Iványi Péter

Kontrollcsoport-generálási lehetőségek retrospektív egészségügyi vizsgálatokhoz

Algoritmuselmélet 1. előadás

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Exponenciális és Logaritmikus kifejezések

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Irányításelmélet és technika II.

Másodfokú egyenletek, egyenlőtlenségek

Számítógépes döntéstámogatás. Genetikus algoritmusok

egyenlőtlenségnek kell teljesülnie.

Tartalom. 1. Állapotegyenletek megoldása 2. Állapot visszacsatolás (pólusallokáció)

Leszámláló rendezés. 1. Végigmegyünk az A-n, és ha egy elem értéke i, akkor megnöveljük C[i] értékét eggyel.

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Dinamikus modellek szerkezete, SDG modellek

Emelt szintű érettségi feladatsorok és megoldásaik Összeállította: Pataki János; dátum: november. I. rész

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Algoritmusok vektorokkal keresések 1

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

M. 33. Határozza meg az összes olyan kétjegyű szám összegét, amelyek 4-gyel osztva maradékul 3-at adnak!

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

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Dinamukus programozás

Nagy Gábor compalg.inf.elte.hu/ nagy

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

Hatvány gyök logaritmus

Átírás:

PM-03 p. 1/13 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 Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu

PM-03 p. 2/13 Bevezetés Algoritmusok futási idejének számítása gyakran vezet rekurzív egyenlethez, különösen akkor, ha az algoritmus rekurzív. Példa: összefésülő rendezés OSSZEFESULO-RENDEZES(A,bal,jobb); begin if bal<jobb then begin kozep:=(bal+jobb) div 2; OSSZEFESULO-RENDEZES(A,bal,kozep); OSSZEFESULO-RENDEZES(A,kozep,jobb); OSSZEFESUL(A,bal,kozep,jobb); end end;

PM-03 p. 3/13 Oszd meg és uralkodj elvű algoritmusok T(n) futási idő az n méretű bemenetre Tegyük fel, hogy az algoritmus a kimenetet közvetlenül kiszámítja, ha n < c valamilyen c konstansra A bemenetet a db részre osztja, amelyek mérete n b és ezeket a feladatokat rekurzívan oldja meg D(n) idő kell a részekre osztáshoz, C(n) idő a részproblémák megoldásaiból összerakni a kiindulási feladat megoldását futási idő: T(n) = { Θ(1), ha n c, at( n b ) + D(n) + C(n), egyébként

PM-03 p. 4/13 Összefésülő rendezés esetén a = 2 D(n) = Θ(1) az összefésülés elvégezhető lineáris időben: C(n) = Θ(n) futási idő: { Θ(1), ha n = 1, T(n) = 2T( n 2 ) + Θ(n), ha n > 1 Az egyenlet átírása után: T(n) = { c, ha n = 1, 2T( n 2 ) + c(n), ha n > 1 Felrajzolható a rekurziós fa T(n) = Θ(nlgn)

Rekurziós fa PM-03 p. 5/13

PM-03 p. 6/13 Rekurziós fa módszer 1 A rekurziós fa olyan fa, amelynek minden pontja egy eljáráshívást jelent adott aktuális paraméterekre, úgy, hogy a pont fiai megfelelnek azoknak az eljáráshívásoknak, amelyek végrehajtódnak az aktuális paraméterek esetén. Szintenként összegezzük a pontok költségét, majd a szinteket összeadva kapjuk a teljes költséget. Mivel a részproblémák mérete egyre csökken, ahogy egyre távolabb kerülünk a gyökértől, előbb-utóbb a részprobléma mérete olyan kicsi lesz, hogy rá nem a rekurziós képlet vonatkozik, hanem a kezdeti feltétel. Milyen messze leszünk ekkor a gyökértől?

PM-03 p. 7/13 Rekurziós fa módszer 2 Példa: Oldjuk meg a T(n) = 3T( n 4 )+Θ(n2 ) rekurzív egyenletet. az i-edik szinten lévő részprobléma mérete n/4 i a részprobléma mérete akkor lesz 1, ha n 4 i = 1 i = log 4 n a fának log 4 n + 1 szintje van (0,1,2,... log 4 n)

PM-03 p. 8/13 Rekurziós fa módszer 3 Ezután meghatározzuk a fa minden szintjének költségét. Minden szinten 3-szor annyi pont van, mint a felette lévő szinten az i-dik szinten 3 i pont van. A részproblémák mérete szintenként negyedére csökken, ezért minden szinten i = 0,1,2,...,log 4 n 1 -re a költség c( n 4 i ) 2 Ezeket összegezve az összes pontra azt kapjuk, hogy az i-edik szinten lévő pontok költsége i = 0,1,2,...,log 4 n 1 -re 3 i c( n 4 i ) 2 = ( 3 16 )i cn 2 Az utolsó log 4 n-edik szinten 3 log n 4 = n log 3 4 pont van, mindegyik T(1) költségű n log 3 4 T(1) az utolsó szint költsége, ami Θ(n log 3 4 )

PM-03 p. 9/13 Rekurziós fa módszer 4 A teljes fára összegezve: T(n) = cn 2 + 3 16 cn2 + ( 3 16 )2 cn 2 +... + ( 3 16 )log n 1 4 cn 2 + Θ(n log 3 4 ) = log 4 n 1 i=0 ( 3 16 )i cn 2 + Θ(n log 3 4 ) < i=0 ( 3 16 )i cn 2 + Θ(n log43 ) = 1 1 ( 3 )cn2 + Θ(n log43 ) 16 = O(n 2 )

PM-03 p. 10/13 Helyettesítő módszer Lépések: 1. Sejtsük meg a megoldást. 2. Teljes indukcióval határozzuk meg a konstansokat és igazoljuk a megoldás helyességét.

PM-03 p. 11/13 Helyettesítő módszer Példa: Határozzuk meg a T(n) = 2T( n 2 ) + n egyenlet egy felső korlátját! Sejtésünk az, hogy T(n) = O(nlg n). Megmutatjuk, hogy alkalmas c > 0 konstansra T(n) cnlg n. Tegyük fel, hogy n 2 -re teljesül a bizonyítandó, azaz T( n 2 ) c n 2 lg( n 2 ) Ezt behelyettesítve a rekurzív egyenletbe kapjuk, hogy T(n) 2(c n 2 lg( n 2 )) + n cnlg( n 2 ) + n = cnlg n cnlg 2 + n = cnlg n cn + n cnlg n, ha c 1

A mester módszer PM-03 p. 12/13

PM-03 p. 13/13 Mester tétel A T(n) = at( n b ) + f(n) típusú rekurzív egyenletek megoldására ad receptet, ahol a 1 és b > 1 konstansok, valamint f(n) aszimptotikusan pozitív függvény. Tétel: Legyenek a 1 és b > 1 konstansok, f(n) függvény, T(n) pedig a nemnegatív egészeken a T(n) = at( n b ) + f(n) rekurzív egyenlettel definiált függvény, ahol n b jelentheti akár az n b, akár az n b értéket. Ekkor T(n)-re a következő aszimptotikus korlátok adhatók. 1. Ha f(n) = O(n log b a ε ) valamely ε > 0 konstansra, akkor T(n) = Θ(n log b a ) 2. Ha f(n) = Θ(n log b a ), akkor T(n) = Θ(n log b a lg n) 3. Ha f(n) = Ω(n log a+ε b ) valamely ε > 0 konstansra, és ha af( n b ) cf(n) valamely c < 1 konstansra és eléggé nagy n-re, akkor T(n) = Θ(f(n))