Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.

Slides:



Advertisements
Présentations similaires
Résolution Graphique d'un Programme Linéaire
Advertisements

La théorie du monde est petit
GESTION DE PORTEFEUILLE chapitre n° 7
3. Variantes de l’algorithme
Algorithmes et structures de données avancés
Spécification et qualité du logiciel
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Yann Chevaleyre et Jean-Daniel Zucker
1 Réunion biblio 13/12/00 Support Vectors Présentation générale SSS Maintaining Algorithm.
INTRODUCTION.
Génération de colonnes
Utilisation des tableaux
Programmation par contraintes
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
Y. Caseau 22/04/ Challenge ROADEF: Combinaison de Propagation de Contraintes et de Méta-Heuristiques Yves Caseau & all Bouygues – e-lab Francoro.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Les jeux (méthodes min-max et -)
CHALLENGE ROADEF 2001 Résolution par une métaheuristique à base de recherche à voisinage variable et propagation par contraintes Fabrice BUSCAYLET Fabrice.
Algorithmique et Programmation
Initiation à la conception de systèmes d'information
Programmation logique Logique des prédicats du premier ordre
Sésame Conseils Bon sens et compétences
Journée thématique du GDR IFS « Réduction de modèle en IFS » ENSAM – Jeudi 18 mai 2006 Validation de l’approche de la réduction a priori - POD sur l'équation.
Programmation linéaire
Programmation logique Démonstrateur automatique
Chapitre 5 Choix et demande.
Rappels de logique des prédicats du 1er ordre
Semaine #1 INF135 par Frédérick Henri.
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Programmation linéaire en nombres entiers : la méthode du simplexe
Algorithmes d ’approximation
Karim-Cyril Griche LSR/IMAG
Programmation non procédurale Le projet ECOLE 2000
Exposé d’article IFT – Ingénierie des connaissances Présenté par
ASI 3 Méthodes numériques pour l’ingénieur
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Programmation linéaire en nombres entiers : les méthodes de troncature
l’algorithme du simplexe
Jacques Nicolas INRIA /IRISA Rennes
Paradigmes des Langages de Programmation
Les algorithmes de découplage vitesse-pression
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
Programmation linéaire en nombres entiers
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
L’économie de concurrence parfaite
Ranking the web frontier Nadav Eiron, Kevin S. McCurley, John A. Tomlin IBM Almaden Research Center Bah Thierno Madiou.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Thème: Les fonctions Séquence 1 : Généralités sur les fonctions
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
RAISONNEMENT À PARTIR DE CAS R à PC. PLAN DU TRAVAIL Introduction Introduction Raisonnement analogique Raisonnement analogique Principe et étapes de R.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
PROGRAMMATION DYNAMIQUE (Exemples d’application)
Optimisation des horaires de personnel
1 Logiciels de confection automatique d’horaires.
Post-optimisation, analyse de sensibilité et paramétrage
Scripts et fonctions Instructions de contrôle
Chapitre 4 La représentation des nombres.
LOGIQUE ET PROGRAMMATION LOGIQUE
Définition Un algorithme est l’énoncé d’une séquence d’actions primitives réalisant un traitement pouvant être exécuté par un processeur bien défini dans.
INTRODUCTION AUX BASES DE DONNEES
Objets et Actions Élémentaires.
3. Variantes de l’algorithme
Développement du jeu Ricochet Robots pour Android
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Programme linéaire - solution graphique
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1

Plan Introduction I.Problèmes en PPC 1.Présentation d’un problème a.le réseau de contraintes (CN) b. les algorithmes de filtrage c. un mécanisme de propagation d. un mécanisme de recherche de solution 2.Méthodes de résolution a.Recherche arborescente b.Consistance locale II.Quelques modèles PPC pratiques III.Solveurs PPC Conclusion 2

Introduction(1) La programmation par contraintes (PPC) est un paradigme de programmation ou une technique de résolution des problèmes qui vient de l’Intelligence Artificielle et qui permettant de résoudre des problèmes combinatoires de grandes tailles tels que les problèmes de planification et d'ordonnancement. 3

Introduction(2) Elle est inspirée de : la programmation logique avec contraintes et principalement de Prolog des problèmes de satisfaction de contraintes (CSP) des travaux sur les “General Problem Solvers” 4

Problèmes en PPC 5

Présentation d’un problème(1) Dans la PPC un problème est représenté par : Des variables : appartenant à un domaine définissant l’ensemble de valeurs possibles de ces variables. Des contraintes : Une contrainte est une relation entre plusieurs variables qui limitent l'ensemble des valeurs que peuvent prendre ces variables simultanément. 6

Présentation d’un problème(2) Lorsque l'on définit une contrainte en énumérant l'ensemble des valeurs qui satisfont cette contrainte, on dit que la contrainte est définie en extension. On trouve aussi d'autres représentations de contraintes telles que: contraintes arithmétiques (,=,≥,≤,≠) sur des expressions ; contraintes logiques (disjonction, implication, etc.) ; contraintes dont la sémantique est décrite : « toutes différentes », etc. 7

Présentation d’un problème(3) Un problème en PPC peut se décomposer aussi en des sous-problèmes simples ou complexes c’est à dire à une conjonction de sous-problèmes. Et chaque problème sera résolu d’une manière spécifique et en conséquent de cette composition pour chaque contrainte, le domaine de variables sera réduis.  C’est les mécanismes de filtrage et propagation 8

Présentation d’un problème(4) La programmation par contraintes s’articule autour de quatre entités majeures : le réseau de contraintes (CN) les algorithmes de filtrage un mécanisme de propagation un mécanisme de recherche de solutions 9

