Hi,--- Synchronet 3.21a-Linux NewsLink 1.2
Many existing and evolving constraint logic
programming projects resemble some ancient
invention of gunpowder. For example SWI-Prologs
9.3.35 corouting for delayed goals is mainly
based on unify hooks. We show how verify hooks,
already used in formerly Jekejeke Prolog, can
be braught to Dogelog Player in a 100% Prolog fashion.
Since the recent version of Dogelog Player
supports cyclic terms, we could let the Jini
out of the bottle, and provide the experimental
library(edge/railgun) to model delayed goals with
nothing else than Alain Colmerauers rational trees.
The result is a Lean CLP of ca. 100 lines of code,
that already provides a simple constraint (#\=)/2
and a global constraint all_different/1.
The results are encouraging. For problems that
are not over constrained, Dogelog Player leaves
existing Prolog systems clearly behind, showing
a 2-3x times speed-up against SWI-Prolog and a
20-30x times speed-up against Trealla Prolog.
For more constrained problems we suggest ommiting
forward checking in favor of a form of ahead of
time (AOT) variable ordering. With this approach
and for Sudoku problems we are then in the midfield
between SWI-Prolog and Trealla Prolog.
Bye
See also:
Lean CLP for Dogelog Player https://qiita.com/j4n_bur53/items/addf1fc86856dd682dcb
We recently presented a fast constraint solver--- Synchronet 3.21a-Linux NewsLink 1.2
termed Railgun CLP(FD) that modelled attributed
variables simply via rCy$ATTRrCO/2 compounds and could
deal with integer dif/2 constraints. In this
instalment we allow (#\=)2 constraints and demonstrate
that it can be ported to SWI-Prolog.
Using polyfill for rCy$SEQrCO/2 from Dogelog Player,
we observed that running Railgun CLP(FD) inside
SWI-Prolog gives a 2rCo3x speed-up for the Queens
example, on both 32-bit and 64-bit. On the other
hand the price tag for big integer flexibility
seems to be a factor 35x slow down.
See also:
Porting Railgun CLP(FD) to SWI-Prolog
https://medium.com/2989/e9f2ef4e6878
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 59 |
| Nodes: | 6 (1 / 5) |
| Uptime: | 16:22:33 |
| Calls: | 810 |
| Calls today: | 1 |
| Files: | 1,287 |
| D/L today: |
10 files (21,017K bytes) |
| Messages: | 193,384 |