CHOCO Platform

Describe and solve decision-making problems


A library for constraint satisfaction problems

Choco-solver is a software library designed to accurately model and solve combinatorial problems using constraint-programming techniques.

Choco1Users can describe problems in a declarative way, listing constraints that should be satisfied in each solution. The problem is then solved automatically by combining filter algorithms with a search space exploration mechanism.

The library is written in Java and is distributed under a BSD* license.

The code has been extensively tested and documented, making Choco-solver a robust and stable tool. Choco-solver is the result of several years of development and expertise, and is one of the most efficient open source solvers. This work has been rewarded many times in different Solver competitions and through multiple industrial collaborations

*a BSD license is a «software distribution license. All or part of the software can be reused without restriction, embedded in either free or proprietary software». (Wikipedia)

Choco-solver is therefore intended to be used in teaching, research and development, as well as in industrial projects.

Support in solving optimization problems

What we offer

  • Choco1Needs assessment and analysis: description of the rules governing the problem to be addressed
  • Feasibility study: assessment of how suited constraint programming is to solving the problem effectively
  • Formalization in the form of a constraint model: the problem is expressed using variables (unknowns) and constraints (links between constraints)
  • Prototype design: the model is implemented and solutions are proposed
  • Delivery of results

Projects, studies and expertise are eligible for the French research tax credit.


Examples of problems previously addressed:

The generic nature of the modeling language used for constraint programming can be used to describe a wide varity of problems.Choco1

  • Ressource management (human or material).
    E.g. : MRI scheduling design, taking into account the availability of operators, technical stoppages, operating times, et
  • Configuration of complex products or services.
    E.g.: customization of running shoes, integrating the runner’s physical characteristics and desires, choice of materials, etc
  • Predictive maintenance scheduling.
    E.g. : dimensioning of the fleet of vessels required to maintain a set of maritime signal buoys


  • COSLING : start-up in the field of decision-making support; privileged partner (the founders are former IMT Atlantique PhD students, one of whom was a contributor to the project)
  • Directorate of Maritime Affairs: study dimensioning the fleet of vessels for predictive maintenance of lighthouses and beacons on the French coast.
  • EuroDecision: repair of a bus driver schedule, at an operational level.
  • Variantum: configuration of complex products

Consult the pdf version


Charles Prud'homme

Charles Prud’homme has been working on the development of the Choco-solver library since 2008, first as a design engineer, working for the TASC research team. Then, as a PhD student (2011-2014), he co-designed the current, efficiency-enhanced, version of the library. He continued his work on the library as a research engineer, and finally as a teacher-researcher (2018). Choco-solver has been at the heart of his work, during which he has continued to develop new features, and apply them on practical cases.

Campus de Nantes La Chantrerie 4, rue Alfred Kastler CS 20722 44307 Nantes cedex 3