Did you know ... Search Documentation:
Pack modeling -- prolog/examplesFLOPS2024.pl
PublicShow source
author
- Francois Fages
version
- 1.0.0

Examples of use of SWI-Prolog pack modeling described in

F. Fages. A Constraint-based Mathematical Modeling Library in Prolog with Answer Constraint Semantics. 17th International Symposium on Functional and Logic Programming, FLOPS 2024. May 15, 2024 - May 17, 2024, Kumamoto, Japan. LNCS, Springer-Verlag.

?- queens(8,Queens), show(Queens).
Q . . . . . . .
. . . . . . Q .
. . . . Q . . .
. . . . . . . Q
. Q . . . . . .
. . . Q . . . .
. . . . . Q . .
. . Q . . . . .

Queens = array(1, 5, 8, 6, 3, 7, 2, 4) .

?- fourier(3, X, Y, 1).
X = Y, Y = 6.666666666666667.

?- fourier(3.1, X, Y, 1).
false.

?- fourier(2, X, Y, 1).
{Y=20.0-10.0*_A-10.0*_B, X=10.0*_B, _=2.0-_A-_B, _A+_B>=1.0, _B=<1.0, _A=<1.0}.

?- fourier(0, X, Y, 1).
true.
  
?- fourier(2, X, Y, 1), minimize(X).
X = 0.0,
Y = 10.0.

?- fourier(2, X, Y, 1), maximize(X).
X = 10.0,
{Y=10.0-10.0*_A, _=1.0-_A, _A=<1.0, _A>=0.0}.

?- fourier(2, X, Y, 1), maximize(Y).
Y = 10.0,
{X=10.0*_A, _A>=0.0, _A=<1.0, _=1.0-_A}.

?- fourier(2, X, Y, 1), minimize(Y).
X = 10.0,
Y = 0.0.
 show(+Queens)
pretty prints chessboard Queens (either array or list).

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

 queens(Arg1, Arg2)
 queens_distinct(Arg1, Arg2)
 queens_sym(Arg1, Arg2)
 sym_elim(Arg1, Arg2)
 queens_sym_distinct(Arg1, Arg2)
 queens_list(Arg1, Arg2)
 queens_distinct_list(Arg1, Arg2)
 queens_sym_list(Arg1, Arg2)
 sym_elim_list(Arg1, Arg2)
 queens_sym_distinct_list(Arg1, Arg2)
 fourier(Arg1, Arg2, Arg3, Arg4)
 benchmark
 int_array(Arg1, Arg2)
 int_array(Arg1, Arg2, Arg3)
 bool_array(Arg1, Arg2)
 float_array(Arg1, Arg2)
 float_array(Arg1, Arg2, Arg3)
 satisfy(Arg1)
 satisfy(Arg1, Arg2)
 satisfy_attvars(Arg1)
 satisfy_attvars(Arg1, Arg2)
 minimize(Arg1, Arg2)
 minimize(Arg1, Arg2, Arg3)
 maximize(Arg1, Arg2)
 maximize(Arg1, Arg2, Arg3)