Intelligence Artificielle Contraintes

Documents pareils
Intelligence Artificielle Planification

Programmation par contraintes. Laurent Beaudou

Cours de Master Recherche

Programmation Par Contraintes

Stratégie de recherche adaptative en programmation par contrainte

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Resolution limit in community detection

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Programmation linéaire

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

Big Data et Graphes : Quelques pistes de recherche

Conception de réseaux de télécommunications : optimisation et expérimentations

Qu est-ce qu une probabilité?

Big Data et Graphes : Quelques pistes de recherche

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Algorithmes de recherche

Backtracking asynchrone agile pour les problèmes de satisfaction de contraintes distribués

L apprentissage automatique

Cours de Probabilités et de Statistique

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

MIS 102 Initiation à l Informatique

Pourquoi l apprentissage?

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Quatrième partie IV. Test. Test 15 février / 71

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Chapitre 7. Récurrences

Cours 1 : Qu est-ce que la programmation?

Problèmes de dénombrement.

Utilisation de l ingénierie des modèles pour la conception collaborative de produits mécaniques

Sujet 4: Programmation stochastique propriétés de fonction de recours

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Coup de Projecteur sur les Réseaux de Neurones

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Conception des systèmes répartis

Exercices sur le chapitre «Probabilités»

Annexe 6. Notions d ordonnancement.

Systèmes décisionnels et programmation avancée

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Prêt(e) pour le CE1. Tu es maintenant au CE1. Avant de commencer les leçons, nous allons réviser avec toi!

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

Géométrie discrète Chapitre V

Programmation linéaire

Algorithmes récursifs

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Processus d Informatisation

LES MÉTA-HEURISTIQUES : quelques conseils pour en faire bon usage

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Optimisation Discrète

Rappel sur les bases de données

Recherche d un plus grand sous-graphe commun par décomposition du graphe de compatibilité

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Principes d implémentation des métaheuristiques

Fondements de l informatique Logique, modèles, et calculs

données en connaissance et en actions?

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Création intuitive des éléments d un paysage

Quelques tests de primalité

Recherche et Diffusion de l Information dans les Réseaux. Philippe Robert. Le 8 avril 2014

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Modélisation multi-agents - Agents réactifs

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Résolution d équations non linéaires

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

Algorithmique et Programmation

Algorithmes d'apprentissage

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

MABioVis. Bio-informatique et la

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

CH.6 Propriétés des langages non contextuels

SEMAINE DES MATHEMATIQUES

Introduction au maillage pour le calcul scientifique

Objets Combinatoires élementaires

Nombre de marches Nombre de facons de les monter

BACCALAUREAT GENERAL MATHÉMATIQUES

FIMA, 7 juillet 2005

Créer le schéma relationnel d une base de données ACCESS

Loi binomiale Lois normales

Indications pour une progression au CM1 et au CM2

Entraînement au concours ACM-ICPC

Parallélisme et Répartition

Modélisation et Simulation

Intelligence artificielle appliquée à l automatique

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

MegaStore Manager ... Simulation de gestion d un hypermarché. Manuel du Participant

Contrainte de flot pour RCPSP avec temps de transfert

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Transcription:

Intelligence Artificielle Contraintes Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Problèmes de satisfaction de contraintes Exemples de CSP Recherche en arrière pour les CSPs (backtracking search) Structure des problèmes CSP et recherche locale 2 / 36

Problèmes de satisfaction de contraintes Exemples de CSP Recherche en arrière pour les CSPs (backtracking search) Structure des problèmes CSP et recherche locale 3 / 36

Problèmes de satisfaction de contraintes (CSP) Problèmes de recherche classiques : CSP : Un état est une boite noire N importe quelle structure de données qui contient un test pour le but, une fonction d évaluation, une fonction successeur Un état est défini par un ensemble de variables X i, dont les valeurs appartiennent au domaine D i Le test pour le but est un ensemble de contraintes qui spécifient les combinaisons autorisées pour les valeurs sur des sous-ensembles de variables Exemple simple d un langage formel de représentation Permet d utiliser des algorithmes généraux plus efficaces que les algorithmes de recherche standards 4 / 36

