Conflict Directed Backjumping

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
La recherche de chemin optimal
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Fabrice Lauri, François Charpillet, Daniel Szer
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
LE CALCUL LITTÉRAL AU COLLÈGE
Les numéros 70 –
Les numéros
ACTIVITES Les fractions (10).
Les identités remarquables
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Journées Graphes & Algorithmes, Novembre 2006, Orléans
Ordonnancement des mouvements de deux robots
ETALONNAGE D’UN CAPTEUR
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Les résultats Le tri croisé
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
RELATION COÛT-VOLUME-BÉNÉFICE
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Les structures de données arborescentes
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
Présentation générale
Heuristiques A. Introduction B. Recherche d ’une branche
1 Journée de regroupement des correspondants "Egalité et genre" - 21 novembre 2011 Rectorat de Rouen - SAIO - CD-HD Résultats scolaires, appréciations.
Mai 2001FRANCOROIII - Challenge Recherche Locale Guidée Par Le Coût Des Contraintes Gavranovic Haris Univerzitet U Sarajevu IMAG, Grenoble.
LES NOMBRES PREMIERS ET COMPOSÉS
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
Systèmes d’équations du premier degré à deux variables
Les chiffres & les nombres
Algorithme de Bellman-Ford
1 INETOP
Calculs et écritures fractionnaires
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
La Distribution des Données
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Recherche Opérationnelle
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Les Nombres 0 – 100 en français.
Les Nombres! de 0 à 20.
SUJET D’ENTRAINEMENT n°4
Aire d’une figure par encadrement
Atelier de formation : MAT optimisation II (les graphes).
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
SUJET D’ENTRAINEMENT n°1
Coupes efficaces pour la relaxation lagrangienne
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Equation différentielle de 2ème ordre
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
LES PILES ET FILES.
Les Chiffres Prêts?
Transcription de la présentation:

Conflict Directed Backjumping Où en sommes-nous ? CSP Statiques CSP Dynamiques VCSP Algorithmes De recherche Backtrack Réduction de l’espace de recherche Classes polynomiales Ordres d’instanciation Compi- lation Prospectifs FC MAC Quick RFL … Prospectifs FC MAC Quick RFL … rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes

Algorithmes prospectifs Forward Checking Forward Checking(I, i, a) I=I{(i, a)} supprimer de D toutes les valeurs incompatibles avec i=a si il n’existe pas de domaine vide alors choisir jI pour tout bDj faire ForwardChecking(I, j, b) restaurer les domaines Pare-chocs Enjoliveurs Enjoliveurs Caisse Caisse Pare-chocs Capote Capote

Algorithmes prospectifs Forward Checking – sur les N-reines

Algorithmes prospectifs AC puis BACKTRACK BACKTRACK FC Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote

Backtrack FC Algorithmes prospectifs Coût moyen d’une recherche Seuil Quant est il du coût de la recherche d ’une solution. Et bien voici le coût de la recherche d ’une solution avec forward checking. Je ne montre pas Backtrack ici parce qu ’il sortirai très largement de l ’écran. Sur les problèmes sous-contraintes, il y a peu de combinaisons de valeurs interdites, il y a donc beaucoup de solution et Forward Checking parvient à en trouver une rapidement. Sur les problèmes sur-contraintes, il y a beaucoup de combinaisons interdites et Forward Checking trouve rapidement qu ’il n ’y a pas de solution. Et puis, autour de ce qu ’on appel le seuil, qui est la zone ou il y a 50% des problèmes qui ont une solution et 50% des problèmes qui n ’en on pas, on trouve la majorité des problèmes difficiles et forward checking explose en temps. Donc pendant très longtemps on pensait que c ’était le meilleur algorithme de recherche mais plus récemment, (94-95) des expérimentation ont montré que maintenir la consistance d ’arc permet d ’aller plus vite sur les problèmes difficiles. Donc la question qu ’on s ’est posé, c ’est « existe t ’il une consistance locale encore plus forte qui aurait cette allure, c ’est à dire que certes elle perdrait quelques centièmes de seconde sur les problèmes faciles mais permettrait de gagner des minutes, voir des heures sur les problèmes difficiles. Backtrack Sous contraints Sur contraints

Algorithmes prospectifs Maintaining Arc Consistency MAC(I, i, a) I=I{(i, a)} supprimer et propager {(i, b) / ba} Si il n’existe pas de domaine vide Alors Choisir jI pour tout bDj faire MAC(I, j, b) restaurer les domaines supprimer et propager (i, a) Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote

