Deineko, Nicolas
[UCL]
Schaus, Pierre
[UCL]
Extensional constraints are the most expressive tools of Constraint Programming to model any kind of relation between variables. For instance, a positive table constraint is a type of extensional constraint that represents, using a table, all combinations of values that some variables can take. Compact-Table (CT) is a state-of-the-art propagator enforcing Generalized Arc Consistency on positive table constraints. The success of CT comes from its speediness owing to its ability to handle multiple elements in one operation by using bitwise computations. The bitwise computations of CT are currently implemented with 64-bit words in the OscaR solver, while today's microprocessors can handle more than 64 bits in one instruction. This master's thesis explores the adaptation to larger words of the CT propagator implemented inside OscaR. More precisely, the bitwise operations are re-implemented in Scala with the non-final jdk.incubator.vector API introduced in JDK 16. The new implementation is compared to the existing one on multiple problems involving positive table constraints. The results show that this approach is in general not beneficial, but can be used to speed up the search time of randomized problems involving large tables. This master's thesis also considers the idea of reordering tables rows before the search to improve the search time by reducing the number of operations done by CT. Compared to the same search on randomly ordered tables, the reordering idea manages to reduce the search time by up to 72.8% on randomized problems involving large tables and by 13% on average on more general problems.


Bibliographic reference |
Deineko, Nicolas. Could Compact-Table be faster? Impact of word size and tuple order on the performance of a table constraint propagator. Ecole polytechnique de Louvain, Université catholique de Louvain, 2022. Prom. : Schaus, Pierre. |
Permanent URL |
http://hdl.handle.net/2078.1/thesis:25252 |