Projet M1 : Modélisation et Résolution du Problème de Sudoku 1

Transcription

Projet M1 : Modélisation et Résolution du Problème de Sudoku 1
Projet M1 : Modélisation et Résolution du
Problème de Sudoku
1
Contexte
La PPC est une technique apparue à la n des années soixante pour résoudre
des problèmes combinatoires de grande taille, jugés très diciles à résoudre
par l'humain, comme les problèmes d'ordonnancement et de planication.
Les problèmes de contraintes sont posés dans plusieurs domaines, on trouve
par exemple des applications de la PPC dans les domaines suivants :
• Santé : aectation des inrmières dans les hôpitaux (HSW, France),
• Transports : planication des chaueurs de bus (RATP, France),
• Industrie : planication de livraisons de pièces détachées (Renault,
France).
Comme il est présenté dans la gure 1, la PPC hérite principalement de
deux spécialités :
• La branche informatique qui traite l'Intelligence Articielle
• La branche mathématique qui traite la Recherche Opérationnelle
Le principe de la PPC consiste dans un premier temps à modéliser le
problème de contrainte sous forme d'un ensemble de variables prenant leurs
Figure 1: Origine de la Programmation Par Contraintes
1
valeurs dans un ensemble ni de valeurs, liées par un ensemble de contraintes.
Ensuite si le domaine de chaque variable n'est pas vide, une recherche arborescente est appliquée. Elle consiste à choisir pour chaque n÷ud dans
l'arbre, suivant une politique particulière, une variable non assignée et de
l'assigner avec une certaine valeur. Pour éliminer dans chaque n÷ud les
valeurs qui ne peuvent pas participer à trouver une solution, les algorithmes
de recherche peuvent utiliser les techniques de ltrage et de propagation de
contraintes. Une solution est trouvée lorsqu'il reste une seule valeur dans
le domaine de chaque variable et que toutes les contraintes sont satisfaites.
Dans le cas d'un problème de satisfaction de contrainte, la résolution consiste
à trouver une ou toutes les solutions possibles. Dans le cas d'un problème
d'optimisation, la résolution consiste à trouver une solution optimale.
Objectif
L'objectif de ce stage est de modéliser et résoudre le problème de sudoku en
utilisant le solveur de contraintes OR-Tools. OR-Tools est un solveur open
source développé en C++ par l'équipe de recherche Google pour résoudre
les problèmes de satisfaction et d'optimisation sous contraintes.
Plan
• État de l'art
• Modélisation du problème de sudoku
• Résolution du problème de sudoku avec le solveur OR-Tools
Groupe
Ce stage est proposé pour un groupe de 2 étudiants.
Contact
[email protected]
2