Nagyhatékonyságú logikai programozás

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


Tárgy adatok

Kedvcsináló

A tárgy méltó folytatása a Deklaratív programozásnak. Megtanuljuk, hogy a nagy házi feladathoz hasonló jellegű problémákat hogyan oldjuk meg egyharmad annyi kóddal, és nagyságrendekkel jobb futásidővel. Elég a feladatot leíró szabályokat (constraint) pontosan definiálni, a keresést elvégzi a SICStus valamelyik CSP modulja. A CLPFD modulban gazdag constraint gyűjteményből válogathatunk, de magunk is definiálhatunk összetett korlátozásokat.

Az utolsó néhány órán a Prologhoz kísértetiesen hasonló Mercury nyelv alapjait sajátítjuk el. A fő különbség az, hogy kiirtottak minden olyan nyelvi elemet, ami meghatározza a klózok végrehajtási sorrendjét. A beolvasást és a kiírást is deklaratív módon oldották meg. Eltűnt a vágó, megjelent a típusok, a predikátum hívási és determinizmus módok támogatása.

Év közben teljesíteni lehet néhány kis- és egy nagy házi feladatot. Nem kötelezők, de egyrészt pontot jelentenek a vizsgán, másrészt gyakorlati tapasztalat nélkül nagyon nehéz jól teljesíteni vizsgán. A számonkérés szóbeli, egyszerűbb feladatokat kell papíron megoldani, majd bemutatni. Szeredi nagyon rendes a javításnál: az egyik feladatot csak harmadik nekifutásra sikerült helyesen megoldanom, de így is csak két pontot vont le, és mindig segített, hogy hol rontottam el. Aki becsületesen végigcsinálta a házi feladatokat, gond nélkül megkapja az ötöst. Hivatalos létraverseny nincs, de a vizsgaidőszakban összeültünk egyszer, és kielemeztük a beadott házifeladatokban alkalmazott trükköket.

-- Peti - 2006.07.10.

Példaprogramok

(megjegyzés: a megoldáshoz a SICStushoz adott suudoku modult használtam)
(megjegyzés: a megoldás nem egyértelmű)
(megjegyzés: nem használtam ki minden megkötést)


-- Peti - 2007.08.28.

%META:FORM{name="ValaszthatoForm"}% %META:FIELD{name="Trgy" title="Tárgy" value="Nagyhatékonyságú logikai programozás"}% %META:FIELD{name="Trgykd" title="Tárgykód" value="vima9359"}% %META:FIELD{name="Tanszk" title="Tanszék" value="SZIT"}% %META:FIELD{name="Elad" title="Előadó" value="Szeredi Péter"}% %META:FIELD{name="Kreditszm" title="Kreditszám" value="3"}% %META:FIELD{name="raszm" title="Óraszám" value="2"}% %META:FIELD{name="Flv" title="Félév" value=""}% %META:FIELD{name="Terlet" title="Terület" value="Programozás"}% %META:FIELD{name="raijelenlt" title="Órai jelenlét" value="ajánlott"}% %META:FIELD{name="Jegy" title="Jegy" value="vizsga , kis házik , nagy házi "}% %META:FIELD{name="Elvrtmin.munka" title="Elvárt min. munka" value="bejárás"}% %META:FIELD{name="Minimumrajrjegy" title="Minimumra járó jegy" value="4"}% %META:FIELD{name="Elvrtmax.munka" title="Elvárt max. munka" value="kis utánaolvasás - kis munka"}% %META:FIELD{name="Munkrajrjegy" title="Munkára járó jegy" value="5"}%