1. Határozd meg az X és Y változók tartományának változását az alábbi célsorozat végrehajtása során! Írd le a constraint-tár állapotát mindegyik részcél végrehajtása után!
?- domain([X,Y], 0, 100), X+Y #>= 9, element(X, [1,2,6,24,120], Y), X-Y #> 3.
2. Írj egy library(clpfd) programot az alábbi feladat megoldására!
joszam(X): Az X egész szám kétjegyű, négyzete háromjegyű és a négyzet első két jegye forított sorrendben leírva az X számot adja.
3. Definiáld FD-predikátummal (indexikálisokkal) az 'x-y>=10'(X, Y) constraintet, amely nevének megfelelő jelentésű! Írd meg az FD-predikátum mind a négy klózát!
4. Írd meg a mastermind játékkal kapcsolatos következő predikátumot a library(clpfd) segítségével! Ne használj választási pontokat (spekulatív diszjunkciót)!
feketek(Rk, Tk, N, F): Az Rk (rejtettek) változó-lista és a Tk (tippek) egész-lista azonos hosszúak. N és F konkrét egész számok. Rk minden eleme az 1..N tartományba esik. A predikátum jelentése: Az F szám (fekete találatok) nem más mint az Rk lista azon elemeinek száma, amelyek értéke megegyezik a Tk lista azonos sorszámú elemével.
Példa:
?- feketek([A,B,C], [1,2,3], 3, 0). A in {2,3}, B in {1,3}, C in {1,2}
Nagyhatékonyságú logikai programozásVizsgakérdések.
1. Határozd meg az X és Y változók tartományának változását az alábbi célsorozat végrehajtása során! Add meg a változók tartományát közvetlenül az egyes részcélok végrehajtása után, ill. a részcél által felébresztett constraintek végrehajtása után is!
?- domain([X,Y], 1, 10), X+Y #=< 10, relation(X, [4-{2},6-{2,3},8-{2,4},9-{3},10-{2,5}], Y), X-Y #> 3, indomain(Y).
2. Írj egy library(clpfd) programot az alábbi feladat megoldására!
Az egyszerusitheto(X,Y) eljárás sorolja fel a következő tulajdonságokkal bíró (X,Y) számpárokat:
- X és Y tizes számrendszerben kétjegyű természetes számok
- X tizes számrendszerbeli alakja AB
- Y tizes számrendszerbeli alakja BC
- Az X/Y és A/C törtek (végtelen pontossággal) megegyeznek
- A, B és C páronként különböző számjegyek
3. Definiáld FD-predikátummal (indexikálisokkal) az 'abs(x-y)=<10'(X, Y) constraintet, amely nevének megfelelő jelentésű, és intervallum-konzisztenciát ill -levezethetőséget biztosít! Írd meg az FD-predikátum mind a négy klózát!
4. Írd meg a következő constraintet a library(clpfd) segítségével! Ne használj választási pontokat (spekulatív diszjunkciót)!
kiegyensulyozott(L): Az L listában azon pozíciók száma, amelyeken az utána levőnél nagyobb szám áll megegyezik azon pozíciók számával, amelyeken az utána levőnél kisebb szám áll.
Példa:
| ?- L=[A,B,C], domain(L, 1, 3), A+B #=4, kiegyensulyozott(L), labeling([],L), write(L), nl, fail. [1,3,1] [1,3,2] [2,2,2] [3,1,2] [3,1,3] no | ?-
Nagyhatékonyságú logikai programozásVizsgakérdések.
1. Határozd meg az X és Y változók tartományának változását az alábbi célsorozat végrehajtása során! Add meg a változók tartományát közvetlenül az egyes részcélok végrehajtása után, ill. a részcél által felébresztett constraintek végrehajtása után is!
?- domain([X,Y], 1, 10), X+Y #=< 10, element(X, [1,1,4,4,9,9], Y), X #> Y.
2. Írj egy library(clpfd) programot az alábbi feladat megoldására!
joszam(X): Az X egész szám kétjegyű, négyzete háromjegyű és a négyzet első két jegye az X számnál 2-vel nagyobb szám.
3. Definiáld FD-predikátummal (indexikálisokkal) az 'x+y=<z'(X, Y, Z) constraintet, amely nevének megfelelő jelentésű, és intervallum-konzisztenciát ill -levezethetőséget biztosít! Írd meg az FD-predikátum mind a négy klózát!
4. Írd meg a következő eljárást a library(clpfd) segítségével! Ne használj választási pontokat (spekulatív diszjunkciót)!
jo(N, L, T): Az L lista N hosszú és elemei az 1..N intervallumból való különböző számok, továbbá az I-edik pozíción nem állhat az I szám. T az abs(L[I]-I) eltérések összege, I= 1..N. Adott N esetén L egy olyan lista, amelyre T minimális.
About this document ...
This document was generated using the LaTeX2HTML translator Version 96.1 (Feb 5, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html zh1.The translation was initiated by Peter Szeredi on Mon May 18 14:58:26 CEST 1998
Peter Szeredi
Mon May 18 14:58:26 CEST 1998