Hatékony-e a rekurzió? FÉLEGYHÁZI TAMÁS GÁBOR 1 Kovács Magda-díj pályázat 2015/16.

Slides:



Advertisements
Hasonló előadás
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ő:
Advertisements

Megszámlálás Elemi algoritmusok.
Programozási tételek, és „négyzetes” rendezések
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Programozási alapismeretek
Programozási feladatok az érettségin
Programozási alapismeretek 5. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 5.2/  Programozási tételek.
Comenius Logo alkalmazásai
INFOÉRA Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Algoritmizálás, adatmodellezés tanítása 4. előadás
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozási ismeretek oktatása: kód vagy algoritmus
Erősen összefüggő komponensek meghatározása
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Programozási alapismeretek 3. előadás
Programozási alapismeretek 13. előadás. ELTE Érdekességek - kombinatorika  Az iskola bejáratánál N lépcsőfok van. Egyszerre maximum K fokot tudunk lépni,
Programozási alapismeretek
Programozási alapismeretek 10. előadás
Programozási alapismeretek 5. előadás. ELTE 2/  Programozási tételek – a lényeglényeg  Sorozatszámítás Sorozatszámítás.
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Programozási alapismeretek 9. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/
Programozási alapismeretek 12. előadás. ELTE  Tapasztalatok a rendezésről Tapasztalatok a rendezésről  Keresés rendezett sorozatban Keresés rendezett.
Sztringek.
OBJEKTUMORIENTÁLT PROGRAM
Optimalizálás nemklasszikus architektúrákon
Gombkötő Attila Lineáris egyenlet.
Készítette: Pető László
Programozás módszertan
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 8.1/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 10.1/ Összegzés mátrixra Feladat: Egy mátrix elemeinek összege.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Sorozatszámítás Specifikáció (a végleges) :  Bemenet:
ELTE Szlávi-Zsakó: Programozási alapismeretek Szlávi-Zsakó: Programozási alapismeretek 3. 1/
Programozási technológia 1
ISZAM III.évf. részére Bunkóczi László
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
VI. Konténerek 18. Tömbök 19. Rendezés, keresés, karbantartás
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
Tömbök és programozási tételek
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
EGY SIKERES PROJEKT ISMÉRVEI ÖTLETTŐL A MEGVALÓSULÁSIG Vendler Balázs, ügyvezető.
Exportképes minőségbiztosítási szolgáltatás fejlesztése antivírus rendszerekhez VESZPROG Kft. Projektvezető: Dr. Leitold Ferenc
Programozási tételek.
Programozási tételek.
Programozás I. Típus algoritmusok
Algoritmizálás, adatmodellezés tanítása 2. előadás.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Programozás, programtervezés
Programozási alapismeretek * A Zh-írás módszertana.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
1 Mivel foglalkoz(t)unk a laborokon? 1.hét: Word dokumentumok 1.hét: Word dokumentumok tagolása, tartalomjegyzék, ábrák számozása, hivatkozások, egyenlet-szerkesztő.
ELTE informatikus vegyész szak
Iteráció, rekurzió, indukció. Iteráció iterációs módszer –egy adott műveletsort egymás után, többször végrehajtani megvalósítás –ciklusokkal pl. –hatványozás.
Algoritmusok és adatszerkezetek
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Algoritmusok hatékonysága – lottószelvények
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Közbeszerzési SzerződésNyilvántartó Rendszer Marczell Zsófia, Singer Marcell GDF III. évf. távoktatás, mérnökinformatika június Kovács Magda-díj.
EUCIP konferencia október 20. Cséfalvay Katalin Fejlesztés (BUILD) modul.
Programozási nyelvek csoportosítása.
Gábor Dénes Számítástechnikai Emlékverseny
Programozási nyelvek Programozási alapismeretek
Nevezetes algoritmusok
Programozási tételek Mik is ezek?
Kovács Gergely Péter Bevezetés
Informatikai gyakorlatok 11. évfolyam
Programozási tételek.
Az informatika (programozás) oktatásának pedagógiai módszerei
Programozási tételek.
Előadás másolata:

Hatékony-e a rekurzió? FÉLEGYHÁZI TAMÁS GÁBOR 1 Kovács Magda-díj pályázat 2015/16.

A pályamű használati értéke  Cél:  Bemutatni hagyományos algoritmusok nem hagyományos megvalósításait.  Rekurzióval kapcsolatos előítéletek meg- vizsgálása, igazolása vagy cáfolása.  Fejlett programozás-technikai eszközök felhasználásával. Kovács Magda-díj pályázat 2015/16. 2

Tartalomjegyzék  Feladatspecifikáció  Programozási tételek  Rekurzió meghatározása  Tervezés  Felhasznált eszközök  Implementáció  Tesztelés  Kapott eredmények  Következtetések  Hivatkozások Kovács Magda-díj pályázat 2015/16. 3

Feladatspecifikáció  Elemi és összetett programozási tételek iteratív és rekurzív változatainak összehasonlítása hatékonyság szempontjából.  Algoritmus működése.  Beépített nyelvi elemek működése.  Futási idők mérése nanoszekundumban. Kovács Magda-díj pályázat 2015/16. 4

Programozási tételek Elemi: Sorozatszámítás Eldöntés Kiválasztás (Lineáris) keresés Megszámolás Szélsőérték kiválasztás Összetett: Másolás Kiválogatás Szétválogatás Metszet Egyesítés Összefésülés Kovács Magda-díj pályázat 2015/16. 5