Algorithmes prospectifs AC puis BACKTRACK BACKTRACK FC MAC Enjoliveurs Caisse Pare-chocs Capote Enjoliveurs Caisse Pare-chocs Capote

Backtrack FC MAC Algorithmes prospectifs Coût moyen d’une recherche Seuil Quant est il du coût de la recherche d ’une solution. Et bien voici le coût de la recherche d ’une solution avec forward checking. Je ne montre pas Backtrack ici parce qu ’il sortirai très largement de l ’écran. Sur les problèmes sous-contraintes, il y a peu de combinaisons de valeurs interdites, il y a donc beaucoup de solution et Forward Checking parvient à en trouver une rapidement. Sur les problèmes sur-contraintes, il y a beaucoup de combinaisons interdites et Forward Checking trouve rapidement qu ’il n ’y a pas de solution. Et puis, autour de ce qu ’on appel le seuil, qui est la zone ou il y a 50% des problèmes qui ont une solution et 50% des problèmes qui n ’en on pas, on trouve la majorité des problèmes difficiles et forward checking explose en temps. Donc pendant très longtemps on pensait que c ’était le meilleur algorithme de recherche mais plus récemment, (94-95) des expérimentation ont montré que maintenir la consistance d ’arc permet d ’aller plus vite sur les problèmes difficiles. Donc la question qu ’on s ’est posé, c ’est « existe t ’il une consistance locale encore plus forte qui aurait cette allure, c ’est à dire que certes elle perdrait quelques centièmes de seconde sur les problèmes faciles mais permettrait de gagner des minutes, voir des heures sur les problèmes difficiles. Backtrack FC MAC Sous contraints Sur contraints

Algorithmes prospectifs Quelle consistance locale maintenir pendant la recherche ? pour être rentable, la consistance locale doit avoir un bon rapport coût/puissance : on doit passer moins de temps à détecter qu’une branche ne même à aucune solution qu’à explorer cette branche Quant est il du coût de la recherche d ’une solution. Et bien voici le coût de la recherche d ’une solution avec forward checking. Je ne montre pas Backtrack ici parce qu ’il sortirai très largement de l ’écran. Sur les problèmes sous-contraintes, il y a peu de combinaisons de valeurs interdites, il y a donc beaucoup de solution et Forward Checking parvient à en trouver une rapidement. Sur les problèmes sur-contraintes, il y a beaucoup de combinaisons interdites et Forward Checking trouve rapidement qu ’il n ’y a pas de solution. Et puis, autour de ce qu ’on appel le seuil, qui est la zone ou il y a 50% des problèmes qui ont une solution et 50% des problèmes qui n ’en on pas, on trouve la majorité des problèmes difficiles et forward checking explose en temps. Donc pendant très longtemps on pensait que c ’était le meilleur algorithme de recherche mais plus récemment, (94-95) des expérimentation ont montré que maintenir la consistance d ’arc permet d ’aller plus vite sur les problèmes difficiles. Donc la question qu ’on s ’est posé, c ’est « existe t ’il une consistance locale encore plus forte qui aurait cette allure, c ’est à dire que certes elle perdrait quelques centièmes de seconde sur les problèmes faciles mais permettrait de gagner des minutes, voir des heures sur les problèmes difficiles. Il faut donc : comparer la puissance des consistances locales comparer le coût des consistances locales comparer le rapport coût/puissance

Les limites Tall avec n=40 et d=15 Algorithmes prospectifs Puissance des consistances locales D u r e t é 0.01 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.01 0.1 0.2 0.3 D e n s i t é 0.4 0.5 0.6 0.7 0.8 PIC RPC 0.9 PC Forte Max-RPCEn Consistance globale SAC Max-RPC AC 1 SRPC Les limites Tall avec n=40 et d=15

