Hello Szeredi,
Tuesday, January 18, 2005, 7:45:20 PM, you wrote:
SP> Pallos Peter <pallosp(a)freeweb.hu> writes:
> Hello!
>
> Kipróbáltam a case globális korlátot, de legnagyobb erõfeszítéseim
> ellenére sem sikerült mûködésre bírnom. Mindig "consistecy error"
> exceptiont dob.
>
> A következõ globális korlátot szeretném megvalósítani:
> Adott egy 2x2-es mátrix:
>
> block(NW, NE,
> SW, SE).
>
> Az elemek 0-tól 1-ig terjedhetnek, és ha a négy változó között vannak
> 1-esek, mindenképp téglalapot kell alkotniuk.
> Az állapotokat hasonlóképpen neveztem el, mint ahogy a 96. oldalon a
> felemasok predikátumban láttam.
> A példaprogramnak végre kellene hajtania a NW#=0 szûkítést, mert a bl
> felsõ mezõ biztosan nem lehet 1-es.
>
> Köszönöm a segítséget,
> Peti
>
> casetest(B) :-
> B=[block(NW,NE,SW,SE)],
> domain([NW,NE,SW,SE], 0, 1),
> NE#=0, SE#=1,
> case(block(NW,NE,SW,SE), B,
> [node([] , NW, [(0..0)-x0, (1..1)-x1]),
> node(x0 , NE, [(0..0), (1..1)-x01]),
> node(x1 , NE, [(0..0)-x10, (1..1)-x11]),
> node(x01 , SW, [0..0]),
> node(x10 , SE, [0..0]),
> node(x11 , SW, [(0..0)-x110, (1..1)-x111]),
> node(x110, SE, [0..0]),
> node(x111, SE, [1..1])
> ]).
SP> A kezikonyv ezzel kezdi:
SP> `case(+TEMPLATE, +TUPLES, +DAG)'
SP> `case(+TEMPLATE, +TUPLES, +DAG, +OPTIONS)'
SP> TEMPLATE is an arbitrary non-ground Prolog term. Its variables
SP> are merely place-holders; they should not occur outside the
SP> constraint nor inside TUPLES.
SP> Tehat a case 1. es 3. argumentumaban nem szabad olyan valtozokat
SP> hasznalni, amik a 2.-ban vagy a case hivason kivul elofordulnak. Vagyis
SP> nevezd at a casetest 1., 2. es 3. soraban
SP> Ezenfelul a node azonositok ujabban szamok kell legyenek (elnezest, nem
SP> frissitettem a foliakat :-()
SP> Harmadreszt az x0 sorban az egyik agban nincs -, a kezikonyv szerint ez sem
SP> megengedett.
SP> Sok sikert az ujabb kiserletekhez!
SP> -Peter
Van egy negyedik feltétel is, ami nincs rajta a fólián, de szükség
volt rá. A gráfban minden változóra kell megkötést tenni. Nem lehet
olyan egyszerûsítéseket bevezetni, mint pl. ha NW=NS=0, akkor SW és SE
tetszõleges.
Emiatt kénytelen voltam tízre növelni az állapotok számát.
Peti