Programmation par Contraintes. Correctif des quelques exercices.



Documents pareils
Programmation Par Contraintes

Programmation par contraintes. Laurent Beaudou

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

Resolution limit in community detection

Cours de Master Recherche

Stratégie de recherche adaptative en programmation par contrainte

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

INF601 : Algorithme et Structure de données

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

Algorithmes de recherche

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

Les structures de données. Rajae El Ouazzani

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

Annexe 6. Notions d ordonnancement.

Plus courts chemins, programmation dynamique

Transmission d informations sur le réseau électrique

Modélisation multi-agents - Agents réactifs

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

MIS 102 Initiation à l Informatique

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Optimisation for Cloud Computing and Big Data

BACCALAUREAT GENERAL MATHÉMATIQUES

Jean-Philippe Préaux

Formats d images. 1 Introduction

Techniques de propagation de la contrainte de ressource en ordonnancement cumulatif.

Programmation linéaire

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Pourquoi l apprentissage?

Chapitre 5 : Flot maximal dans un graphe

v Sygic, a.s. All rights reserverd. Manuel utilisateur

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Nombre de marches Nombre de facons de les monter

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

Programmation Linéaire - Cours 1

Contrainte de flot pour RCPSP avec temps de transfert

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche

Cercle trigonométrique et mesures d angles

LE PROBLEME DU PLUS COURT CHEMIN

GPA770 Microélectronique appliquée Exercices série A

Eléments de Théorie des Graphes et Programmation Linéaire

Formula Negator, Outil de négation de formule.

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Représentation des Nombres

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

ARBRES BINAIRES DE RECHERCHE

Fonctions de plusieurs variables

Fédération de compte entre Votre compte Association (VCA) et l application de dépôt des comptes annuels des associations

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

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

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

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Intégration de la dimension sémantique dans les réseaux sociaux

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

Comment faire avancer un engin roulant le plus loin possible sans le toucher?

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

La structure de la base de données et l utilisation de PAST. Musée Royal de l Afrique Centrale (MRAC Tervuren)

CIRCUIT DE CHARGE BOSCH

Introduction au maillage pour le calcul scientifique

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Les algorithmes de base du graphisme

Plus petit, plus grand, ranger et comparer

Introduction à la théorie des graphes. Solutions des exercices

Lhopitault Aurora PES 09 février Unité d apprentissage : Les fruits. Unité d apprentissage : les fruits séance 1

Récupération de données perdues

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

Thème 17: Optimisation

Plate-formes inclinées SUPRA & SUPRA LINEA

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

Les arbres binaires de recherche

Université Paris-Dauphine DUMI2E 1ère année, Applications

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

MATHEMATIQUES GRANDEURS ET MESURES

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Introduction au Génie Logiciel

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

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Fonctions de deux variables. Mai 2011

Quelques Algorithmes simples

Lecture graphique. Table des matières

Plate-formes inclinées SUPRA & SUPRA LINEA

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Priorités de calcul :

Architecture des Systèmes d Information Architecture des Systèmes d Information

Intégration et probabilités TD1 Espaces mesurés Corrigé

La réforme du permis de construire et des autorisations d urbanisme

Du Premier au Second Degré

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

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

1 000 W ; W ; W ; W. La chambre que je dois équiper a pour dimensions : longueur : 6 m largeur : 4 m hauteur : 2,50 m.

Algorithmique, Structures de données et langage C

Apprentissage statistique dans les graphes et les réseaux sociaux

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

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Transcription:

Programmation par Contraintes. Correctif des quelques exercices. Ruslan Sadykov 22 décembre 204 Les règles de Golomb Une règle de Golomb est un ensemble d entiers naturels dans lequel les distances entre les éléments sont deux à deux distinctes. Pour un entier n donné, une règle de Golomb est «optimale»si sa longueur (distance maximale) est minimum parmi toutes les règles de Golomb possibles. Exemples de règles de Golomb optimales : n = 2 0 n = 3 0 3 n = 4 0 4 6 n = 5 0 2 7 8 Modéliser le problème de recherche d une règle de Golomb optimale pour un n donné comme un CSP. Essayer d utiliser les contraintes globales. Indiquez et éliminer les symétries de votre modèle si possible. On va utiliser les variables entières x i, i =,..., n, x i est égale à i-ème entier dans la règle cherchée. Le domaine D xi de x i est {0,,..., M}, où M est la borne supérieure pour la distance maximale. On peut prendre M = 2 n, comme, 2, 4, 8, 6,..., 2 n est une règle de Golomb. D abord, les éléments doivent être dans l ordre croissant, d où les contraintes x + x 2 ; x 2 + x 3 ;... x n + x n. On doit minimiser la distance maximale, donc la fonction objective est min x n x La contrainte principale est que les distances entre les éléments sont deux à deux distinctes. Pour la modéliser, nous introduisons les variables d ij, i < j n, avec les mêmes domaines D dij = {0,,..., M} telles que d ij = x j x i, i < j n.

La contrainte est alors ) all different ({d ij } i<j n Les symétries. D abord, si on ajoute une constante à tous les éléments d une règle de Golomb optimale, cette règle reste une règle de Golomb optimale. Pour éliminer cette symétrie, on peut fixer x = 0. Deuxièmement, si on «retourne»une règle de Golomb optimale : x i = x n x i, i =,..., n, elle reste valide est optimale. Pour éliminer cette symétrie, on peut ajouter la contrainte x 2 x x 3 x 2. Le cavalier d Euler Modéliser le problème suivant : Comment faire visiter par un cavalier chaque case d un échiquier pour le faire revenir à son point de départ sans jamais repasser sur la même case? On va utiliser les variables entières x i et y i, i = 0,..., 64, pour désigner les coordonnées (x i, y i ) de la case où se trouve le cavalier après le i-ème pas. Le domaine de ces variables est {0,,..., 7}. On va également utiliser les variables entières n i, i = 0,..., 64, pour désigner le numéro de la case où se trouve le cavalier après le i-ème pas : n i = 8 x i + y i. Le domaine des variables n i est {0,,..., 63}. 2

Comme le cavalier ne peux pas repasser sur une même case (sauf pour la case de départ), toutes les valeurs des variables n sauf n 0 doivent être différentes : all different(n, n 2,..., n 64 ). Cavalier doit revenir à son point de départ : n 0 = n 64. Pour définir les règles de movement du cavalier, on peut utiliser les contraintes explicites qui donnent les quadruples possibles pour les variables x i, y i, x i+, y i+ : { } (i, j, i ±, j ± 2)0 i,j 7, (x i, y i, x i+, y i+ ) i = 0,..., 63. (i, j, i ± 2, j ± 2) 0 i,j 7 Alternativement, les contraintes arithmétiques peuvent être utilisées : x i x i+ + y i y i+ = 3, x i x i+, i = 0,..., 63. y i y i+. Comme le cavalier peut commencer son parcours à partir de n importe quelle case, pour réduire la symétrie on peut fixer le début de parcours : Planification des tâches n 0 = 0. On doit planifier six tâches dans un délai de 6 heures : T T2 2 T3 T4 2 T5 T6 Ici, la tâche en début de flèche doit s effectuer avant la tâche en fin de flèche. Les durées des tâches sont affichées au-dessus. Chaque tâches ne peut commencer qu en début d une heure. La tâche T ne peut pas être planifier au même heure que la tâche T4.. Modélisez ce problème comme un CSP. 2. Rendez ce CSP arc-consistant et arc-b-consistant. Est-ce qu il y a une différence? 3

Modélisation. Soit p i est la durée de la tâche i. On va utiliser les variables s i pour désigner le temps de début de la tâche i. Le domaine D si de s i est {0,,..., 6 p i }, comme on doit finir toutes les tâches en 6 heures. Les contraintes principales sont les contraintes de précédence : s + s 6 () s 2 + s 4 (2) s 3 + 2 s 4 (3) s 4 + s 5 (4) s 5 + 2 s 6 (5) En plus, la tâche ne peut pas être exécuter au même heure que la tâche 4 : s s 4. Propagation. Dans la table suivant, on donne les valeurs qui ne sont pas ni arc-consistantes ni arc-b-consistantes avec les contraintes examinées : Contrainte examinée Valeurs supprimée () D s = {0,, 2, 3, 4, 5}, D s6 = { 0,, 2, 3, 4, 5} (2) D s2 = {0,, 2, 3, 4, 5}, D s4 = { 0,, 2, 3, 4, 5} (3) D s3 = {0,, 2, 3, 4}, D s4 = {, 2, 3, 4, 5} (4) D s4 = {2, 3, 4, 5}, D s5 = { 0,, 2, 3, 4} (5) D s5 = {3, 4}, D s6 = {, 2, 3, 4, 5} (2) D s2 = {0,, 2, 3, 4} (3) D s3 = {0,, 2} (4) D s4 = {2, 3} (2) D s2 = {0,, 2} (3) D s3 = {0, } Les domaines sont D s = {0,, 2, 3, 4}, D s2 = {0, }, D s3 = {0}, D s4 = {2}, D s5 = {3}, D s6 = {5}. Les valeurs au bord de ces domaines sont arcconsistantes, et donc CSP est arc-b-consistant. Par contre, valeur 2 dans domaine D s n est pas arc-consistante avec la contrainte s s 4. Donc, si rend ce CSP arc-consistant, on supprime une valeur de plus. Heuristiques II Étant donné le graphe de contraintes binaires suivant A B C D E F 4

a) Trouvez un ordre pour instancier les variables selon l heuristique MWO (Minimum Width Ordering). b) Si on ajoute une contrainte binaire (correspondante à une arête), la largeur minimum du graphe changera-t-elle? c) Est-ce que l arc-consistance de ce CSP garantie toujours sa consistance globale? Chemin consistance? Justifiez votre réponse. a) On applique l algorithme vu au cours pour trouver l ordre des variables qui donne le largeur minimum du graphe de contraintes : A la première itération, sommet F a la dégrée minimum (dégrée 2). On le supprime ainsi que les arêtes (E,F) et (C,F). Maintenant, les sommets C et E ont la dégrée minimum (dégrée 2). On supprime par exemple, E avec les arêtes (A,E) et (D,E). Maintenant, les sommets C et A ont la dégrée minimum (dégrée 2). On supprime par exemple, C avec les arêtes (B,C) et (D,C). Maintenant, tous les sommets (A, B, et D) ont la dégrée minimum (dégrée 2). On peut les supprimer dans n importe quel ordre. Donc, un des ordres pour instancier les variables selon l heuristique MWO est A, B, D, C, E, F. La largeur minimum du graphe est 2. b) On peut ajouter deux contraintes binaires : (B, F) et (B, E). Dans le premier cas, aucune dégrée des sommets de sera pas inférieurs à 3, donc la largeur minimum deviendra au minimum 3. Dans le deuxième cas, dans le sousgraphe induit par les sommets A, B, D, E aucune dégrée des sommets de sera pas inférieurs à 3, donc la largeur minimum deviendra au minimum 3. On peut conclure que l ajout d une contrainte binaire augmentera la largeur du graphe. c) Selon la théorème vue au cours, k-consistance forte d un CSP induit sa consistance globale si k est supérieur à la largeur du réseau de contrainte associé à ce CSP. Donc, comme la largeur du graphe est 2, pour que k-consistance forte induise la consistance globale k doit être supérieur à 2. D où, l arcconsistance (2-consistance forte) n induit pas la consistance globale, tandis que le chemin-consistance induit la consistance globale du CSP correspondant au graphe. Problème de reines. Résolvez le problème de 6 reines avec l algorithme de Forward Checking. 2. Si on maintient l arc-consistance après chaque suppression d une valeur, est-ce qu on peut résoudre le problème plus vite?. La résolution est très long à détailler ici. Vous pouvez aller voir la résolution du problème de 4 reines vue au cours. C est exactement pareil. 5

