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

IFT 615 – Intelligence Artificielle Satisfaction de contraintes Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza.

Présentations similaires


Présentation au sujet: "IFT 615 – Intelligence Artificielle Satisfaction de contraintes Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza."— Transcription de la présentation:

1 IFT 615 – Intelligence Artificielle Satisfaction de contraintes Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza

2 Objectifs l À la fin de cette leçon vous devriez : u pouvoir modéliser un problème donné comme un problème de satisfaction de contraintes u pouvoir expliquer et simuler le fonctionnement de lalgorithme backtracking-search u décrire les différentes façon daccélérer backtracking-search, incluant les algorithmes dinférence forward-checking et AC-3 u pouvoir résoudre un problème de satisfaction de contraintes avec la recherche locale IFT615Froduald Kabanza2

3 © Froduald Kabanza3IFT615 Sujets couverts l Modèle général des problèmes de satisfaction de contraintes l Algorithme Backtracking-search. l Algorithme AC-3. l Applications.

4 © Froduald Kabanza4IFT615 Rappel : Recherche dans un espace détats l Nous avons vu quun certain nombre de problèmes intéressants peuvent être résolus en les formulant comme des problèmes de recherche dans un graphe détats : u On tient compte des aspects spécifiques à lapplication en définissant une fonction heuristique (h) qui guide lexploration efficace du problème; u La fonction de transition tient compte de laspect dynamique de lapplication. u Par contre, les états (les nœuds) du graphe sont « opaques » vis-à-vis de la fonction de transitions : » Les successeurs ne dépendent de manière explicite de la structure interne de létat.

5 Problème de satisfaction de contraintes l La résolution de problèmes de satisfaction de contraintes peut être vu comme un cas particulier de la recherche heuristique l La structure interne des états (noeuds) a une représentation particulière u un état est un ensemble de variables avec des valeurs correspondantes u les transitions entre les états tiennent comptent de contraintes sur les valeurs possibles des variables l Sachant cela, on va pouvoir utiliser des heuristiques générales, plutôt que des heuristiques spécifiques à une application l En traduisant un problème sous forme de satisfaction de contraintes, on élimine la difficulté de définir lheuristique h(n) pour notre application IFT615Froduald Kabanza5

6 © Froduald Kabanza6IFT615 Exemple 1 l Soit le problème défini comme suit : u Ensemble de variables V = {X 1, X 2, X 3 } u Un domaine pour chaque variable D 1 = D 2 = D 3 ={1,2,3}. u Une contrainte spécifiée par léquation linéaire X 1 + X 2 = X 3. l Il y a trois solutions possibles : u (1,1,2) u (1,2,3) u (2,1,3)

7 © Froduald Kabanza7IFT615 Problème de satisfaction de contraintes l Formellement, un problème de satisfaction de contraintes (ou CSP pour Constraint Satisfaction Problem) est défini par: u Un ensemble fini de variables X 1, …, X n. »Chaque variable X i a un domaine D i de valeurs permises. u Un ensemble fini de contraintes C 1, …, C m sur les variables. »Une contrainte restreint les valeurs pour un sous-ensemble de variables. l Un état dun problème CSP est défini par une assignation de valeurs à certaines variables ou à toutes les variables. u {X i =v i,X n =v 1,…}. l Une assignation qui ne viole aucune contrainte est dite consistante ou légale. l Une assignation est complète si elle concerne toutes les variables. l Une solution à un problème CSP est une assignation complète et consistante. l Parfois, la solution doit en plus maximiser une fonction objective donnée.

8 © Froduald Kabanza8IFT615 Exemple 2 : Colorier une carte l On vous donne une carte de lAustralie : l Et on vous demande dutiliser seulement trois couleurs (rouge, vert et bleu) de sorte que deux états frontaliers naient jamais les mêmes couleurs. l On peut facilement trouver une solution à ce problème en le formulant comme un problème CSP et en utilisant des algorithmes généraux pour CSP.

