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 Éric Beaudry Département dinformatique Université de Sherbrooke

Présentations similaires


Présentation au sujet: "IFT 615 – Intelligence Artificielle Satisfaction de contraintes Éric Beaudry Département dinformatique Université de Sherbrooke"— Transcription de la présentation:

1 IFT 615 – Intelligence Artificielle Satisfaction de contraintes Éric Beaudry Département dinformatique Université de Sherbrooke

2 Sujets couverts Modèle général des problèmes de satisfaction de contraintes Algorithmes – Backtracking-Search – AC-3 – Forward-Checking Applications IFT615© Éric Beaudry & Froduald Kabanza2

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

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

5 Exemple 2 : Colorier une carte On vous donne une carte de lAustralie : Et on vous demande dutiliser seulement trois couleurs (rouge, vert et bleu) de sorte que deux états frontaliers naient jamais les mêmes couleurs. 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. IFT615© Éric Beaudry & Froduald Kabanza5

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

7 Exemple 2: Colorier une carte Solution : IFT615© Éric Beaudry & Froduald Kabanza7 { WA = R, NT = G,Q = R, NSW = G,V = R,SA = B,T = G }

8 Graphe de contraintes 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. 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. IFT615© Éric Beaudry & Froduald Kabanza8 WA NT WA SA NT Q NT SA Q SA Q NSW NSW V SA V SA NSW

9 Exemple 3 : N-Queens Positionner N reines sur un échiquier de sorte quaucune dentre elles nest en position dattaquer une autre. Exemple avec 8 reines (8-Queens) 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. Avec N=4 : 256 configurations. N=8 : N= 16 : 18,446,744,073,709,551,616 configurations IFT615© Éric Beaudry & Froduald Kabanza9

10 Exemple 3 : N-Queens Modélisation comme problème CSP: Variables : colonnes 1, …, N. Domaines : rangées 1, …., N. La colonne i a la valeur k si la reine dans la colonne i est dans la rangée k. Contraintes : Pas deux reines sur même ligne, colonne ou diagonale. IFT615© Éric Beaudry & Froduald Kabanza10

11 Types de problèmes CSP CSP avec des domaines finis (et discrets). CSP Booléens: les variables sont vraies ou fausses. CSP avec des domaines continus (et infinis) – Par exemple, problèmes dordonnancement avec des contraintes sur les durées. CSP avec des contraintes linéaires. CSP avec des contraintes non linéaires. … Les problèmes CSP sont étudiées de manière approfondies en recherche opérationnelle. IFT615© Éric Beaudry & Froduald Kabanza11

12 Algorithme Depth-First-Search pour CSP On peut utiliser la recherche dans un graphe (Algorithme rechercheDansGraphe) avec les paramètres suivants: – Un état est une assignation. – État initial : assignation vide { } – Fonction successeur : assigne une valeur à une variable non encore assignée, en respectant les contraintes. – But : Assignation complète et consistante. Lalgorithme est général et sapplique à tous les problèmes CSP discrets. Comme la solution doit être complète, elle apparaît à une profondeur n, si nous avons n variables. Pour cette raison, depth-first search fonctionne souvent bien. Le chemin à la solution est sans importance. – On peut travailler avec des états qui sont des assignations complètes (consistantes ou non). – On peut utiliser une méthode de recherche locale (hill-climbing, etc.) IFT615© Éric Beaudry & Froduald Kabanza12

13 Limitations de lapproche précédente Supposons une recherche en largeur ou en profondeur : – Le nombre de branches au premier niveau, dans larbre est de n*d, parce que nous avons n variables, chacune pouvant prendre d valeurs. – Au prochain niveau, on a (n-1)d successeurs pour chaque nœud. – Ainsi de suite jusquau niveau n. – Cela donne n!*d n nœuds générés, pour seulement d n assignations complètes. Lalgorithme ignore la commutativité des transitions. Par exemple: – SA=R suivi de WA=B est équivalent à WA=B suivi de SA=R. – Si on tient compte de la commutativité, le nombre de nœuds générés est d n. Depth-first-search avec lassignation dune seule variable dans un nœud est appelé backtracking-search. Cest lalgorithme de base pour résoudre les problèmes CSP. IFT615© Éric Beaudry & Froduald Kabanza13

14 Backtracking search IFT615© Éric Beaudry & Froduald Kabanza14 Les fonctions successeurs et buts ne sont pas explicites. Pas besoin de maintenir un graphe de nœuds (closed). Open implicitement représenté par la pile de récursivité.

15 Illustration de backtracking-search IFT615© Éric Beaudry & Froduald Kabanza15 WA NT SA Q NSW V T

16 Illustration de backtracking-search IFT615© Éric Beaudry & Froduald Kabanza16 WA NT SA Q NSW V T

17 Illustration de backtracking-search IFT615© Éric Beaudry & Froduald Kabanza17 WA NT SA Q NSW V T

18 Illustration de backtracking-search IFT615© Éric Beaudry & Froduald Kabanza18 WA NT SA Q NSW V T

19 Amélioration de backtracking-search Sans heuristiques, lalgorithme est limité. – Il peut résoudre le problème de 25 reines. Des heuristiques générales peuvent améliorer lalgorithme significativement : – Choisir judicieusement la prochaine variable. – Choisir judicieusement la prochaine valeur à assigner. – Détecter le plus tôt les assignations conflictuelles. IFT615© Éric Beaudry & Froduald Kabanza19

20 Choisir lordre dassignation des variables À chaque étape, choisir la variable avec le moins de valeurs consistantes restantes. – C-à-d., la variable « posant le plus de restrictions ». – Appelé: Minimum RemainingValue (MRV) Heuristic ou Monst Constrained Variable Heuristic. Illustration: IFT615© Éric Beaudry & Froduald Kabanza20 WA NT SA Q NSW V T

21 Choisir lordre dassignation des variables Si le critère précédent donne des variables avec le même nombre de valeurs consistants restantes : – Choisir celle ayant le plus de contraintes impliquant des variables non encore assignées: – Appelé: degree heuristic. IFT615© Éric Beaudry & Froduald Kabanza21 WA NT SA Q NSW V T

22 Lordre dassignation des valeurs à une variable Pour une variable donnée, choisir une valeur qui invalide le moins de valeurs possibles pour les variables non encore assignées. Ces heuristiques permettent de résoudre un problème de 1000 reines. IFT615© Éric Beaudry & Froduald Kabanza22 Laisse une seule valeur pour SA Ne laisse aucune valeur pour SA WA NT SA Q NSW V T

23 Algorithme Forward checking Lidée de lalgorithme forward-checking (vérification anticipative) est de: – Vérifier les valeurs consistantes des variables non encore assignées. – Terminer la récursivité lorsquune variable (non encore assignée) a son ensemble de valeurs consistantes qui devient vide. IFT615© Éric Beaudry & Froduald Kabanza23 WA NT SA Q NSW V T

24 Algorithme Forward checking Lidée de lalgorithme forward-checking (vérification anticipative) est de: – Vérifier les valeurs consistantes des variables non encore assignées. – Terminer la récursivité lorsquune variable (non encore assignée) a son ensemble de valeurs consistantes qui devient vide. IFT615© Éric Beaudry & Froduald Kabanza24 WA NT SA Q NSW V T

25 Algorithme Forward checking Lidée de lalgorithme forward-checking (vérification anticipative) est de: – Vérifier les valeurs consistantes des variables non encore assignées. – Terminer la récursivité lorsquune variable (non encore assignée) a son ensemble de valeurs consistantes qui devient vide. IFT615© Éric Beaudry & Froduald Kabanza25 WA NT SA Q NSW V T

26 Algorithme Forward checking Lidée de lalgorithme forward-checking (vérification anticipative) est de: – Vérifier les valeurs consistantes des variables non encore assignées. – Terminer la récursivité lorsquune variable (non encore assignée) a son ensemble de valeurs consistantes qui devient vide. IFT615© Éric Beaudry & Froduald Kabanza26 WA NT SA Q NSW V T

27 Propagation de contraintes Forward checking propage linformation des variables assignées vers les variables non assignées, mais ne détecte pas les conflits locaux entre variables : NT et SA ne peuvent pas être en bleu ensemble! La propagation des contraintes permet de vérifier les contraintes localement. IFT615© Éric Beaudry & Froduald Kabanza27 WA NT SA Q NSW V T

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

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

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

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

32 Arc consistency algorithm AC-3 Appliqué au début de backtracking-search et/ou juste après chaque nouvelle assignation de valeur à une variable. Complexité : O(n 2 d 3 ). Une meilleure version (O(n 2 d 2 )) existe. IFT615© Éric Beaudry & Froduald Kabanza32

33 Au de là de AC-3 Min-conflicts (Section 6.4) – 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. Exploiter la structure du domaine (Section 6.5) – Peut améliorer le temps de calcul exponentiellement. IFT615© Éric Beaudry & Froduald Kabanza33

34 Applications Problèmes dhoraires (exemple: horaire des cours): – Dans ce cours, nous avons vu des méthodes simples, seulement pour des contraintes dures. La plupart des approches tiennent compte des contraintes souples. Dautres applications: – Certains algorithmes de planifications invoquent des algorithmes CSP. – 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 , IFT615© Éric Beaudry & Froduald Kabanza34

35 Résumé Les problèmes CSP sont des problèmes de recherche dans un espace dassignation de valeurs à des variables. Backtracking-search = depth-first-search avec une variable assignée par nœud. Lordonnancement des variables et celui de lassignation des valeurs aux variables jouent un rôle significatif dans la performance. Forward-checking empêche les assignations qui conduisent à un conflit. La propagation des contraintes (par exemple, arc-consistency) détecte les inconsistances locales. Les méthodes les plus efficaces exploitent la structure du domaine. Application surtout à des problèmes impliquant lordonnance des tâches. IFT615© Éric Beaudry & Froduald Kabanza35


Télécharger ppt "IFT 615 – Intelligence Artificielle Satisfaction de contraintes Éric Beaudry Département dinformatique Université de Sherbrooke"

Présentations similaires


Annonces Google