Vous êtes sur la page 1sur 38

Programmation par contraintes

Amal HALLOU
amalhallou@gmail.com

2ème année du Cycle Ingénieur – Génie Informatique –

Année universitaire 2023 - 2024


INTRODUCTION

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


INTRODUCTION

Exemple introductif : Problème des quatre couleurs

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


INTRODUCTION

▪Un ensemble de techniques de résolution de problèmes :


Problèmes de Satisfaction de Contraintes ou CSP
▪Mise en œuvre à travers des outils informatiques
(langages, bibliothèques) de Programmation Par
Contraintes (PPC)
▪S'appuie sur une théorie élaborée dans le domaine de
l'Intelligence Artificielle

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


INTRODUCTION

•Un problème :
→Vérifier qu’une solution résout le problème
Simulation, Vérification
→Trouver une solution du problème
Programmation par Contraintes
→Trouver la meilleure solution du problème
Programmation Linéaire

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


INTRODUCTION

➔Objectif :
Trouver une solution réalisable
•qui respecte des contraintes faciles à vérifier
Formules mathématiques simples, tableaux de
valeurs possibles
•avec des ensembles de valeurs possibles pour les variables de
décision
Problèmes de satisfaction de contraintes

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


INTRODUCTION

“Constraint programming represents one of the closest approaches


computer science has yet made to the Holy Grail of programming:
the user states the problem, the computer solves it.”
[Eugene C. Freuder, Constraints, April 1997]

-fournir un moyen d'exprimer dans un formalisme déclaratif (dans


un langage de modélisation souple, proche des concepts de
l'utilisateur) les contraintes qui définissent un problème
(composant langage)
-fournir les algorithmes capables de le résoudre, lorsque c’est
possible (composant résolveur)

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PLAN

1. Introduction aux Problèmes de Satisfaction des


Contraintes (CSP)

2. Modélisation des CSP

3. Résolution des CSP

a) CSP binaires discrets

b) CSP n-aires discrets

c) CSP continus
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19
1. PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
Exemple 1 : Problème des quatre couleurs

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
Exemple 2 : Marchand ambulant

Un marchand ambulant possédant un sac de capacité


20. Il doit choisir parmi les objets suivants pour faire
un profit d’au moins 30.

Objet Poids Profit


Vélo 5 9
Batterie 2 5
Boîte à outils 3 6

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Exemples d’application
D’abord, appliqué à des problèmes de jeu,
maintenant orienté sur des CSP de taille réelle :
- aménagement intérieur d’un avion à l’Aérospatiale
- planification du réseau France Telecom
...

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Domaines d’application
•Agencement
• Diagnostique et Vérification
• Planification
• Ordonnancement et Emplois du temps
• Emballage et Placement
• Logistique

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Domaines d’application
• Informatique : Analyse de programme, Robotique
• Biologie : Repliement de protéine, Séquençage de l’ADN
• Économie : Ordonnancement
• Linguistique : Analyse grammaticale
• Médecine : Aide au diagnostique
• Physique : Modélisation des systèmes
• Géographie : Systèmes de géo-information
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Secteurs d’application
•Industrie : transport de matières nucléaires (CEA) …
•Transport : rotation d’équipages (Corsair), gestion de port (port
de Singapour) …
•Télécommunications : composants visuels (Hewlett-Packard) …
•Biologie moléculaire : prédiction de structure protéique (Esprit) …
•Environnement : pollution des eaux (ville de Venise), recyclage
(Michelin) …
•Banques : aide à l’attribution de crédits (Crédit Lyonnais, Société
Générale) …
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)
Problème de satisfaction de contraintes (CSP)
(Introduit par Montanari en 1974)
= Triplet (V, C, D) où :
→V est un ensemble fini de variables 𝑉1 , 𝑉2 , …, 𝑉𝑛
→ C est un ensemble fini de contraintes 𝐶1 , 𝐶2 , …, 𝐶𝑚 où chaque
contrainte est définie sur un sous-ensemble de V;
→ D est un domaine non vide constitué de l’union des valeurs
possibles pour chaque variable : 𝐷𝑉1 , 𝐷𝑉2 , …, 𝐷𝑉𝑛 ;

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

1) Domaine
Soit 𝑉1 , 𝑉2 , …, 𝑉𝑛 les variables de décision d’un CSP
→ Chaque variable 𝑉𝑖 doit prendre ses valeurs dans le domaine 𝐷𝑉𝑖
- Discret {1,5,7} ou continu [1,9]
- Fini ou infini

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

2) Contraintes
Une contrainte restreint les valeurs que l’on peut affecter
simultanément à des variables (les variables concernées par cette
contrainte)
* Une contrainte restreint les valeurs que l’on peut affecter à une
variable (x<5); à deux variables simultanément (x<y); ou a
plusieurs variables simultanément (x+y<z+t)

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

2) Contraintes
2 types de déclaration:
- En extension : énumération des valeurs admises
(x = 1 et y = 2) ou (x = 2 et y = 4) ou (x = 3 et y = 0)
- En compréhension : formules mathématiques, …
x<y;
(ABC) forme un triangle isocèle ;
x, y, z distincts deux à deux

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

2) Contraintes
-Contraintes logiques
Si x = 4 alors y = 5
x = y ou x = 2y
-Contraintes globales
Toutes les variables sont différentes
-Méta-contraintes
La valeur 5 est utilisée exactement 3 fois

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

