.. _intro:
*******
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:
Install MaxiCP
==============
MaxiCP source code is available from github_.
**Using an IDE**
We recommend using IntelliJ_.
From IntelliJ_ you can import the project:
.. code-block:: none
Open > (select pom.xml in the minicp directory and open as new project)
**From the command line**
Using maven_ command line you can do:
.. code-block:: none
$mvn compile # compile all the project
$mvn test # run all the test suite
Some other useful commands:
.. code-block:: none
$mvn jacoco:report # creates a cover report in target/site/jacoco/index.html
$mvn javadoc:javadoc # creates javadoc in target/site/apidocs/index.html
.. _github: https://github.com/aia-uclouvain/maxicp
.. _IntelliJ: https://www.jetbrains.com/idea/
.. _maven: https://maven.apache.org
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.
.. code-block:: latex
@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.