DESCRIPTION : This archive regroups the different implementations made alongside the thesis "Efficient Algorithms for Table Constraints".

AUTHOR : Jordan Demeulenaere (j.demeulenaere1@gmail.com)

CONTENT :

oscar-cp/src/
 | main/scala/oscar/cp/
 |  | constraints/tables/
 |  |  | TableCT.scala    : Implementation of the CT algorithm.
 |  |  | TableCTS.scala   : Implementation of the CT algorithm with sparse sets.
 |  |  | TableSTR3.scala  : Implementation of the STR3 algorithm.
 |  |  | TableGAC4.scala  : Implementation of the GAC-4 algorithm.
 |  |  | TableGAC4R.scala : Implementation of the GAC-4R algorithm.
 |  |  | TableMDD4R.scala : Implementation of the MDD-4R algorithm.
 |  |  | BenchmarkTable.scala : CP model used to solve an instance composed of table constraints (only).
 |  | mdd/
 |  |  | MDD.scala : Class used to construct a static MDD from a table of tuples.
 |  |  | ReversibleMDD.scala : Class used to represent a dynamic MDD from which we can remove nodes and edges.
 |  |  | MDDTableVar.scala   : Intermediary class used to make a link between a CPIntVar and an MDD.
 | test/scala/oscar/cp/
 |  | constraints/tables/
 |  |  | TestTableCT.scala    : Tests for the implementation of CT.
 |  |  | TestTableCTS.scala   : Tests for the implementation of CTS.
 |  |  | TestTableSTR3.scala  : Tests for the implementation of STR3.
 |  |  | TestTableGAC4.scala  : Tests for the implementation of GAC-4.
 |  |  | TestTableGAC4R.scala : Tests for the implementation of GAC-4R.
 |  |  | TestTableMDD4R.scala : Tests for the implementation of MDD-4R.
oscar-algo/src/main/scala/oscar/algo/reversible/
 | ReversibleSharedSparseSet.scala : Implementation of a reversible (shared) sparse set.
oscar-util/src/main/scala/oscar/util/
 | VectorMap.scala : Implementation of a vector map, i.e. an increasing list of distinct elements with an 
                     (amortized) access to the index of those elements in O(1) thanks to a map.

