Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Nagyhatékonyságú deklaratív programozás laboratórium

    A tantárgy angol neve: High Efficiency Declarative Programming Laboratory

    Adatlap utolsó módosítása: 2014. október 1.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Mérnökinformatikus szak, MSc képzés

    Számításelmélet mellékspecializáció

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VISZMB01 3 0/0/3/f 4  
    3. A tantárgyfelelős személy és tanszék Dr. Mann Zoltán Ádám, Számítástudományi és Információelméleti Tanszék
    A tantárgy tanszéki weboldala http://cs.bme.hu/~szeredi/ndp/
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Mann Zoltán Ádám

    egyetemi docens

    Számítástudományi és Információelméleti Tanszék

    Dr. Szeredi Péter

    c. egyetemi tanár

    Számítástudományi és Információelméleti Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít

    A Prolog programozási nyelv alapszintű ismerete

    6. Előtanulmányi rend
    Kötelező:
    NEM ( TárgyEredmény( "BMEVISZM232" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVISZM232", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:

    Ajánlott: Deklaratív Programozás c.tárgy 


    7. A tantárgy célkitűzése

    A Deklaratív Programozás c. BSc tárgy keretében szerzett tudás elmélyítése, kiterjesztése a korlát-logikai programozás (constraint logic programming, CLP) területére. A CLP elméleti alapjainak és megvalósításainak megismertetése, a korlát-programozás módszereinek áttekintése és gyakoroltatása.

    8. A tantárgy részletes tematikája

    1)      A CLP alapjai (a CLP(X) séma, példák), CLP megvalósításhoz szükséges haladó Prolog eszközök (blokkolás, korutin-szervezés, korutin-szervező eljárások Prologban, példák korutinok alkalmazására, kifejezések testreszabott kiírása)

    2)      CLP(MiniNat) esettanulmány (kvázi-CLP nyelv természetes számokra), a CLP(MiniNat) megvalósítása a tanult haladó Prolog eszközök segítségével, 1. kis házi feladat kiadása

    3)      A SICStus Prolog clpq és clpr könyvtára, használatuk és működési elveik, példák a könyvtárak használatára és működésére, esettanulmány: tökéletes téglalapok

    4)      A korlát logikai programozás elmélete (CLP szintaxis, deklaratív szemantika, procedurális szemantika, következtetés folyamata). A SICStus Prolog clpb könyvtára (a könyvtár használata és működése, példák)

    5)      A CLP(FD) alapjai, bevezetés a SICStus Prolog clpfd könyvtárának használatába, elméleti háttér: korlát-kielégítési problémák (CSP), egyszerű és összetett korlátok, halmazkorlátok és aritmetikai korlátok, példák a clpfd könyvtár használatára

    6)      Konzisztencia és szűkítési szintek, a korlátok végrehajtása, klasszikus CSP feladatok (zebra feladat, n királynő probléma, mágikus sorozatok), redundáns korlátok. Nagy házi feladat kiadása

    7)      Reifikáció, logikai korlátok, korlátok levezethetősége, globális aritmetikai korlátok, clpfd segédeljárások, FD-halmazok, címkézés (címkézési eljárások, címkézési opciók, a címkézés testreszabása), 2. kis házi feladat kiadása

    8)      Felhasználói korlátok definiálási lehetőségei: globális korlátok és FD-predikátumok. Globális korlátok megadásának módja, a szűkítést végző kampó-eljárások szerkezete. 3. kis házi feladat kiadása

    9)      FD-predikátumok: indexikálisok és tartománykifejezések, reifikáláshoz szükséges további FD-klózok, indexikálisok jelentése, korlátok fordítása indexikálisokká, 4. kis házi feladat kiadása

    10)  A SICStus clpfd beépített kombinatorikus korlátai: számlálás és különbözőség, általános relációk megadása (párokkal, gráfokkal, táblázattal, automatával), gráf-korlátok, ütemezés, pakolás. Példák ezek alkalmazására

    11)  CLP(FD) nyomkövetés az FDBG könyvtár segítségével (használat, testreszabás, saját megjelenítő írása)

    12)  Összetett CLP(FD) esettanulmányok (négyzetdarabolás, torpedó, dominó): modellezés, korlátok megválasztása, hatékony keresés

    13)  A CHR (Constraint Handling Rules) generikus korlát-programozási eszköz, CHR szabályok megadása és végrehajtása, példák a CHR alkalmazására

    14)  Összefoglalás, tartalék

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás + laboratórium.  Az előadás részben a fent felsorolt témakörök kerülnek előadásra ill. megvitatásra, a laboratórium részben a hallgatók a témakörhöz kapcsolódó elméleti ill. programozási feladatokat oldanak meg.

    10. Követelmények

    Szorgalmi időszakban:

    4 kis házi feladat és egy nagy házi feladat elkészítése. Mindegyik kis házi feladat 15%-ban, a nagy házi feladat 40%-ban számít bele az értékelésbe.  A kis házi feladatok beadási határideje a kiadás után két héttel van, a nagy házi feladat a szorgalmi időszak utolsó napjáig adható be.

    A vizsgaidőszakban:

    nincs
    11. Pótlási lehetőségek

    A házi feladatok a pótlási hét végéig pótlólag beadhatók. A pótlólag beadott házi feladatokra 20 %-kal csökkentett pontszám jár.

    12. Konzultációs lehetőségek

    Előzetes egyeztetés szerint .


    13. Jegyzet, tankönyv, felhasználható irodalom

    Szeredi Péter, Benkő Tamás: Nagyhatékonyságú logikai programozás, Kézirat.

    http://cs.bme.hu/~szeredi/oktatas/docs/nlp02_jegyzet.pdf

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra12
    Felkészülés zárthelyire 
    Házi feladat elkészítése42
    Kijelölt írásos tananyag elsajátítása24
    Vizsgafelkészülés 
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Mann Zoltán Ádám

    egyetemi docens

    Számítástudományi és Információelméleti Tanszék

    Dr. Szeredi Péter

    c. egyetemi tanár

    Számítástudományi és Információelméleti Tanszék