Exemple : coloriage de carte Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Variables : WA, NT, SA, Q, NSW, V, T Domaines : D i = {rouge, vert, bleu} Contraintes : les régions adjacentes doivent être de couleurs différentes Par exemple, WA NT (si le langage le permet) Ou (WA, NT ) {(rouge, vert), (rouge, bleu), (vert, rouge), (vert, bleu)...} 5 / 36

Exemple : coloriage de carte Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Les solutions sont des affectations qui satisfont toutes les contraintes Par exemple, {WA = rouge, NT = vert, Q = rouge, NSW = vert, V = rouge, SA = bleu, T = vert} 6 / 36

Graphe de contraintes CSP binaires : chaque contrainte lie au maximum deux variables Graphe de contraintes : les nœuds sont des variables, les arcs représentent les contraintes WA NT Q SA NSW V Victoria T Les algorithmes CSP utilisent les graphes de contraintes Permet d accélerer la recherche : par exemple, colorier la Tasmanie est un sous-problème indépendant 7 / 36

Variétés de CSPs Variables discrètes Domaines finis : si de taille d, il y a O(d n ) affectations complètes Par exemple, CSPs booléens Domaines infinis (entiers, caractères...) Par exemple, mise en place d un planning, avec date de début/de fin pour chaque tâche Nécessite un langage de contraintes. Eg StartJob 1 + 5 StartJob 5 Si les contraintes sont linéaires, le problème est soluble Si les contraintes sont non linéaires, problème indécidable Variable continues Par exemple, temps de début/fin pour les observations du télescope de Hubble Contraintes linéaires solubles en temps polynomial en utilisant des méthodes de programmation linéaire 8 / 36

Variétés de contraintes Contraintes unaires, ne concernent qu une seule variable Par exemple, SA vert Contraintes binaires, concernent une paire de variables Par exemple, SA WA Contraintes d ordre plus élevé, concernent 3 variables ou plus Par exemple, contraintes sur les puzzles cryptarithmétiques Préférences (ou contraintes souples) Par exemple, rouge est mieux que vert Souvent représentable par un coût associé à chaque affectation de variable Problèmes d optimisation de variables 9 / 36

Exemple : puzzle cryptarithmétique T W O + T W O F O U R F T U W R O X 3 X 2 X 1 Variables : F, T, U, W, R, O, X 1, X 2, X 3 Domaines : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Contraintes : Alldiff (F, T, U, W, R, O) O + O = R + 10X 1 X 1 + W + W = U + 10X 2... 10 / 36

Problèmes CSPs du monde réel Problèmes d affectation (eg. qui enseigne quel cours?) Problèmes d emploi du temps Configuration de matériels Planification pour les transports Planification dans les usines Allocation de salles... Note: beaucoup de problèmes du mondé réel impliquent des variables à valeurs réelles 11 / 36

Formulation de la recherche standard (recherche incrémentale) Les états sont définis par les valeurs des variables déjà affectées Etat initial : un ensemble d affectations vides {} Fonction successeur : attribuer une valeur à une variable non encore affectée, de façon cohérente (vis à vis des contraintes) à l affectation actuelle Test du but : toutes les variables sont affectées 12 / 36

Formulation de la recherche standard (recherche incrémentale) Cet algorithme de recherche marche pour tous les CSPs Chaque solution apparait à une profondeur de n s il y a n variables Utiliser la recherche en profondeur d abord n : nombre de variables; d : taille du domaine des variables; b : facteur de branchement b = (n p)d à profondeur p n!d n feuilles alors qu il n y a que d n affectations possible!! 13 / 36

Problèmes de satisfaction de contraintes Exemples de CSP Recherche en arrière pour les CSPs (backtracking search) Structure des problèmes CSP et recherche locale 14 / 36

Backtracking search L affectation des variables est commutative L ordre dans lequel on affecte les variables n a pas d importance WA = rouge puis NT = vert est la même chose que NT = vert puis WA = rouge Il n y a donc besoin de ne considérer qu une seule variable par nœud de l arbre de recherche b = d, et donc d n feuilles Recherche en profondeur d abord avec l affectation d une variable à la fois est appelée recherche par retour arrière (backtracking search) Algorithme de recherche basique pour les CSPs Permet de résoudre le problème des n reines pour n 25 15 / 36

Algorithme de recherche par retour arrière 16 / 36

Exemple 17 / 36

Exemple 17 / 36

Exemple 17 / 36

Exemple 17 / 36

Améliorer l efficacité du la recherche par backtrack 1. Comment choisir la variable à affecter ensuite? (Select-Unassigned-Variable) 2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de détecter un échec inévitable plus tôt? 4. Comment tirer avantage de la structure du problème? 18 / 36

Améliorer l efficacité du la recherche par backtrack 1. Comment choisir la variable à affecter ensuite? (Select-Unassigned-Variable) 2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de détecter un échec inévitable plus tôt? 4. Comment tirer avantage de la structure du problème? 19 / 36

Valeurs minimum restantes (MRV) Heuristique des valeurs minimum restantes (MRV) choisir une des variables ayant le moins de valeur légale possible 20 / 36

Heuristique du degré Si plusieurs variables ne peuvent pas être départagées par l heuristique MRV Heuristique du degré choisir la variable qui a le plus de contraintes à respecter parmi les variables restantes 21 / 36

Améliorer l efficacité du la recherche par backtrack 1. Comment choisir la variable à affecter ensuite? (Select-Unassigned-Variable) 2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de détecter un échec inévitable plus tôt? 4. Comment tirer avantage de la structure du problème? 22 / 36

Valeur la moins contraignante Etant donné une variable, choisir celle qui a la valeur la moins contraignante la variable qui empêche le moins d affectations possibles sur les variables restantes Allows 1 value for SA Allows 0 values for SA 23 / 36

Valeur la moins contraignante Etant donné une variable, choisir celle qui a la valeur la moins contraignante la variable qui empêche le moins d affectations possibles sur les variables restantes Allows 1 value for SA Allows 0 values for SA Combiner ces heuristiques permet de résoudre le problème des n reines, avec n = 1000 23 / 36

Améliorer l efficacité du la recherche par backtrack 1. Comment choisir la variable à affecter ensuite? (Select-Unassigned-Variable) 2. Comment ordonner les valeurs des variables? (Order-Domain-Values) 3. Est-il possible de détecter un échec inévitable plus tôt? 4. Comment tirer avantage de la structure du problème? 24 / 36

Vérification en avant Idée : garder en mémoire les valeurs autorisée pour les variables qu il reste à affecter Arrête la recherche lorsqu une variable n a plus de valeur légale possible WA NT Q NSW V SA T 25 / 36

Vérification en avant Idée : garder en mémoire les valeurs autorisée pour les variables qu il reste à affecter Arrête la recherche lorsqu une variable n a plus de valeur légale possible WA NT Q NSW V SA T 25 / 36

Vérification en avant Idée : garder en mémoire les valeurs autorisée pour les variables qu il reste à affecter Arrête la recherche lorsqu une variable n a plus de valeur légale possible WA NT Q NSW V SA T 25 / 36

Vérification en avant Idée : garder en mémoire les valeurs autorisée pour les variables qu il reste à affecter Arrête la recherche lorsqu une variable n a plus de valeur légale possible WA NT Q NSW V SA T 25 / 36

Propagation de contraintes La vérification en avant permet de propager l information des variables affectées aux variables non affectées, mais ne permet pas de détecter tous les échecs 26 / 36

Propagation de contraintes La vérification en avant permet de propager l information des variables affectées aux variables non affectées, mais ne permet pas de détecter tous les échecs WA NT Q NSW V SA T 26 / 36

Propagation de contraintes La vérification en avant permet de propager l information des variables affectées aux variables non affectées, mais ne permet pas de détecter tous les échecs WA NT Q NSW V SA T NT et SA ne peuvent pas être tous les deux bleus! La propagation de contraintes permet de vérifier les contraintes localement 26 / 36

Consistence des arcs La forme la plus simple de propagation est de rendre les arcs consistents X Y est consistant ssi pour toute valeur x de X, il y a au moins un y autorisé WA NT Q NSW V SA T 27 / 36

Consistence des arcs La forme la plus simple de propagation est de rendre les arcs consistents X Y est consisistant ssi pour toute valeur x de X, il y a au moins un y autorisé WA NT Q NSW V SA T 27 / 36

Consistence des arcs La forme la plus simple de propagation est de rendre les arcs consistents X Y est consisistant ssi pour toute valeur x de X, il y a au moins un y autorisé WA NT Q NSW V SA T 27 / 36

Consistence des arcs La forme la plus simple de propagation est de rendre les arcs consistents X Y est consisistant ssi pour toute valeur x de X, il y a au moins un y autorisé WA NT Q NSW V SA T Si X perd une valeur, les voisins de X doivent être revérifiés 27 / 36

Consistence des arcs La forme la plus simple de propagation est de rendre les arcs consistents X Y est consisistant ssi pour toute valeur x de X, il y a au moins un y autorisé WA NT Q NSW V SA T Si X perd une valeur, les voisins de X doivent être revérifiés Repère un échec avant la vérification en avant Peut être lancé comme un pré-processeur ou après chaque affectation 27 / 36

Algorithme de vérification de consistence d arcs 28 / 36

Problèmes de satisfaction de contraintes Exemples de CSP Recherche en arrière pour les CSPs (backtracking search) Structure des problèmes CSP et recherche locale 29 / 36

Structure des problèmes WA NT Q SA NSW V Victoria T La Tasmanie est un sous-problème indépendant Identifiables comme étant des composants connexes du graphe de contraintes 30 / 36

CSPs structurés sous forme d arbre A E B D C F Theorem Si le graphe de contraintes ne contient pas de cycles, le CSP a une complexité en temps de O(nd 2 ) Cas général: complexité en temps de O(d n ) 31 / 36

Algorithme pour les CSPs structurés sous forme d arbre 1. Choisir une variable comme étant la racine, et ordonner les variables de la racine aux feuilles, de façon à ce que le parent de chaque nœud le précède A C B D E F A B C D E F 2. Pour j de n à 2, appliquer RemoveInconsistent(Parent(X j ), X j ) 3. Pour j de 1 à n, affecter X j de façon à ce qu il soit consistent avec Parent(X j ) 32 / 36

CSPs quasiment structurés sous forme d arbre Conditionnement : instancier une variable, restreindre les domaines de ses voisins NT Q NT Q WA WA SA NSW NSW V Victoria V Victoria T T Conditionnement du coupe-cycle : instancier (de toutes les façons possibles) un ensemble de variables de façon à ce que le graphe de contraintes restant soit un arbre Cycle coupé de taille c complexité en O(d c (n c)d 2 ) Très rapide pour c petit 33 / 36

Problèmes de satisfaction de contraintes Exemples de CSP Recherche en arrière pour les CSPs (backtracking search) Structure des problèmes CSP et recherche locale 34 / 36

CSP et recherche locale Les algorithmes de recherche locale fonctionnent avec des états complets, c est à dire dans lesquels toutes les variables sont affectées. Pour appliquer ces algorithmes aux CSPs : Permettre d avoir des états avec des contraintes non satisfaites Les opérateurs permettent de réaffecter la valeur d une variable Sélection des variables : n importe quelle variable en conflit Sélection d une valeur grace à l heuristice min-conflict choisir une valeur qui enfreint le moins de contraintes par exemple, hillclimb avec h(n) = nombre total de contraintes non respectées 35 / 36

Exemple : les n reines Etats : 4 reines sur 4 colonnes (4 4 = 256 états) Actions : déplacer une reine dans sa colonne Test du but : pas d attaque entre les reines Evaluation : h(n) est le nombre d attaques sur le plateau h = 5 h = 2 h = 0 Etant donné un état initial aléatoire, cet algorithme peut résoudre avec une grande probabilité le problème des n-reines pour tout n en temps presque constant (e.g., n = 10000000) 36 / 36