| Bart Demoen 2005-08-29, 7:00 pm |
| A.L. wrote:
> Although SWI is superb Prolog, it is a bit weak when you need
> constraint solver.
True. A first step to providing SWI with constraint solvers, was
taken by Jan Wielemaker when he implemented attributed variables
(first quarter of 2004 if I remember correctly).
Then Tom Schrijvers provided a CHR implementation - generic in the sense
that it allows anyone to write his/her own constraint solvers with
their favourite propagation/completeness/domain/etc.
Tom also wrote a finite domain solver (named bounds in SWI) but mostly
as a proof that it can be done in SWI - not pretending to be something
super duper efficient.
Leslie De Koninck has done CLP(R) for SWI, with non-linear constraints -
soon, if not already available ! The non-linear stuff is probably
unique amongst truly free/open systems (not just Prolog systems).
There is work behind the scenes on more efficient execution of CHR, by
(amongst others) Jon Sneyers: it is less visible and less spectacular,
but SWI will directly benefit from his efforts.
And a bit preliminary, but also in the pipeline, is an FD solver by
Markus Triska [Markus, sorry if this puts pressure on you :-] also
intended to go into the SWI distribution; and probably superceding the
bounds.pl by Tom, because more efficient.
I have obviously only named the people I know, and there may be others
who make it part of their life to improve some aspects of SWI.
It takes a big effort to write efficient solvers and SWI can use all
the help it can get. What Jan manages on his own (providing the
infrastructure for solvers and a zillion other useful things related to
the web, multi-threading, wide-chars and things that are beyond my
comprehension) is gigantic, and hopefully others will make good use of
it by providing tools and applications.
Donations are necessary and not frowned upon either.
Cheers
Bart Demoen
|