]> Repositorios git - scryer-prolog.git/commit
ENHANCED: CLP(ℤ): Reduce redundant propagator invocations during all_distinct/1 filtering
authorMarkus Triska <[email protected]>
Mon, 25 Jul 2022 18:08:54 +0000 (20:08 +0200)
committerMark Thom <[email protected]>
Thu, 27 Oct 2022 05:36:07 +0000 (23:36 -0600)
commitc7caf6b7a9cd6455ffd9b3367391636c0ef5686d
treee9dae93b877459f5953c4c2a887c3ccbf63c9683
parent4422ffe39f1ef025934a1b61382ce25519675dfb
ENHANCED: CLP(ℤ): Reduce redundant propagator invocations during all_distinct/1 filtering

First, the current propagator is now logged and not re-triggered
during filtering. Second, and more significantly, all neq_num/2
constraints are scheduled and processed before more global constraints
are invoked. In this way, all the distilled information can be taken
into account by subsequently invoked global constraints.

These changes yield a 3-fold improvement in several Sudoku instances,
and a significant runtime reduction in social golfer instance 8-4-9.
src/lib/clpz.pl