Algorithmes prospectifs Coût des consistances locales Temps cpu (sec.) Pentium II 266 Mhz 64 Mo n=200, d=30 et densité=15% 1E+5 12h 40min 3h 53min 1E+4 PC forte 39min 43sec 1E+3 SRPC2 1E+2 SAC6 Et bien oui et non. Oui parce que c ’est sur que la SAC par exemple demande beaucoup plus de temps que la max-rpc, avec la max rpc on est a 8 secondes alors qu ’avec la SAC sur ces problèmes on peut arriver a demander jusqu ’a presque 40 minutes. Mais ca reste quand meme un bon resultat compare a la consistance de chemin. Et meme la SRPC est moins couteuse que la consistance de chemin ce qui en fait une bonne alternative à la PC Forte. Et puis pour toutes ces consistances locales on a des algorithmes optimaux mais pas encore pour les consistances de singleton. 8.63 sec 1E+1 Max-RPC1 2.44 sec 1.11 sec 1E0 RPC2 AC7 1E-1 1E-2 dureté 1E-3 1 10 20 30 40 50 60 70 80 90 99

Backtrack FC MAC Quick Algorithmes prospectifs Coût moyen d’une recherche Seuil Quant est il du coût de la recherche d ’une solution. Et bien voici le coût de la recherche d ’une solution avec forward checking. Je ne montre pas Backtrack ici parce qu ’il sortirai très largement de l ’écran. Sur les problèmes sous-contraintes, il y a peu de combinaisons de valeurs interdites, il y a donc beaucoup de solution et Forward Checking parvient à en trouver une rapidement. Sur les problèmes sur-contraintes, il y a beaucoup de combinaisons interdites et Forward Checking trouve rapidement qu ’il n ’y a pas de solution. Et puis, autour de ce qu ’on appel le seuil, qui est la zone ou il y a 50% des problèmes qui ont une solution et 50% des problèmes qui n ’en on pas, on trouve la majorité des problèmes difficiles et forward checking explose en temps. Donc pendant très longtemps on pensait que c ’était le meilleur algorithme de recherche mais plus récemment, (94-95) des expérimentation ont montré que maintenir la consistance d ’arc permet d ’aller plus vite sur les problèmes difficiles. Donc la question qu ’on s ’est posé, c ’est « existe t ’il une consistance locale encore plus forte qui aurait cette allure, c ’est à dire que certes elle perdrait quelques centièmes de seconde sur les problèmes faciles mais permettrait de gagner des minutes, voir des heures sur les problèmes difficiles. Backtrack FC MAC Quick Sous contraints Sur contraints

Temps cpu(en secondes) Algorithmes prospectifs Des problèmes exceptionnellement coûteux… Temps cpu(en secondes) n=200, d=20, 3 voisins, dom/deg 1E+3 ? 3.11 min 1E+2 22 sec 1E+1 Sur des problèmes un peu plus gros maintenant. Là le gain est encore plus important. Ici les problèmes ont 200 variables et 20 valeurs pour chacune d ’elle et au niveau du seuil quick réclame 22 secondes alors que MAC demande 3 minutes 11. Avant le seuil on voit des pics pour MAC. C ’est connu comme comportement, la majorité des problèmes difficiles sont autour du seuil, mais il existe avant le seuil des problèmes encore plus difficiles. Ici, sur une instense on a pas les résultats pour MAC parce qu ’il demandait plus de 12 jours. Par contre Quick ne présente pas de PICS, ce qui n ’est pas normal, donc pour voir apparaître d ’éventuels pics, mieux vaut regarde les pires résultats plutôt que les résultats en moyenne. 1E0 1E-1 1E-2 MAC7ps Quick Dureté 1E-3 64 79 94

Temps cpu requis maximum sur 1200 CN générés (en secondes) Algorithmes prospectifs Des problèmes exceptionnellement coûteux… Temps cpu requis maximum sur 1200 CN générés (en secondes) n=200, d=20, 3 voisins, dom/deg 1E+6 >12 jours 44 h 75 h MAC7ps Quick 1E+5 15 h 49 min 1E+4 1E+3 1h 29 Donc voici les résultats sur les plus coûteuses intenses. Au niveau du seuil quick demeure moins couteux que MAC, on retrouve l ’instance de plus de 12 jours. Et on voit apparaître un pic pour quick mais il faut relativiser dans le sens ou il ne fait que 15 secondes et au même endroit MAC réclame 1h29mn. Mais bon, en fait si on génère des tas et des tas de problèmes, on devrait finir par trouver des pics pour Quick aussi, mais l ’utilisation d ’un filtrage fort dans Quick lui permet d ’être plus stable et de réduire le nombre de ces problèmes sur lesquels la recherche demande des heures. 1E+2 15 s. 1E+1 1E0 1E-1 dureté 1E-2 64 79 94