le réseau de contraintes Un réseau de contrainte est défini par : un ensemble de variables X={x1, x2,…, xn} un ensemble de domaines D : est l’ensemble fini des valeurs possibles pour la variable xi un ensemble des contraintes C entre variables. 10

les algorithmes de filtrage(1) Il est associé à chaque contrainte. Son rôle est de supprimer des valeurs des domaines des variables de la contrainte pour lesquelles il n’est pas possible de satisfaire la contrainte. 11

les algorithmes de filtrage(2) Exemple : Soit X et Y deux variables. Les domaines : D(X) = [10,20] et D(Y) = [0,15]. La contrainte est : X<Y. Un algorithme de filtrage associé à cette contrainte pourra supprimer les valeurs de 15 à 20 de D(x) et les valeurs de 0 à 10 de D(y).  D(X) = [10,15] et D(Y) = [10,15] 12

un mécanisme de propagation Les algorithmes de recherche de solution, en PPC, s'appuient généralement sur la propagation de contraintes, pour réduire le nombre de solutions candidates à explore donc dès qu’un algorithme de filtrage modifie le domaine d’une variable, cette modification sera étudiée par les autres contraintes impliquant cette variable afin de déduire des autres suppressions.  On dit alors qu’une modification a été propagée Ce mécanisme de propagation est répété jusqu’à ce que plus aucune modification n’apparaisse. 13

un mécanisme de recherche de solutions (1) La programmation par contraintes est plus particulièrement des CSP (Constraints Satisfaction Problem) avait pour but de résoudre des problèmes de satisfaction. Donc une solution est considérée comme une instanciation des variables qui satisfait toutes les contraintes. 14

un mécanisme de recherche de solutions (2) Le but de ce mécanisme est de trouver une solution éventuellement optimale en utilisant des différents moyens comme : les stratégies de choix de variables et de valeurs les méthodes de décomposition les améliorations itératives 15

Méthodes de résolution Recherche arborescente Propagation des contraintes 16

Recherche arborescente (1) Dans le cas de la résolution sur domaines finis, il est en théorie possible d'énumérer toutes les possibilités et de vérifier si elles violent ou non les contraintes, cette méthode est appelée générer et tester. Mais lorsque le problème devient de taille de plus en plus grande cette solution devient inutile donc on trouve le filtrage comme solution à ce problème 17

Recherche arborescente (2) Le filtrage consiste à déduire à partir de contraintes les valeurs impossibles et si à la fin une valeur est affectée à une variable, on dit variable instanciée mais le filtrage tout seul ne peut pus instancier toutes les variables on doit relancer le filtrage d’une manière récursive jusqu'à aboutir à une instanciation des toutes les variables. 18

Recherche arborescente (3) Cette série de découpages du problème peut être représentée sous forme d'un arbre. Le but de la recherche est de parcourir cet arbre (en le construisant au fur et à mesure) jusqu'à trouver une solution au problème tandis que le filtrage consiste à « élaguer » cet arbre en supprimant toutes les parties n'aboutissant qu'à des contradictions. 19

Propagation des contraintes (1) La propagation de contraintes (ou filtrage) consiste à supprimer d'un problème de PPC des valeurs de variables ne pouvant pas prendre part à une solution. Étant donné que toutes les contraintes d'un problème de PPC doivent être satisfaites, le fait pour une valeur d'une variable de ne pas pouvoir satisfaire une seule contrainte du problème implique qu'elle ne pourra prendre part à aucune solution du problème. 20

Propagation des contraintes (2) Il est donc possible de raisonner séparément sur chaque contrainte afin de pouvoir trouver des valeurs pour lesquelles cette contrainte ne peut être satisfaite, et donc les retirer du problème entier. 21

Propagation des contraintes (3) On appelle consistance locale le fait de vérifier que certaines variables ne violent pas les contraintes qui lui sont liées. On ignore alors les autres variables et contraintes. Cela permet de filtrer alors certaines valeurs impossibles pour un coût réduit. Il existe plusieurs consistances locales, offrant chacune un équilibre différent entre efficacité du filtrage et rapidité de calcul. 22

Quelques modèles PPC pratiques 23

Exemple 1: coloriage d’une carte (1) 24

Exemple 1: coloriage d’une carte (2) 25

Exemple 1: coloriage d’une carte (3) 26

Exemple 2: SUDOKU (1) 27

Exemple 2: SUDOKU (2) 28

Exemple 2: SUDOKU (3) 29

Exemple 2: SUDOKU (4) 30

Exemple 2: SUDOKU (5) Donc les étapes à suivre pour résoudre un problème de SUDOKU sont : Raisonnement par élimination, réduction du domaine Raisonnement local Transmission des déductions aux autres régions 31

Autres exemples D’autres exemples de résolution de problèmes par PPC : cryptanalyse les n reines les circuits énigmes raisonnement temporel qualitatif 32

Solveurs PPC 33

Solveurs basés sur la programmation logique SICStus Prolog ECLiPSE Prolog GNU Prolog CHIP 34

Solveurs basés sur des librairies ILOG soveur (C++) JSolver (Java) Choco (Java) Facile (Ocaml) CHIP Library (C++) JLC (Java) 35

Conclusion La PPC est très souple puisqu’aucune hypothèse n’est faite ni sur le type des contraintes utilisées ni sur les domaines des variables. Par ailleurs, aucune solution ne peut être perdue puisque toutes les éventualités seront envisagées, c’est pourquoi on parle également d’algorithme énumératif. 36