Rekurzió meghatározása „A rekurzió a ciklusnál bonyolultabb programszerkezet, s mindketten ugyanarra a célra szolgálnak: valamilyen tevékenység ismételt végrehajtására.” „A rekurzió megvalósítása igen nagy központi tárigénnyel járhat.” „A rekurzív megoldás sokszor „rettenetes” futási időnövekedést okoz.” „Az, hogy a matematikusok bevett eszközei és módszerei épülnek e fogalomra, még nem indokolja, hogy a számítástechnikában is használjuk.” „A rekurzió valami nagyon bonyolult dolog, inkább ne foglalkozzunk vele!” [1] Kovács Magda-díj pályázat 2015/16. 6

Model  Adatok beolvasása adatbázisból a memóriába.  Adatok előkészítése a feldolgozásra. Controller  Vezérli a programot, kapcsolatot teremt a nézet és az adatszerkezet között. View Kovács Magda-díj pályázat 2015/16. 7 Tervezés

Felhasznált eszközök  Oracle HR schema adatbázis  Java 1.8.0_65-b17  NetBeans Kovács Magda-díj pályázat 2015/16. 8

Implementáció  Log file  Grafikon generálása  Grafikon megjelenítése  Tesztelés Kovács Magda-díj pályázat 2015/16. 9

Tesztelés Kovács Magda-díj pályázat 2015/16. 10

Kapott eredmények Programozási tételGyorsulás Sorozatszámítás – ciklus 0, Eldöntés – rekurzív 0, Kiválasztás – rekurzív 0, (Lineáris) Keresés – rekurzív 0, Megszámolás – ciklus 0, Szélsőérték kiválasztás – ciklus 0, Programozási tételGyorsulás Másolás – rekurzív 0, Kiválogatás – rekurzív 0, Szétválogatás – rekurzív 0, Metszet – ciklus 0, Egyesítés – rekurzív 0, Összefésülés – rekurzív 0, Programozási tételCiklusokkalRekurzív Sorozatszámítás Eldöntés Kiválasztás (Lineáris) Keresés Megszámolás Szélsőérték kiválasztás Másolás Kiválogatás Szétválogatás Metszet Egyesítés Összefésülés Kovács Magda-díj pályázat 2015/16. 11

Kovács Magda-díj pályázat 2015/ Program működése

Kovács Magda-díj pályázat 2015/ Program működése

Következtetések  Meglepő: egyes tételeknél a rekurzív megvalósítás gyorsabb az iteratívnál.  „Kritikus tömegre” „megéri” a rekurzivitást alkalmazni.  Ugyanakkor a call stack erősen korlátozza a rekurzió mélységét, így a sorozat(ok) maximális hosszát. Kovács Magda-díj pályázat 2015/16. 14

Hivatkozások 1. Szlávi P., Zsakó L.: Módszeres programozás: Rekurzió, Mikrológia 4., ELTE TTK Informatikai Tanszékcsoport, 4. kiadás, Angster E.: Programozás tankönyv II., 4KÖR Bt., 5., javított kiadás, 1999, ISBN II.K. 3. Angster E.: Objektumorientált tervezés és programozás, Java, 2. kötet, 4KÖR Bt., 2., átdolgozott kiadás, 2004, ISBN Kaczur S.: Programozási alapok, 1. kiadás, 2009, ISBN Szlávi P., Zsakó L.: Módszeres programozás: Programozási tételek, Mikrológia 19., ELTE TTK Informatikai Tanszékcsoport, 4. javított kiadás, Recursive factorial | Recursive Algorithms | Khan Academy, link, október 30.link 7. Iványi A.: Informatikai algoritmusok I., ELTE Eötvös Kiadó, Budapest, 2004, ISBN Pap Gné., Szlávi P., Zsakó L.: Módszeres programozás: Rekurzív típusok, Mikrológia 27., ELTE TTK Informatikai Tanszékcsoport, 3. javított kiadás, Pintér L.: Programozási tételek rekurzív megvalósítása, Mikrológia 10., ELTE TTK Informatikai Tanszékcsoport, 4. kiadás, 1995 Kovács Magda-díj pályázat 2015/16. 15

Hivatkozások 12. Kaczur S.: A rekurzió tanításához használható mintaprogramok Java nyelven, A Dunaújvárosi Főiskola Közleményei, Dunaújváros, XXXI., 2009, ISSN , p. 1-6 (magyar nyelvű szakcikk) 13. h.c., link, november 3.link 14. Gábor Dénes Főiskola mérnök-informatikus szak tanterve, link, november 19.link 15. Oracle HR séma, link, október 2.link 16. Kaczur S.: Programozási technológia, 1. kiadás, 2010, ISBN Java SE Development Kit 8 | Downloads, link, október 5.link 18. NetBeans IDE Download, link, október 5.link 19. GitHub – Where software is built, link, október 5.link 20. Enterprise Architect Trial – Sparx System, link,,2015. október 5.link 21. Defining Multithreading Terms, link, október 18.link 22. J. Ponge: Fork and Join: Java Can Excel at Painless Parallel Programming Too!, link, október 18.link 23. Elkészült szoftver forráskódja, link, június 15.link Kovács Magda-díj pályázat 2015/16. 16

Hatékony-e a rekurzió? FÉLEGYHÁZI TAMÁS GÁBOR 17 Kovács Magda-díj pályázat 2015/16.