9 © Froduald Kabanza9IFT615 Exemple 2: Colorier une carte l Formulation du problème CSP : l Les variables sont les états : V = { WA, NT, Q, NSW, V, SA, T } l Le domaine de chaque variable est lensemble des trois couleurs : {R, G, B} l Contraintes : Les régions frontalières doivent avoir des couleurs différentes u WA NT, …, NT Q, …

10 © Froduald Kabanza10IFT615 Exemple 2: Colorier une carte l Solution : { WA = R, NT = G,Q = R, NSW = G,V = R,SA = B,T = G }

11 © Froduald Kabanza11IFT615 Graphe de contraintes l Pour des problèmes avec des contraintes binaires (c-à-d., entre deux variables), on peut visualiser le problème CSP par un graphe de contraintes. l Un graphe de contraintes est un graphe dont les nœuds sont des variables (un nœud par variable) et les arcs sont des contraintes entre les deux variables. WA NT WA SA NT Q NT SA Q SA Q NSW NSW V SA V SA NSW

12 © Froduald Kabanza12IFT615 Exemple 2 : N-Queens l Positionner N reines sur un échiquier de sorte quaucune dentre elles nest en position dattaquer une autre. l Exemple avec 4 reines (4-Queens) l Une reine peut attaquer une autre si elles sont toutes les deux sur: la même ligne, la même colonne, ou la même diagonale.

13 © Froduald Kabanza13IFT615 Exemple 3 : N-Queens l Modélisation comme problème CSP: l Variables : Q 1 … Q n correspondant aux colonnes 1, …, N. l Domaines : chaque variable a le domaine de valeurs {1, …., N} La colonne i a la valeur k si la reine (Queen) dans la colonne i est dans la rangée k. l Contraintes : Pas deux reines sur même ligne ou diagonale.

14 © Froduald Kabanza14IFT615 Algorithme Depth-First-Search Naïve pour CSP l On pourrait être tenté dutiliser la recherche dans un graphe (Algorithme rechercheDansGraphe) ou un depth-first-search naïf avec les paramètres suivants: u Un état est une assignation. u État initial : assignation vide { } u Fonction successeur : assigne une valeur à une variable non encore assignée, en respectant les contraintes. u But : Assignation complète et consistante. l Comme la solution doit être complète, elle apparaît à une profondeur n, si nous avons n variables. l Cependant, ici le chemin à la solution est sans importance. u On peut travailler avec des états qui sont des assignations complètes (consistantes ou non). u On peut utiliser une méthode de recherche locale (hill-climbing, etc.)

15 Limitations de lapproche précédente l Supposons une recherche en largeur : u le nombre de branches au premier niveau, dans larbre est de n*d (d est la taille du domaine), parce que nous avons n variables, chacune pouvant prendre d valeurs u au prochain niveau, on a (n-1) d successeurs pour chaque nœud u ainsi de suite jusquau niveau n u cela donne n!*d n nœuds générés, pour seulement d n assignations complètes l Lalgorithme ignore la commutativité des transitions : u SA=R suivi de WA=B est équivalent à WA=B suivi de SA=R u si on tient compte de la commutativité, le nombre de nœuds générés est d n l Idée : considérer une seule variable à assigner à chaque niveau et reculer (backtrack) lorsquaucune assignation compatible est possible l Le résultat est backtracking-search : cest lalgorithme de base pour résoudre les problèmes CSP IFT615Froduald Kabanza15

16 © Froduald Kabanza16IFT615 Illustration de backtracking-search WA NT SA Q NSW V T

17 © Froduald Kabanza17IFT615 Illustration de backtracking-search WA NT SA Q NSW V T

18 © Froduald Kabanza18IFT615 Illustration de backtracking-search WA NT SA Q NSW V T

19 © Froduald Kabanza19IFT615 Illustration de backtracking-search WA NT SA Q NSW V T

