La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1."— Transcription de la présentation:

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

2 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

3 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

4 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

5 Problèmes en PPC 5

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

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

17 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

18 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

19 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

20 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

21 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

22 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

23 Quelques modèles PPC pratiques 23

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

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

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

27 Exemple 2: SUDOKU (1) 27

28 Exemple 2: SUDOKU (2) 28

29 Exemple 2: SUDOKU (3) 29

30 Exemple 2: SUDOKU (4) 30

31 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

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

33 Solveurs PPC 33

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

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

36 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


Télécharger ppt "Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1."

Présentations similaires


Annonces Google