Conflict Directed Backjumping Où en sommes-nous ? CSP Statiques CSP Dynamiques VCSP Algorithmes De recherche Backtrack Réduction de l’espace de recherche Classes polynomiales Ordres d’instanciation Compi- lation Prospectifs FC MAC Quick RFL … rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes

Heuristiques sur l’ordre d’instanciation Si on s’engouffre dans un branche sans solutions, on peut passer énormément de temps avant de s’en apercevoir Les premiers choix sont particulièrement importants car on doit potentiellement faire davantage de backtracks avant de revenir sur eux Il vaut mieux commencer par instancier les variables les plus Contraintes : Celles qui ont un petit domaine Celles qui sont impliquées dans de nombreuses contraintes Celles qui sont impliquées dans les contraintes les plus dures … Il vaut mieux commencer par affecter la valeur la plus prometteuse: Celle qui a le plus de supports Celle qui a le plus de supports chemin consistants … L’ordre sur les variables a plus d’impact que l’ordre sur les valeurs

Heuristiques sur l’ordre d’instanciation Temps cpu (en sec.) de FC au seuil pour n de 40 à 160 et D=15 1E+2 1E+1 Tout d ’abord, sur les heuristiques sur l ’ordre d ’instanciation. L ’ordre selon lequel on choisit les variables à instancier est très important pour la rapidité de la recherche. Si on veut trouver rapidement une solution, il faut instancier en priorité les variables qui sont les plus contraintes. Pour estimer quelle est la variable la plus contrainte, on se base sur des caractéristiques du réseau, comme le nombre de valeurs dans les domaines, le degré des variables c ’est à dire le nombre de variables auxquelles elles sont reliées par des contraintes etc. Pendant longtemps l ’heuristique la plus utilisée consistait à choisir en priorité les variables qui ont le moins de valeur dans leur domaine et si il y a des ex æquo on les départage en choisissant parmi eux la variable qui a le plus grand degré, c ’est à dire celle qui est reliée au plus de variables. Ici on voit comment évolue le coût de la recherche d ’une solution au niveau du seuil quand la taille des réseaux augmente. On voit bien entre autre que Forward checking ne permet pas de traiter des problèmes aussi gros que ceux traités par MAC ou Quick. 1E-0 3CL+Dom Dom + Deg Dom/Deg 1E-1 1E-2 40 60 80 100 120 140 160

Heuristiques sur l’ordre d’instanciation Temps cpu (en sec.) Quick au seuil pour n de 40 à 160 et D=15 1E+2 1E+1 Tout d ’abord, sur les heuristiques sur l ’ordre d ’instanciation. L ’ordre selon lequel on choisit les variables à instancier est très important pour la rapidité de la recherche. Si on veut trouver rapidement une solution, il faut instancier en priorité les variables qui sont les plus contraintes. Pour estimer quelle est la variable la plus contrainte, on se base sur des caractéristiques du réseau, comme le nombre de valeurs dans les domaines, le degré des variables c ’est à dire le nombre de variables auxquelles elles sont reliées par des contraintes etc. Pendant longtemps l ’heuristique la plus utilisée consistait à choisir en priorité les variables qui ont le moins de valeur dans leur domaine et si il y a des ex æquo on les départage en choisissant parmi eux la variable qui a le plus grand degré, c ’est à dire celle qui est reliée au plus de variables. Ici on voit comment évolue le coût de la recherche d ’une solution au niveau du seuil quand la taille des réseaux augmente. On voit bien entre autre que Forward checking ne permet pas de traiter des problèmes aussi gros que ceux traités par MAC ou Quick. 1E-0 3CL+Dom Dom + Deg Dom/Deg 1E-1 1E-2 40 60 80 100 120 140 160

Conflict Directed Backjumping Où en sommes-nous ? CSP Statiques CSP Dynamiques VCSP Algorithmes De recherche Backtrack Réduction de l’espace de recherche Classes polynomiales Ordres d’instanciation Compi- lation Prospectifs FC MAC Quick RFL … rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes

Une classe polynomiale Si le graphe des contraintes ne contient pas de cycles, on peut résoudre le CSP sans Backtrack S’il n’y a pas de cycles : on réalise la consistance d’arc la recherche sera sans Backtrack C’est la principale classe polynomiale mais il y a d’autres classes Où l’on peut constater un nombre limiter de backtracks

Uilisation de la structure du graphe : coupe cycles Propriété : Un réseau de contraintes acyclique peut être résolu sans backtracks Méthode du coupe cycle : Instancier d’abord un ensemble de variables tel qui si on déconnecte ces variables on obtient un réseau de contraintes acyclique 1 6 5 5 1 4 2 3 Résolution sans retour arrières Difficulté : - Si le coupe cycle est de grande taille, l ’intérêt est limité - Limite les heuristiques sur l ’ordre d ’instanciation - On ne sait pas trouver rapidement un coupe cycle de taille minimal

Uilisation de la structure du graphe : cons. adaptative Un graphe des contraintes est ordonné s’il possède un ordre total sur les sommets. La largeur d’un sommet dans un graphe ordonné est le nombre d’arc reliant ce sommet aux sommets précédents. La largeur d’un ordre est la largeur la plus grande parmi celles des sommets La largeur d’un graphe est le minimum des largeurs sur tous les ordres possibles 3 5 6 4 2 1  1 2 4 3 5 6  largeur()=3 largeur()=2 largeur=2 largeur(2, )=1 4 1 2 3 5 6 largeur(3, )=2 largeur(2, )=1 largeur(3, )=3

Uilisation de la structure du graphe : cons. adaptative Un ordre d’instanciation garantit une recherche sans retour arrière si le niveau de K-consistance forte est supérieur à la largeur de cet ordre. Un réseau est k-consistant ssi toute instanciation de longueur (k-1) peut être étendu à n’importe quelle kième variable (2-Consistance  consistance d’arc) Avec un ordre de largeur 2, la 3-consistance forte est nécessaire. Problèmes : - la réalisation de la k-consistance exige un temps exponentiel en k. la réalisation de la k-consistance peut entraîner l ’ajout de contraintes (k-1)-aires et donc modifier la largeur de l ’ordre (et même du graphe). 1 Consistance adaptative : adapter le niveau de k-consistance à chaque sommet. - On considère les sommets dans l ’ordre inverse - Soit k la largeur du sommet ; on réalise la (k+1)-consistance entre les sommets qui le précède dans l ’ordre et lui même.  L’ordre est backtrack-free 2 6 5 4 Problèmes : - la complexité de la k-consistance. - l’ordre d’instanciation est statique. 6 1 4 5 2 3 3

Conflict Directed Backjumping Où en sommes-nous ? CSP Statiques CSP Dynamiques VCSP Algorithmes De recherche Backtrack Réduction de l’espace de recherche Classes polynomiales Ordres d’instanciation Compi- lation Prospectifs FC MAC Quick RFL … rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes

CSP Dynamiques =  =  Rarement satisfaisant  Besoin d’interactivité Enfin, j ’ai également travaillé sur les réseaux de contraintes dynamiques. Dans les problèmes qu ’on a vu jusqu ’à présent, l ’ensemble des contraintes et donné à l ’avance et on cherche un ou les solutions. Mais il y a des problèmes intrinsèquement dynamiques. Dans la conception d ’un emploi du temps par exemple, il arrive très souvent que des contraintes s ’ajoutent, comme une indisponibilité, ou un imprévu. De même pour les problèmes d ’ordonnancement, une machine peut tomber en panne et il faut alors recherche une solution la plus proche possible de celle qu ’on avait. On a donc envie de pouvoir jouer avec notre enoncé, d ’ajouter ou de retirer des contraintes quand on en a envie. Il y a également un autre cas ou on voudrait introduire du dynamisme c ’est pour les problèmes sur-contraints. Quand on a tellement de contraintes qu ’il n ’y a pas de solution, on cherche a maximiser un critère sur les contraintes. Par exemple on essaye de satisfaire un maximum de contraintes, ou alors on met des poids sur les contraintes et on essaye de minimiser le poids des contraintes violees, etc. Mais dans tous ces cas c ’est difficile de modéliser le problème pour que ca réponde à notre attente. Par exemple, si on met des poids, on a du mal a évaluer les poids a mettre et si on classe les contraintes par niveau de priorité, c ’est à dire si on dit qu ’il faut d ’abord tenter de minimiser le nombre de contraintes violees de niveau 1, puis s ’il y a des ex æquo départager en minimisant le nombre de contraintes violees de niveau 2, etc… il peut se passer des chose inattendue comme le viol de millier de contraintes de niveau n pour respecter une seul contrainte de niveau n-1 ce qui n ’est pas toujours souhaité. CSP Statiques : L’ensemble des contraintes ne change pas - trouver une solution / toutes les solutions Problèmes intrinsèquement dynamiques : - emplois du temps, scheduling, design, ... Si le CSP est sur-contraint  Optimisation trouver une solution optimale vis-à-vis d’un critère sur les contraintes  Rarement satisfaisant  Besoin d’interactivité

CSP Dynamiques Maintien d’une consistance locale + - + + + - + +  + =  = - + + =  +  =  = - + =  Voilà à quoi ressemble une séance de travail avec des CSP dynamiques. On part avec un ensemble vide de contraintes, et l ’utilisateur ajoute des contraintes pour définir son problème. Et puis il arrive un moment où le fait d ’ajouter une contrainte fait qu ’il n ’y a plus de solution et dans ce cas l ’utilisateur va supprimer une contrainte. Il va pouvoir ensuite a nouveau compléter la définition de la solution qu ’il recherche en ajoutant a nouveau des contraintes, etc. Donc l ’utilisateur ajoute des contraintes quand il y a plusieurs solutions et supprime des contraintes quand il n ’y en a plus. On reste donc souvent autour de la zone des problèmes difficiles. Comme déterminer le nombre de solution que le CSP a est trop coûteux, ce qu ’on fait généralement c ’est de maintenir une consistance locale pour avoir une estimation de l ’existence de solution, mais c ’est qu ’une estimation. + =

CSP Dynamiques Maintien d’une consistance locale + + + + + + + 1ère Solution : Pour supprimer une contrainte, on repart du réseau sans contraintes + =  +  =  = + On doit pouvoir faire mieux !  = + + = Voilà à quoi ressemble une séance de travail avec des CSP dynamiques. On part avec un ensemble vide de contraintes, et l ’utilisateur ajoute des contraintes pour définir son problème. Et puis il arrive un moment où le fait d ’ajouter une contrainte fait qu ’il n ’y a plus de solution et dans ce cas l ’utilisateur va supprimer une contrainte. Il va pouvoir ensuite a nouveau compléter la définition de la solution qu ’il recherche en ajoutant a nouveau des contraintes, etc. Donc l ’utilisateur ajoute des contraintes quand il y a plusieurs solutions et supprime des contraintes quand il n ’y en a plus. On reste donc souvent autour de la zone des problèmes difficiles. Comme déterminer le nombre de solution que le CSP a est trop coûteux, ce qu ’on fait généralement c ’est de maintenir une consistance locale pour avoir une estimation de l ’existence de solution, mais c ’est qu ’une estimation. + = + =

CSP Dynamiques Maintien d’une consistance locale + + + + + + 2ème Solution : On mémorise l’état du réseau Avant chaque ajout On ne repart pas toujours De zéro + =  +  =  = + = On doit pouvoir faire mieux !  = + + = Voilà à quoi ressemble une séance de travail avec des CSP dynamiques. On part avec un ensemble vide de contraintes, et l ’utilisateur ajoute des contraintes pour définir son problème. Et puis il arrive un moment où le fait d ’ajouter une contrainte fait qu ’il n ’y a plus de solution et dans ce cas l ’utilisateur va supprimer une contrainte. Il va pouvoir ensuite a nouveau compléter la définition de la solution qu ’il recherche en ajoutant a nouveau des contraintes, etc. Donc l ’utilisateur ajoute des contraintes quand il y a plusieurs solutions et supprime des contraintes quand il n ’y en a plus. On reste donc souvent autour de la zone des problèmes difficiles. Comme déterminer le nombre de solution que le CSP a est trop coûteux, ce qu ’on fait généralement c ’est de maintenir une consistance locale pour avoir une estimation de l ’existence de solution, mais c ’est qu ’une estimation. + =

+ + - + CSP Dynamiques Maintien d’une consistance locale = =  = =   3ème Solution : utiliser un système de justifications =  = + Bonne nouvelle, les algorithmes sont naturellement incrémentaux pour l ’ajout de contraintes. Quand on va rajouter une contrainte, on ne va pas retester nécessairement toutes les contraintes du problème, on va regarder les retraits de valeurs que réalise localement l ’ajout de la contrainte et on va propager ces éventuels retraits. Ici, l ’ajout de la contrainte différent e supprime pas de valeur donc on ne propage rien et en particulier on ne réexamine pas la contrainte d’égalité. Si on rajoute une contrainte d ’égalité on supprime les valeurs qui n ’ont pas de support sur la contrainte puis on propage ces retraits. Par contre, si il n ’y a plus de solution, il faut retirer une contrainte et la on ne sait pas être incrémental parce qu ’on ne sait pas qu ’elles valeurs il faut remettre dans les domaines. Il faut voir qu ’on peut supprimer n ’importe quelle contrainte et donc pas forcement la dernière qu ’on a ajoutée. On ne peut pas simplement mémoriser au fur et a mesure les états parce qu ’on peut se retrouver dans une combinaison de contraintes qu ’on a jamais encore traitée. On est donc obligés de remettre toutes les valeurs et de vérifier l ’AC sur toutes les contraintes du problème. + =   = + = -