20 © Froduald Kabanza20IFT615 Backtracking search (page 215) function BACKTRACKING-SEARCH(csp) return a solution or failure return BACKTRACK({}, csp) function BACKTRACK(assignment, csp) return a solution or failure if assignment is complete then return assignment var SELECT-UNASSIGNED-VARIABLE(var, assignment, csp) for each value in ORDER-DOMAIN-VALUES(var, assignment, csp) do if value is consistent with assignment then add {var=value} to assignment inferences INFERENCES(csp, var, value) // e.g., AC-3 if inferences failure then add inferences to assignment result BACTRACK (assignment, csp) if result failure then return result remove {var=value} and inferences from assignment return failure

21 © Froduald Kabanza21IFT615 Amélioration de backtracking-search l Sans heuristiques, lalgorithme est limité. l Des heuristiques générales peuvent améliorer lalgorithme significativement : u Choisir judicieusement la prochaine variable: »SELECT-UNASSIGNED-VARIABLE u Choisir judicieusement la prochaine valeur à assigner: »ORDER-DOMAIN-VALUES u Faire des inférences pour détecter plus tôt les assignations conflictuels: »INFERENCES

22 © Froduald Kabanza22IFT615 Choisir la prochaine variable l À chaque étape, choisir la variable avec le moins de valeurs consistantes restantes. u C-à-d., la variable « posant le plus de restrictions ». u Appelé: Minimum RemainingValue (MRV) Heuristic ou Most Constrained Variable Heuristic. l Illustration: WA NT SA Q NSW V T

23 © Froduald Kabanza23IFT615 Choisir la prochaine variable l Si le critère précédent donne des variables avec le même nombre de valeurs consistants restantes : u Choisir celle ayant le plus de contraintes impliquant des variables non encore assignées: u Appelé: degree heuristic. WA NT SA Q NSW V T

24 © Froduald Kabanza24IFT615 Choisir la prochaine valeur l Pour une variable donnée, choisir une valeur qui invalide le moins de valeurs possibles pour les variables non encore assignées. Laisse une seule valeur pour SA Ne laisse aucune valeur pour SA WA NT SA Q NSW V T

25 © Froduald Kabanza25IFT615 Forward-Checking Inference l Lidée de forward-checking (vérification anticipative) est : u vérifier les valeurs compatibles des variables non encore assignées u terminer la récursivité (conflit) lorsquune variable (non encore assignée) a son ensemble de valeurs compatibles qui devient vide l Exemple WA NT SA Q NSW V T Domaines initiaux

26 © Froduald Kabanza26IFT615 Algorithme Forward checking l Supposons que lon choisisse au départ la variable WA (première étape de la récursivité de backtracking-search). Considérons lassignation WA=Rouge. On voit ici le résultat de forward-checking. WA NT SA Q NSW V T Domaines initiaux Après WA=Red

27 © Froduald Kabanza27IFT615 Algorithme Forward checking l Supposons maintenant que lon choisisse la variable Q à la prochaine étape de la récursivité de backtracking-search. Considérons lassignation Q=Vert. On voit ici le résultat de forward-checking. WA NT SA Q NSW V T Domaines initiaux Après WA=Red Après Q=Green

28 © Froduald Kabanza28IFT615 Algorithme Forward checking l Supposons maintenant que lon choisisse la variable V à la prochaine étape de la récursivité de backtracking-search. Considérons lassignation V=Bleu. On voit ici le résultat de forward-checking. WA NT SA Q NSW V T Domaines initiaux Après WA=Red Après Q=Green Après V=Blue

29 © Froduald Kabanza29IFT615 Propagation de contraintes l Forward checking propage linformation dune variables assignées vers les variables en contraintes avec elle, mais ne propagent leffet des modifications de ces dernières. l Revenons à létape de backtracking-search, après que nous ayons choisi la variable Q et assigné la valeur bleu. u On voit ici le résultat de forward-checking u Forward-checking ne propage pas la modification du domaine NT vers SA pour constater que NT et SA ne peuvent pas être en bleu ensemble! l La propagation des contraintes permet de vérifier ce type de conflits dans les assignations de variables. WA NT SA Q NSW V T Domaines initiaux Après WA=Red Après Q=Green

