Plateforme Choco

Décrire et résoudre des problèmes de décision

Logos

Une bibliothèque libre de programmation par contraintes

Choco est une bibliothèque logicielle destinée à modéliser et résoudre des problèmes fortement combinatoires grâce à des techniques de programmation par contraintes. L’utilisateur décrit un problème de manière déclarative en établissant la liste des contraintes qui doivent être satisfaites dans chaque solution.

Choco1Puis, le problème est résolu automatiquement en combinant des algorithmes de filtrage avec un mécanisme d’exploration de l’espace de recherche.

La bibliothèque est écrite en Java, est distribuée sous licence BSD*. Le code est largement testée et documentée, ce qui fait de Choco un outil robuste et stable. Choco concrétise le fruit de plusieurs années de développement et d’expertise et fait parti des solveurs libres les plus efficaces.

En effet, ce travail a de nombreuses fois été récompensé lors de participations à différentes compétitions de solveurs et au travers de multiples collaborations industrielles.

* La license BSD est «une license de distribution de logiciels. Elle permet de réutiliser tout ou une partie du logiciel sans restriction, qu’il soit intégré dans un logiciel libre ou propriétaire ». (src: wikipedia)

Choco est donc destinée à être utilisée dans l’enseignement, la recherche et les projets industriels.

Les récompenses

Depuis longtemps, Choco participe à des compétitions internationales de solveur.
Palmarès de Choco aux compétitions de solveurs

Accompagnement à la résolution de problèmes d’optimisation

Choco1

Notre offre

  • Collecte et analyse des besoins : description des règles qui régissent le problème à traiter
  • Etude de faisabilité : estimation de l’intérêt de la programmation par contraintes pour résoudre efficacement le problème
  • Formalisation sous la forme de modèle à base de contraintes : le problème est exprimé à l’aide de variables (inconnues) et de contraintes (liens entre les contraintes)
  • Conception de prototype : le modèle est mis en oeuvre, des solutions sont proposées
  • Restitution des résultats

Les projets, études et expertises sont éligibles au CIR

Exemples de problèmes traités

La généricité du langage de modélisation intrinsèque à la programmation par contraintes permet de décrire une grande variété de problèmes.

  • Gestion de ressources humaines ou matériels
    exemple : conception planning d’IRM prenant en compte les disponibilités des opérateurs, les arrêts techniques, les durées des opérations, etc.
  • Configuration de produits ou services complexes.
    exemple : configuration personnalisée de chaussures de course, intégrant les spécificités physique du coureur et ses envies, le choix des matériaux, etc.
  • Planification de maintenance prédictive.
    exemple : étude du dimensionnement de la flotte de bateaux nécessaire pour maintenir un ensemble de bouées de signalisation maritime.

Partenariats

  • COSLING : start-up dans le domaine de l’aide à la décision, partenaire privilégié (les fondateurs sont d’anciens doctorants dl’IMT Atlantique, dont l’un a été contributeur actif de Choco)
  • Direction des affaires maritimes : étude dimensionnement de flotte de bateaux pour la maintenance prédictive des phares et balises sur le littorale français
  • EuroDécision : réparation de planning de conducteurs de bus, au niveau opérationnel
  • Variantum : configuration de produits complexes

 

Consulter la version pdf

Contact

Charles Prud'homme

Charles Prud’homme, Maitre-Assistant Informatique, au développement de la librairie Choco depuis 2008. D’abord en tant qu’ingénieur d’étude, au service des chercheurs de l’équipe de recherche TASC. Puis, en tant que doctorant (2011-2014), il a co-conçu la version actuelle de la librairie, plus efficace. Ensuite, en tant qu’ingénieur de recherche et enfin, comme enseignant-chercheur (2018). Choco lui a servi de support de recherche et d’outil de valorisation, pour développer de nouvelles fonctionnalités, et les utiliser sur des cas pratiques.

 

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