Mozart Constraint Subsystem


The main goal of this project is to integrate Gecode as the Mozart constraint services provider, namely, to replace the Mozart constraint layer with Gecode and take advantage of its advanced features like batch recomputation.

Current State

We are currently working on make it work with several guidelines in mind:

  • A clear design
  • Efficience

Involved Organizations

  • Université catholique de Louvain
  • Pontificia Universidad Javeriana
  • Universidad del Valle


This version of Mozart is maintained as a branch of the Mozart repository. You can check it out the sources by doing:

git clone git://

Compiling on Linux

git clone git://
cd mozart2-vm
git checkout css
mkdir build && cd build
cmake -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/path/to/installation/dir ..

This Mozart virtual machine depends on Gecode 3.7.3 in order to work. If you already have the Gecode library statically compilled, then you can avoid its compilation by adding the installation dir to cmake.

cmake -DBUILD_TYPE=Debug -DGECODE_INSTALL_DIR=/path/to/gecode/installation ..

Main Developers

  • Juan Francisco Diaz: juanfco.diaz at
  • Camilo Rueda: camilo.rueda at
  • Gustavo Gutiérrez: ggutierrez at
  • Gustavo A. Gómez: farhat at
  • Alejandro Cardona: carealejo at
  • Daniel Montenegro: dmontenegro92 at
  • Carlos Martinez: camarti at
  • Miguel Angel Villanueva: miavisa at
  • Andrés Mauricio Tabares: amautave at
  • Andrés F. Barco: anfelbar at


You can find weekly reports in google-drive: Css Reports


Goal Member Todo Status
Interface with gecode spaces (Gecode::space) ggutierrez done
Interface ConstraintVars ggutierrez done
Interface IntVarLike ggutierrez done
Finite domain variable implementation FDB module (Gecode::IntVar) ggutierrez inf, sup, is, int, dom, list, tuple, record, decl, value, reflect.min, reflect.max, reflect.mid, reflect.nextLarger, reflect.nextSmaller, reflect.size, reflect.domList, reflect.dom, reflect.nbSuspsin progress
Finite domain propagator implementation FDP module carealejo, ggfarhat, dmontenegro watch.min, watch.max, watch.size, sum, sumC, sumCN, sumAC, sumACN, sumD, sumCD, distinct, distinctB, distinctD, distinctOffset, distinct2, atMost, atLeast, exactly, element, conj, disj, exor, nega, impl, equi,, reified.dom, reified.sum, reified.sumC, reified.sumCN, reified.sumAC, reified.sumACN, reified.distance, reified.card, plus, plusD, minus, minusD, times, timesD, power, divI, modI, divD, modD, max, min, distance, less, lesseq, greater, greatereq, disjoint, disjointC, tasksOverlap in progress
Garbage Collection implementation anfelbar in progress
Finite domain distributor implementation amautave FD.distribute, FD.choose, FD.assign in progress
Search engine implementation miavisa in progress
Explorer implementation (Gecode::Gist) miavisa, … wait
Interface SetVarLike null wait
Finite sets variable implementation FSB module (Gecode::SetVar) null wait
Finite sets propagator implementation FSP module null wait
Finite sets distributor implementation null wait
Interface BoolVarLike null wait
Boolean variable implementation BDB module (Gecode::BoolVar) null wait
Boolean propagator implementation BDP module null wait
Boolean distributor implementation null wait


  • Mozart2Css Design document
  • Mozart2Css implementation document
  • Mozart2Css code documentation (What format? doxygen, SGML, rest?)


grupos/avispa/mozart2_css.txt · Última modificación: 2013/02/18 10:59 por abarco
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki