400 likes | 533 Views
Où en sommes-nous ?. Prospectifs. Prospectifs. FC MAC Quick RFL …. FC MAC Quick RFL …. CSP Statiques. CSP Dynamiques. VCSP. Réduction de l’espace de recherche. Algorithmes De recherche Backtrack. Classes polynomiales. Ordres d’instanciation. Compi- lation.
E N D
Où en sommes-nous ? Prospectifs Prospectifs FC MAC Quick RFL … FC MAC Quick RFL … CSP Statiques CSP Dynamiques VCSP Réduction de l’espace de recherche Algorithmes De recherche Backtrack Classes polynomiales Ordres d’instanciation Compi- lation rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes
Algorithmes prospectifs 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 jI pour toutbDjfaire ForwardChecking(I, j, b) restaurer les domaines Forward Checking Pare-chocs Enjoliveurs Caisse Enjoliveurs Caisse Pare-chocs Capote Capote
Algorithmes prospectifs Forward Checking – sur les N-reines
Algorithmes prospectifs Pare-chocs Caisse Enjoliveurs Capote AC puis BACKTRACK FC BACKTRACK Enjoliveurs Caisse Pare-chocs Capote
Algorithmes prospectifs FC Coût moyen d’une recherche Seuil Backtrack Sous contraints Sur contraints
Algorithmes prospectifs MAC(I, i, a) I=I{(i, a)} supprimer et propager {(i, b) / ba} Si il n’existe pas de domaine vide Alors Choisir jI pour toutbDjfaire MAC(I, j, b) restaurer les domaines supprimer et propager (i, a) Pare-chocs Pare-chocs Pare-chocs Pare-chocs Pare-chocs Pare-chocs Pare-chocs Pare-chocs Pare-chocs Pare-chocs Caisse Caisse Caisse Caisse Caisse Caisse Caisse Caisse Caisse Caisse Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Enjoliveurs Capote Capote Capote Capote Capote Capote Capote Capote Capote Capote Maintaining Arc Consistency Enjoliveurs Caisse Pare-chocs Capote
Algorithmes prospectifs Pare-chocs Caisse Enjoliveurs Capote AC puis BACKTRACK FC MAC BACKTRACK Enjoliveurs Caisse Pare-chocs Capote
Algorithmes prospectifs Coût moyen d’une recherche Seuil 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 • Il faut donc : • comparer la puissance des consistances locales • comparer le coût des consistances locales • comparer le rapport coût/puissance
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 Max-RPC SAC 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 8.63 sec 1E+1 Max-RPC1 2.44 sec 1.11 sec RPC2 1E0 AC7 1E-1 1E-2 dureté 1E-3 1 10 20 30 40 50 60 70 80 90 99
Algorithmes prospectifs Coût moyen d’une recherche Seuil Backtrack FC MAC Quick Sous contraints Sur contraints
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 1E0 1E-1 1E-2 MAC7ps Quick Dureté 1E-3 64 79 94
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 15 h 1E+5 49 min 1E+4 1E+3 1h 29 15 s. 1E+2 1E+1 1E0 dureté 1E-1 1E-2 64 79 94
Où en sommes-nous ? Prospectifs FC MAC Quick RFL … CSP Statiques CSP Dynamiques VCSP Réduction de l’espace de recherche Algorithmes De recherche Backtrack Classes polynomiales Ordres d’instanciation Compi- lation 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 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 1E-0 3CL+Dom Dom + Deg Dom/Deg 1E-1 1E-2 40 60 80 100 120 140 160
Où en sommes-nous ? Prospectifs FC MAC Quick RFL … CSP Statiques CSP Dynamiques VCSP Réduction de l’espace de recherche Algorithmes De recherche Backtrack Classes polynomiales Ordres d’instanciation Compi- lation 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 1 6 largeur()=3 largeur()=2 2 largeur=2 5 largeur(2, )=1 4 6 5 3 6 4 1 4 5 2 largeur(2, )=1 largeur(3, )=3 largeur(3, )=2 3 2 3 1
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). 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 Problèmes : - la complexité de la k-consistance. - l’ordre d’instanciation est statique. 1 2 6 5 4 6 1 4 5 3 2 3
Où en sommes-nous ? Prospectifs FC MAC Quick RFL … CSP Statiques CSP Dynamiques VCSP Réduction de l’espace de recherche Algorithmes De recherche Backtrack Classes polynomiales Ordres d’instanciation Compi- lation rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes
CSP Dynamiques 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
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 !
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 !
CSP Dynamiques = = + = = = + - + = = Maintien d’une consistance locale 3ème Solution : utiliser un système de justifications
CSP Dynamiques On remet les valeurs justifiées par la contrainte supprimée - = = = = = On vérifie la consistance locale des valeurs remises On propage les valeurs remises Maintien d’une consistance locale
Où en sommes-nous ? Prospectifs FC MAC Quick RFL … CSP Statiques CSP Dynamiques VCSP Réduction de l’espace de recherche Algorithmes De recherche Backtrack Classes polynomiales Ordres d’instanciation Compi- lation rétrospectifs Backjumping Backmarking Nogood Recording Conflict Directed Backjumping Dynamic Backtracking … méthodes structurelles mixtes
Recherche rétrospective 3 2 4 1 5 6 Le thrashing Exemple montrant le thrashing
Recherche rétrospective 2 3 1 4 5 6 Le thrashing Exemple montrant le thrashing 1 2 3 4 5 6
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 expl(5 )=C2 C25 expl(5 )=C1 C15 expl(5 )=C2 C25 expl(D5=)={C1 ,C2}
Conflict Directed Backjumping 2 3 Réduction partielle du thrashing 1 4 5 6 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 enO(n2d)pour un CN denvariables ayantdpour 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 FC-CBJ MAC DBT FC-DBT MAC-CBJ MAC-DBT