2. Si on maintient l arc-consistance après chaque suppression d une valeur, on détectera les inconsistances (domaines vides) plus tôt, et donc on aura moins de noeuds dans l abre de recherche. C est aussi long à détailler ça ici. On va l illustrer sur un exemple. Imaginons que deux reines sont déjà placées sur l échiquier : x x 2 x 3 x 4 x 5 x 6 Q 2 3 4 Q 5 6 Les cases foncés représentent les valeurs supprimées des domaines des variables selon l algorithme Forward Checking. On peut remarquer que les domaines des variables non-fixées (x 3 à x 6 ) ne sont pas vides et donc, on ne peut pas savoir si cette solution partielle peut être étendue à une solution complète. Donc, on est obligé à descendre plus bas dans l arbre de recherche. Si on maintient l arc-consistance, on peut supprimer plus des valeurs dans les domaines des variables non-fixées. D abord, on peut noter que les valeus (x 6, 3) et (x 6, 5) n ont pas de support dans le domaine de x 4. Après cette suppression, les valeurs (x 3, 2), (x 5, 2), et (x 5, 3) deviennent arcinconsistantes, ce que entraine la suppression des valeurs (x 3, 6), (x 4, 5) et (x 5, 6). Les domaines des variables x 3 et x 5 sont maintenant vides, et donc le CSP est arc-inconsistante après ce placement de deux premières reines. Par conséquent, on peut remonter dans l arbre de recherche, comme cette branche ne contient pas d une solution complète. Les valeurs arcinconsistantes sont marquer sur le dessin par un. Au même temps, si on maintient l arc-consistance, on passera plus de temps dans chaque noeud pour maintenir l arc consistance. Quelle variante (maintenir ou pas l arc-consistance) permettra résoudre le problème plus vite n est pas claire. Il faut faire une expérience, i.e. implémenter les deux algorithmes (Forward Checking et Maintaining Arc Consistency) et les comparer expérimentalement. 6

