Nagyhatékonyságú Logikai Programozás, 2002 őszi félév


Információk

Ez a lap a Nagyhatékonyságú Logikai Programozás tárgy anyagára vonatkozó információkat tartalmaz.

Vizsgák:

Nagy házi feladat: kiírás , beadószkript . A január 15.-én vizsgázók január 14. 8:00 -ig adják be a nagy házi feladatot.

Az összes előadás fóliái (1.-187. oldal)

Az első adag fólia (1.-3. előadás, 1.-44. oldal)

A második adag fólia (4.-5. előadás, 45.-76. oldal)

A harmadik adag fólia (5.-6. előadás, 77.-92. oldal)

A negyedik adag fólia (6-10. előadás. 93.-148. oldal)

Az ötödik adag fólia (11-12. előadás. 149.-164. oldal)

A hatodik adag fólia (12-13. előadás. 165.-187. oldal)

Példaprogramok

3. kis házi feladat:

Az FD predikátumok jelentését ellenőrző segédprogram letölthető innen.

A kiírás a fóliákon megtalálható, de a szóbanforgó egy oldal (PDF alakban) innen is letölthető.

A kis házi feladat futtatásakor a következő segédeljárást használom:

fdtest([X,Y,Z,B], Goal, [XR,YR,ZR,BR]) :- domain([X,Y,Z], 0, 9), 'z>max(x,y)'(X, Y, Z) #<=> B, call(Goal), fd_dom(X, XR), fd_dom(Y, YR), fd_dom(Z, ZR), fd_dom(B, BR).

A házi feladat beadása:

Kérem legyetek türelemmel, a válasz postázása néha késik.

4. kis házi feladat:

A kiírás a fóliákon megtalálható, de a szóbanforgó egy oldal (PDF alakban) innen is letölthető.

A kis házi feladat futtatásakor a következő környezetet használom:

:- assert(clpfd:full_answer). globtest(Before, Constraint, After, Result) :- Constraint = max_lt(List, Z), Goal = (Before, Constraint, After, fd_doms([Z|List], [ZDom|ListDom])), ( call_residue( Goal, Residue) -> ( member(_-(_:max_lt(_,_)), Residue) -> Result = active(ListDom, ZDom) ; Result = exited(ListDom, ZDom) ) ; Result = failed ). fd_doms([V|Vs], [D|Ds]) :- fd_dom(V, D), fd_doms(Vs, Ds). fd_doms([], []). step_up(X, _I) :- nonvar(X), !. step_up(X, I) :- X #> I, I1 is I+1, step_up(X, I1). Példafutások: | ?- globtest(true, max_lt([A,B,C],Z), (A in 1..5, B #> 2, Z in 0..6), Result). Result = active([1..5,3..5,inf..5],4..6) ? ; no | ?- globtest(domain([X,Y,Z], 0, 9), max_lt([X,Y],Z), (Z=5, Y=6), Result). Result = failed ? ; no | ?- globtest(true, max_lt([A],Z), (A in {0,9}, Z in {3,6}), Result). A = 0, Result = exited([{0}],{3}\/{6}) ? ; no | ?- globtest((length(L, 500),domain(L, 1, 5) , X in 5..10000), max_lt([X|L], Z), step_up(X, 5), Result). L = [_A,_B,_C,_D,_E,_F,_G,_H,_I,_J|...], X = 10000, Result = exited([{10000},1..5,1..5,1..5,1..5,1..5,1..5,1..5,... .. ...|...],10001..sup) ? ; no | ?- Megjegyzések:

A házi feladat beadása:

Kérem legyetek türelemmel, a válasz postázása néha késik.

Esettanulmányok:

Gyakorló vizsga-feladatok: A korábbi évek vizsga-feladat-sorai: