• Supersonic FF for Railgun CLP(FD) (Was: Porting Railgun CLP(FD) to SWI-Prolog)

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Jan 21 21:24:29 2026
    From Newsgroup: comp.lang.prolog


    We recently presented a fast constraint solver
    termed Railgun CLP(FD) that modelled attributed
    variables simply via rCy$ATTRrCO/2 compounds. We
    already went through an iteration which allowed
    (#\=)/2 constraints. In this instalment we
    present some further progress. In particular we
    intoduce a discount(C) = 1/k heuristic.

    We demonstrated an additional scoring of variables
    among the same degree to improve the static variable
    ordering (SVO). It can give a 100x times speed up
    in a magic square example. Putting Dogelog Player
    on equal foot with SWI and ECLiPSe, while recent
    versions of Scryer and Trealla were still 10x-30x
    times slower.

    See also:

    Supersonic FF for Railgun CLP(FD) https://qiita.com/j4n_bur53/items/0d1334f1f4c2234f3f47

    Mild Shock schrieb:

    We recently presented a fast constraint solver
    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
    --- Synchronet 3.21a-Linux NewsLink 1.2