Preface

This document is made for anyone who is looking for documentation on MaxiCP

What is MaxiCP

MaxiCP is an open-source (MIT licence) Java-based Constraint Programming (CP) solver for solving scheduling and vehicle routing problems. It is an extended version of the [MiniCP](https://www.minicp.org), a lightweight, open-source CP solver mostly used for teaching constraint programming.

The key features of MaxiCP are:

  • Improved performances (support for delta-based propagation, more efficient data structures, etc.).

  • Symbolic modeling layer also enabling search declaration.

  • Support for Embarrasingly Parallel Search.

  • More global constraints (e.g., bin-packing, gcc, etc.).

  • Sequence variables with optional visits for modeling complex vehicle routing and insertion based search heuristics, including LNS.

  • Conditional task interval variables including support for modeling with cumulative function expressions for scheduling problem.

MaxiCP is aimed to be used in real-life project and research in Constraint Programming.

Javadoc

The Javadoc API.

Install MaxiCP

MaxiCP source code is available from github.

Using an IDE

We recommend using IntelliJ.

From IntelliJ you can import the project:

Open > (select pom.xml in the minicp directory and open as new project)

From the command line

Using maven command line you can do:

$mvn compile # compile all the project
$mvn test    # run all the test suite

Some other useful commands:

$mvn jacoco:report          # creates a cover report in target/site/jacoco/index.html
$mvn javadoc:javadoc        # creates javadoc in target/site/apidocs/index.html

Getting Help with MaxiCP

Contact the authors by email, enter a bug report on github.

Who Uses MaxiCP?

If you use it for teaching or for research, please let us know and we will add you in this list.

  • UCLouvain, AIA Researchers in the Group of Pierre Schaus and Hélène Verhaeghe.

Citing MaxiCP and Contributors

If you use MaxiCP in your research, you may want to cite the library to acknowledge the contributions of the main developers.

@misc{MaxiCP2024,
  author       = {Pierre Schaus and Guillaume Derval and Augustin Delecluse and Laurent Michel and Pascal Van Hentenryck},
  title        = {MaxiCP: A Constraint Programming Solver for Scheduling and Vehicle Routing},
  year         = {2024},
  url          = {https://github.com/aia-uclouvain/maxicp},
}

Other Contributors to the project are: Hélène Verhaeghe, Charles Thomas, Roger Kameugne, Alice Burlats.