Nagyhatékonyságú logikai programozás

Vizsgaké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! Í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ás
Vizsgaké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:

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ás
Vizsgaké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