30 © Froduald Kabanza30IFT615 Arc consistency l Arc consistency est la forme de propagation de contraintes la plus simple u Vérifie la consistance entre les arcs. u C-à-d., la consistance des contraintes entre deux variables. l Larc X Y est consistante si et seulement si Pour chaque valeur x de X il existe au moins une valeur permise de y. WA NT SA Q NSW V T Si une variable perd une valeur, ses voisins doivent être revérifiés

31 © Froduald Kabanza31IFT615 Arc consistency l Arc consistency est la forme de propagation de contraintes la plus simple u Vérifie la consistance entre les arcs. u C-à-d., la consistance des contraintes entre deux variables. l Larc X Y est consistante si et seulement si Pour chaque valeur x de X il existe au moins une valeur permise de y. WA NT SA Q NSW V T Si une variable perd une valeur, ses voisins doivent être revérifiés.

32 © Froduald Kabanza32IFT615 Arc consistency l Arc consistency est la forme de propagation de contraintes la plus simple u Vérifie la consistance entre les arcs. u C-à-d., la consistance des contraintes entre deux variables. l Larc X Y est consistante si et seulement si Pour chaque valeur x de X il existe au moins une valeur y de Y consistante avec x. WA NT SA Q NSW V T

33 © Froduald Kabanza33IFT615 Arc consistency l Arc consistency est la forme de propagation de contraintes la plus simple u Vérifie la consistance entre les arcs. u C-à-d., la consistance des contraintes entre deux variables. l Larc X Y est consistante si et seulement si Pour chaque valeur x de X il existe au moins une valeur permise de y. WA NT SA Q NSW V T

34 © Froduald Kabanza34IFT615 Arc consistency 3 (AC-3) function AC-3(csp) return the CSP, possibly with reduced domains inputs: csp, a binary csp with components (X, D, C) local variables: queue, a queue of arcs initially the arcs in csp while queue is not empty do (X i, X j ) REMOVE-FIRST(queue) if REVISE(csp, X i, X j ) then if size of D i = 0 then return false for each X k in X i.NEIGHBORS – {X j } do add (X k, X i ) to queue return true function REVISE(csp, X i, X j ) return true iff we revise the domain of X i revised false for each x in D i do if no value y in D i allows (x,y) to satisfy the constraints between X i and X j then delete x from D i ; removed true return revised

35 Arc consistency algorithm AC-3 l Complexité : O(c d 3 ) dans le pire cas, où c est le nombre de contraintes complexité de réviser : O(d 2 ) on a O(c) arcs, qui peuvent être réinsérés dans la file O(d) fois par réviser réviser peut donc être appelé O(c d), pour une complexité globale de O(c d 3 ) l Une meilleure version en O(c d 2 ) dans le pire cas existe : AC-4 u par contre AC-3 est en moyenne plus efficace IFT615Froduald Kabanza35

36 © Froduald Kabanza36IFT615 Au de là de AC-3 l Min-conflicts (Section 5.3) u En choisissant la valeur pour une variable x, choisir celle qui engendre le moins de conflits possibles avec les variables ayant des contraintes avec x. l Exploiter la structure du domaine (Section 6.5) u certains graphes de contraintes ont une structure « simple » qui peut être exploitée (ex. : un arbre) u peut améliorer le temps de calcul exponentiellement

37 Algorithme min-conflicts Algorithme min-conflicts (csp, nb_iterations) 1. assignations = une assignation aléatoire complète (probablement pas compatible) de csp 2. pour i = 1... nb_iterations 3. si assignations est compatible, retourner assignations 4. X = variable choisie aléatoirement dans variables(csp) 5. v = valeur dans domaine (X, csp) satisfaisant le plus de contraintes de X 6. assigner (X = v) dans assignations 5. retourner faux IFT 615Froduald Kabanza37 Peut résoudre un problème 1,000,000-Queens en 50 étapes! La raison du succès de la recherche locale est quil existe plusieurs solutions possibles, « éparpillés » dans lespace des états A été utilisé pour céduler les observations du Hubble Space Telescope (roule en 10 minutes, plutôt que 3 semaines!)