2) Contraintes
- Contrainte unaire :
X<5
porte sur une seule variable
- Contrainte binaire :
X<Y
porte sur deux variables
- Contrainte n-aire :
porte sur n variables X+Y<Z+T

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

2) Contraintes
- Contrainte induite :
Contrainte satisfaite par toutes les solutions de P
➔peut être rajouté au CSP sans modifier l’ensemble des solutions

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Assignation (Affectation)
Une assignation A de V dans D est une fonction qui associe à une
variable 𝑉𝑖 de V une valeur 𝑑𝑖 du sous-domaine 𝐷𝑉𝑖
➔𝑑𝑖 est assignée à 𝑉𝑖 par A
Exemple : A = {(X1,V1), (X3,V3), (X4,V4)}

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Assignation (Affectation)
Une affectation peut-être :
- Partielle : affectation de certaines variables
ou
- Totale : affectation de toutes les variables

- Consistante : ne viole aucune contrainte


ou
- Inconsistante : viole au minimum une contrainte

➔ Une solution = affectation totale consistante


A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Assignation (Affectation)
Exemple :
V = {a, b, c, d}
D(a) = D(b) = D(c) = D(d) = {0, 1} Domaine discret fini
C = {a ≠ b ; c ≠ d ; a + c < b} 2 contraintes binaires , 1 contrainte 3-aires
A1 = {(a, 1), (b, 0), (c, 0), (d, 0)} totale, inconsistante

A2 = {(a, 0), (b, 0)} partielle, inconsistante


A3 = {(a, 1), (b, 0)} partielle, consistante

A4 = {(a, 0), (b, 1), (c, 0), (d, 1)} totale, consistante
➔ Solution du CSP
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19
PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Types de CSP :
• CSP Discret / Continu :
CSP discret : CSP dont tous les domaines sont finis ou infinis de
valeurs symboliques ou numériques dénombrables
CSP continu : CSP dont tous les domaines sont numériques
indénombrables, en général des intervalles sur R
• CSP Binaire ou non :
CSP binaire : CSP dont toutes les contraintes binaires

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Types de CSP :
• CSP consistant
C’est un CSP qui admet une solution
• CSP globalement consistant
C’est un CSP dont toute instanciation consistante est globalement
consistante

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Exemples d’application
1. Problème des quatre couleurs

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Exemples d’application
2. Problème des N Reines

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


PROBLÈMES DE SATISFACTION DES CONTRAINTES (CSP)

Exemples d’application
3. Le Carré magique
= 15 = 15 = 15

= 15

= 15

= 15
= 15 = 15
A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19
2. MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Un problème est rarement donné sous la forme de CSP


➔1ère étape : Le modéliser en tant que CSP
➔ Déterminer :
* Les variables de décision
* Le domaine de valeurs de chaque variable
➔Décrire les contraintes qui lient entre les variables

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Exemples :
1) Le problème des N Reines
Placer N reines dans un échiquier N*N sans qu’elles ne se
menacent
➔Une reine - par ligne,
- par colonne
- par diagonale

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Exemples :
1) Le problème des N Reines
N=4

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Exemples :
2) Le retour de la monnaie
On s’intéresse à un distributeur automatique de boissons.
L’utilisateur insère des pièces de monnaie pour un total de T
centimes de dirhams, puis il sélectionne une boisson, dont le prix
est de P centimes de dirhams (T et P étant des multiples de 10).
Il s’agit alors de calculer la monnaie à rendre, sachant que le
distributeur a en réserve A pièces de 2 dirhams, B pièces de
1dirham, C pièces de 50 centimes, D pièces de 20 centimes et E
pièces de 10 centimes

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Exemples :
3) Send More Money
On considère l’addition suivante :
SEND
+ MORE
= MONEY
Chaque lettre représente un chiffre différent (entre 0 et 9).
On souhaite connaitre la valeur de chaque lettre, sachant que la
première lettre de chaque mot représente un chiffre non nul

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19


MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Modélisation des CSP à contraintes en extension


Exemple : Firme automobile
Une firme automobile veut sortir un nouveau modèle de voiture
fabriqué dans tout le Maroc :
• Les portières et le capot sont faits à Tanger, où le constructeur
ne dispose que de peinture rose, rouge et noire ;
• La carrosserie est faite à Dakhla, où l’on a de la peinture
blanche, rose, rouge et noire ;
• Les pare-chocs, faits à Casablanca sont toujours blancs ;
• La bâche du toit-ouvrant, qui est faite à Marrakech, ne peut
être que rouge ;
• Les enjoliveurs sont faits à Oujda, où l’on a de la peinture rose
A. HALLOU et rouge PROGRAMMATION PAR CONTRAINTES GI19
MODÉLISATION DES PROBLÈMES DE SATISFACTION DES
CONTRAINTES (CSP)

Modélisation des CSP à contraintes en extension


Exemple : Firme automobile
Le concepteur impose quelques contraintes quant à l’agencement
des couleurs :
• La carrosserie doit être de la même couleur que les portières ;
• Les portières doivent être de la même couleur que le capot ;
• Le capot doit être de la même couleur que la carrosserie ;
• Les enjoliveurs doivent être plus clair que la carrosserie ;
• Les pare-chocs doivent être plus clair que la carrosserie ;
• Le toit-ouvrant doit être plus clair que la carrosserie.

A. HALLOU PROGRAMMATION PAR CONTRAINTES GI19

Vous aimerez peut-être aussi