Download Ciao Manual - The Ciao System
Transcript
Chapter 204: Constraint programming over finite domains
1001
204 Constraint programming over finite domains
Author(s): José Manuel Gómez Pérez, Manuel Carro.
This package is a very preliminary implementation of a finite domain solver. Examples can
be found in the source and library directories.
• SEND + MORE = MONEY:
:- use_package(fd).
:- use_module(library(prolog_sys), [statistics/2]).
:- use_module(library(format)).
smm(SMM) :statistics(runtime,_),
do_smm(SMM),
statistics(runtime,[_, Time]),
format("Used ~d milliseconds~n", Time).
do_smm(X) :X = [S,E,N,D,M,O,R,Y],
X in 0 .. 9,
all_different(X),
M .>. 0,
S .>. 0,
1000*S + 100*E + 10*N + D + 1000*M + 100*O + 10*R + E
.=. 10000*M + 1000*O + 100*N + 10*E + Y,
labeling(X).
• Queens:
:::::-
use_package(fd).
use_module(library(prolog_sys), [statistics/2]).
use_module(library(format)).
use_module(library(aggregates)).
use_module(library(lists), [length/2]).
queens(N, Qs) :statistics(runtime,_),
do_queens(N, Qs),
statistics(runtime,[_, Time]),
format("Used ~d milliseconds~n", Time).
do_queens(N, Qs):constrain_values(N, N, Qs),
all_different(Qs),!,
labeling(Qs).
constrain_values(0, _N, []).
constrain_values(N, Range, [X|Xs]):N > 0,
X in 1 .. Range,
Related documents
Ciao Manual - The Ciao System
LPdoc Manual
Members User Manual
Typeclassopedia - Tufts University Computer Science
ciao Reference Manual - pdf
lpdoc Reference Manual - pdf
(Ciao-)Prolog and the PiLLoW library
Analyzing Logic Programs with Dynamic Scheduling
PPA55xx User Manual
Introduction to Computational Linguistics - Uni
1.x PDF - Read the Docs
Moscow ML Owner`s Manual