38 © Froduald Kabanza38IFT615 Types de problèmes CSP l CSP avec des domaines finis (et discrets). l CSP Booléens: les variables sont vraies ou fausses. l CSP avec des domaines continus (et infinis) u Par exemple, problèmes dordonnancement avec des contraintes sur les durées. l CSP avec des contraintes linéaires (ex. : X 1 < X ). l CSP avec des contraintes non linéaires (ex. : log X 1 < X 2 ). l … l Les problèmes CSP sont étudiées de manière approfondies en recherche opérationnelle. l Voir le cours ROP 317 – Programmation linéaire pour en savoir plus sur le cas linéaire et continu

39 © Froduald Kabanza39IFT615 Applications l Problèmes dhoraires (exemple: horaire des cours): u Dans ce cours, nous avons vu des méthodes simples, seulement pour des contraintes dures. La plupart des approches tiennent compte des contraintes souples. »http://www.springerlink.com/content/erylu61yx9tpj3hb/http://www.springerlink.com/content/erylu61yx9tpj3hb/ »http://www.emn.fr/x-info/jussien/publications/cambazard-PATAT04.pdfhttp://www.emn.fr/x-info/jussien/publications/cambazard-PATAT04.pdf l Dautres applications: u Certains algorithmes de planifications invoquent des algorithmes CSP. u Planification de caméras dans les jeu vidéo: »O. Bourne and A. Sattar. Automatic Camera Control with Constraint Satisfaction Methods. In AI Game Programming Wisdom 3, by Steve Rabin, Section 3.2, pages , 2006.

40 Objectifs du cours IFT615Froduald Kabanza40 agents intelligents agents intelligents recherche heuristique recherche heuristique recherche locale recherche à deux adversaires recherche à deux adversaires satisfaction de contraintes satisfaction de contraintes Algorithmes et concepts

41 Satisfaction de contraintes: pour quel type dagent? IFT615Froduald Kabanza41 Simple reflex Model-based reflex Goal-based Utiliy-based

42 Satisfaction de contraintes: pour quel type dagent? IFT615Froduald Kabanza42 Simple reflex Model-based reflex Goal-based Utiliy-based backtracking-search Fonction objective

43 Conclusion l Les problèmes CSP sont des problèmes de recherche dans un espace dassignations de valeurs à des variables l Backtracking-search = Depth-First-Search avec une variable assignée par nœud et qui recule lorsquaucune assignation compatible l Lordonnancement des variables et des assignations de valeurs aux variables jouent un rôle significatif dans la performance l Forward checking empêche les assignations qui conduisent à un conflit l La propagation des contraintes (par exemple, AC-3) détecte les incompatibilités locales l Les méthodes les plus efficaces exploitent la structure du domaine l Application surtout à des problèmes impliquant lordonnancement de tâche IFT615Froduald Kabanza43

44 Vous devriez être capable de... l Formuler un problème sous forme dun problème de satisfaction de contraintes (variables, domaines, contraintes) l Simuler lalgorithme backtracking-search l Connaître les différentes façons de laméliorer u ordonnancement des variables u ordonnancement des valeurs u inférence (forward checking, AC-3) l Savoir simuler forward checking et AC-3 l Décrire comment résoudre un problème de satisfaction de contraintes avec un algorithme de recherche locale IFT615Froduald Kabanza44

45 © Froduald Kabanza45IFT615 Prochain cours l Voir le plan de cours. Voir le plan de cours.


Télécharger ppt "IFT 615 – Intelligence Artificielle Satisfaction de contraintes Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza."

Présentations similaires


Annonces Google