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

Conflict Directed Backjumping

Présentations similaires


Présentation au sujet: "Conflict Directed Backjumping"— Transcription de la présentation:

1 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

2 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

3 Algorithmes prospectifs
Forward Checking – sur les N-reines

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

5 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

6 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

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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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é

26 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. + =

27 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. + = + =

28 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. + =

29 + + - + 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. + = = + = -

30 - 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

31 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

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

33 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

34 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.

35 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}

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

37 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

38 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

39 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

40 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


Télécharger ppt "Conflict Directed Backjumping"

Présentations similaires


Annonces Google