- CSP Dynamiques Maintien d’une consistance locale =   = =  =  On remet les valeurs justifiées par la contrainte supprimée  = =  On propage les valeurs remises La solution adoptée pour devenir incrémental sur les retraits de contraintes consiste à mémoriser une justification de chaque retrait. Ici, la valeur bleue est justifiée par cette contrainte d’égalité pour dire que c ’est à cause de cette contrainte que la valeur a été supprimée. Grâce à ce système de justifications, quand on retire une contrainte, on commence par remettre les valeur dont le retrait dépend directement de cette contrainte. Puis on va propager ces rajouts de valeurs en propageant le long des contraintes. Ceci nous évite de repartir de zéro, et entre autre ici il y a des valeurs qui n ’ont pas été remises dans le domaine. Ma contribution a été d ’associer l ’idée d ’ac6 à ce système de justification, ce qui a demandé des adaptation et ca a donné le jour à DnAC6 qui est jusqu ’a présent l ’algorithme de maintien de la consistance d ’arc le plus rapide. Une autre utilisation possible de ce système de justification concerne le débogage parce que ces justifications nous donnent des explications sur la cause des retraits. =  On vérifie la consistance locale des valeurs remises

Conflict Directed Backjumping Où en sommes-nous ? CSP Statiques CSP Dynamiques VCSP Algorithmes De recherche Backtrack Réduction de l’espace de recherche Classes polynomiales Ordres d’instanciation Compi- lation Prospectifs FC MAC Quick RFL … rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes

Exemple montrant le thrashing Recherche rétrospective Le thrashing Exemple montrant le thrashing 6 5 1 2 3 4

Exemple montrant le thrashing Recherche rétrospective Le thrashing 6 5 1 2 3 4 Exemple montrant le thrashing 1 2 3 4 5 6

Conflict directed BackJumping (CBJ) Dynamic Backtracking Chaque échec sur le choix d’une valeur est expliqué par les précédents choix qui entre en conflit. Si toutes les valeurs d’un domaine ont été testées sans succès, l’explication de cet échec est l’union des explications des valeurs du domaine et on revient sur l’instanciation la plus récente de cette explication. Conflict directed BackJumping (CBJ) Idem mais lors d’un saut on supprime également les instanciations intermédiaires.  

Dynamic Backtracking [Ginsberg, 93] 2 3 1 4 - Instancier i à a  Ajout de Ci:(i=a) - Explication d’une information I = ensemble de contraintes tel que I demeure vérifiée tant que ces contraintes figurent dans le système 5 6 1 2 3 4 5 C25 expl(5 )=C2 C15 expl(5 )=C1 C25 expl(5 )=C2 expl(D5=)={C1 ,C2}

Conflict Directed Backjumping 6 5 1 2 3 4 Réduction partielle du thrashing 1 2 3 4 5 6

Dynamic Backtracking - Plus une réparation qu’un saut - Additif sur les sous-problèmes indépendants - Compense « automatiquement » certaines lacunes de l’heuristi- que sur l’ordre d’instanciation 2 3 1 4 5 6 1 2 3 4 5 6 3 4 2

Dynamic Backtracking 5 8 - Compense « automatiquement » certaines lacunes de l’heuristi- que sur l’ordre d’instanciation 4 6 1 2 3 7 9 5 8 4 6 7 9

Les explications Le coût spatial des explications est en O(n2d) pour un CN de n variables ayant d pour taille maximale des domaines mais l’espace requis en moyenne est loin de ce pire cas Les explications permettent également - de posséder une explication des retraits ce qui peut être précieux pour la mise au point - le traitement des problèmes sur-contraints et la résolution interactive

Deux grandes familles d’améliorations BT Recherche en Avant Recherche en Arrière FC CBJ MAC FC-CBJ DBT FC-DBT MAC-CBJ MAC-DBT