?-
#solve(:chicken,:cows)
-> ( 23 , 7 ) := 1.00 (0.030) 1
?-
#adjacent(2,3)
-> ( ) := 1.00 (0.001) 1
?-
#adjacent(5,3)
-> ( ) := 0.00 (0.001) 1
?-
#adjacent(3,:R)
-> ( 1 ) := 1.00 (0.001) 1
-> ( 2 ) := 1.00 (0.001) 2
-> ( 4 ) := 1.00 (0.001) 3
?-
#conflict(a)
-> ( ) := 0.00 (0.007) 1
?-
#conflict(b)
-> ( ) := 0.00 (0.006) 1
-> ( ) := 1.00 (0.009) 2
-> ( ) := 0.00 (0.006) 1
?-
#conflict(:which)
-> ( b ) := 1.00 (0.013) 1
?-
#adjacent(3,:R)
-> ( 1 ) := 1.00 (0.001) 1
-> ( 2 ) := 1.00 (0.001) 2
-> ( 4 ) := 1.00 (0.001) 3
?-
#conflict(:R1,:R2,b)
-> ( 2 , 4 ) := 1.00 (0.010) 1
-> ( 4 , 2 ) := 1.00 (0.010) 2
?-
#conflict(:R1,:R2,b), #color(:R1,:C,b)
-> ( 2 , 4 , blue ) := 1.00 (0.010) 1
-> ( 4 , 2 , blue ) := 1.00 (0.010) 2
adjacent {
(1,2);
(2,1);
(1,3);
(3,1);
(1,4);
(4,1);
(1,5);
(5,1);
(2,3);
(3,2);
(2,4);
(4,2);
(3,4);
(4,3);
(4,5);
(5,4);
(_,_) := 0;
}
color {
(1,red,a);
(1,red,b);
(2,blue,a);
(2,blue,b);
(3,green,a);
(3,green,b);
(4,yellow,a);
(4,blue,b);
(5,blue,a);
(5,green,b);
(_,_,_) := 0;
}
conflict {
(:Coloring) :- @adjacent(:X,:Y), @color(:X,:Color,:Coloring), @color(:Y,:Color,:Coloring);
(:R1,:R2,:Coloring) :- @adjacent(:R1,:R2), @color(:R1,:Color,:Coloring), @color(:R2,:Color,:Coloring);
}