Contrainte globale element On considère le CSP Variables : X, Y, Z. Domaines : D X = {5, 6, 7, 8}, D Y = {, 3, 5}, D Z = {2, 4}. Contrainte : X = v Y + w Z, où v = [, 5, 3, 4, ] et w = [4,, 4, 2, 5] Rendez ce CSP localement consistant. Pour simplifier la présentation de la résolution, on va introduire deux variables : V = v Y et W = w Z. Après la propagation de ces deux contraintes element, D V = {, 3} et D W = {, 2}. On examine maintenant la contrainte X = Y + W. La somme de V et W peut prendre les valeurs 2, 3, 4, et 7, donc les valeurs 6, 7 et 8 peuvent être retirées de D X. Les domaines D W et D V sont aussi changés : D V = {3}, et D W = {2}. Donc, on doit propager de nouveau les contraintes V = v Y et W = w Z, ce que nous donne D Y = {3} et D Z = {2} (et D X = {5}). Goûter dans une crèche Il y a l heure de goûter pour 8 enfants. Chacun a droit à un fruit. Il y a 2 pommes, 2 poires, orange, pamplemousse, et 3 bananes. Les fruits préférés des enfants sont : François Arthur et Tomas Maxime Emma Marie Lisa et Mathilde pommes pommes, poires poires poires, bananes oranges, pamplemousses oranges, bananes Si Emma prend une poire, est-ce que les autres enfants pourront chacun choisir un fruit préféré? Répondez à cette question en utilisant l algorithme de propagation d une contrainte globale. On va modéliser ce problème avec la contrainte de cardinalité globale. On introduit une variables pour chaque enfant. Chaque fruit consideré comme une valeur est dans le domaine de d une variable-enfant si cet enfant préfère ce fruit. Comme le nombre de fruits disponibles est limité, pour chaque valeur, il y a une borne supérieur pour le nombre de fois cette valeur peut être prise. Donc, on peut modéliser cette situation avec la contrainte globale gcc. Après la propagation de cette contrainte, les valeurs restées dans les domaines des variables vont indiquer quels fruits que les enfants pourront prendre sans empêcher les autres à prendre leurs fruits préférés. D abord on construit le flot maximum (en gras) correspondant à notre contrainte gcc : 7

François pommes Arthur 2 \ 2 Tomas poires 2 \ 2 s Maxime Emma orange \ \ t Marie Lisa pamplem 2 \ 3 Mathilde bananes Pour propager la contrainte gcc, on utilise le graphe résiduel associé au flot construit : François pommes Arthur Tomas poires s Maxime Emma orange t Marie pamplem Lisa Mathilde bananes Les arcs pointillées (entre variables et valeurs) ne font partie du flot et n appartient pas à aucun circuit alterné. Ces arcs ne peuvent pas appartenir à aucun flot maximum dans ce graphe. Donc, Emma ne peut pas prendre une poire et Marie ne peut prendre une orange sans empêcher les autres à prendre leurs fruits préférés. 8