• Aucun résultat trouvé

Dans l’ordre de réutiliser la solution et les techniques de raisonnement passées, nous commençons la recherche avec un problème CSP qui contient une affectation complète (la solution passée) en gardant à la fois les structures de données rétroac- tives de nogoods NgList et les safety conditions SC sauvegardés pendant le proces- sus de recherche passé. Ensuite, nous mettons à jour l’ensemble des contraintes qui doivent être satisfaites en utilisant l’heuristique choisie H et nous testons la cohé- rence de chaque contrainte (lignes 1 à 7). Si l’incohérence est détectée, un nouveau nogood est produit en utilisant la procédure GenerateNg(listV ar, H) (lignes 7-9). Après, nous ajoutons le nouveau nogood dans NgList et nous appelons la fonction

36 II.3 Extended Partial-order Dynamic Backtracking

ALGORITHM 7: Description de l’ algorithme EP DB procedure EPDB(CSP, newConstraint,H)

1. CSP.update(newConstraint) ; 2. CL ← newConstraint ; 3. solution ← false ; 4. emptyNg ← false ;

5. while (¬ solution & ¬ emptyNg) do

6. foreach (ci ∈ CL) do 7. if (¬ ci.isConsistant()) then 8. listVar ← ci.getListOfVar() ; 9. ng ← GenerateNg(listVar,H) ; 10. CSP.NgList.add(ng) ; 11. RepairSolution(ng.getRhs(),CL,H) ; 12. break ; 13. else 14. CL.remove(ci) ; 15. solution ← true ; 16. CSP.ReturnResult() ; function RepairSolution(xi,CL,H) 17. if (D(xi).isEmpty()) then 18. ng ← NgResolution(xi,H) ; 19. if (ng.isEmpty()) then 20. emptyNg ← true ; 21. return false ; 22. if (¬ RepairSolution(Rhs(ng),CL,H)) then 23. return false ; 24. CSP.NgList.removeWithLhs(xi) ; 25. xi.ChangeValue() ; 26. CL.addWith(xi) ; 27. return true ; Procedure GenerateNg(listVar,H) 28. lower = CSP.getLower(listVar) ; 29. if (lower Ó= NULL) then 30. return getNg(listVar,lower) ; 31. GenerateNgWithHeuristic(listVar,H) ;

Procedure NgResolution(xi,H)

32. listVar = CSP.NgList.getAllVarLhs(xi) ; 33. GenerateNg(listVar,H) ;

récursive RepairSolution(Rhs(ng), CL, H), en essayant de trouver une nouvelle ins- tantiation à la variable Rhs(ng) (lignes 10-11). Si la contrainte ci est cohérente, il

est enlevé de la liste de contraintes CL (ligne 13). Si toutes les contraintes sont satisfaites, donc la solution est trouvée et la recherche est finie (lignes 14-15).

37 II.4 Résultats Expérimentaux de trouver une instantiation à la variable xi en vérifiant si le domaine de cette va-

riable est vide ou pas (ligne 16). Si la procédure n’arrive pas à attribuer une valeur à la variable xi (domaine vide), elle fait appel à la fonction NgResolution(var)

pour construire le nogood ng qui est la résolution de tous les nogoods où xi appa-

raît dans la conclusion. Si le nogood résolu est vide, cela signifie qu’aucune so- lution peut être trouvée et la recherche est terminée (lignes 18 à 20), sinon la fonction RepairSolution(Rhs(ng), CL, H) est appelé de manière récursive et es- saye de trouver une nouvelle instantiation à la variable Rhs(ng). Si la variable

Rhs(ng) n’arrive pas à changer sa valeur en raison d’un dead-end, un nogood vide

est produit, donc elle retourne false (aucune solution, lignes 21-22). Autrement,

RepairSolution(xi, CL, H) supprime tous les nogoods avec xi dans les antécédents

et préserve les ordres imposés par eux dans la liste de Safety Conditions SC, alors il donne une nouvelle valeur au xi de son domaine valide (ligne 23 à 27).

La procédure GenerateNg(listV ar, H) est utilisée pour choisir, parmi une liste de variables, la variable la plus bases qui apparaîtra dans la conclusion du nogood, en respectant l’ordre déjà imposé dans la liste de Safety Conditions et la liste des no- goods (lignes 28-29), autrement, la fonction GenerateNgW ithHeuristic(listV ar, H) est appelée afin de déterminer la variable qui sera dans la partie droite du nogood en utilisant l’heuristique sélectionnée H (ligne 31).

N gResolution(xi, H) est appelée lorsque la variable détecte un dead-end. Dans

ce cas, elle stocke dans la structure listV ar toutes les variables qui sont dans la partie gauche de tous les nogoods qui interdisent les valeurs de xi (ligne 32). Puis, il

appelle la procédure GenerateNg(listV ar, H) pour générer le nogood pertinent (la ligne 33).

4

Résultats Expérimentaux

Nous avons effectué une série de tests expérimentaux afin de montrer comment l’intégration des heuristiques de choix de variables peut affecter la performance de l’algorithme P DB. Nous évaluons les résultats en termes de nombre de contrainte testées (CCs) et le temps de calcul (T ime). Toutes les expériences ont été réali- sées sur la plate-forme Java. Les heuristiques de réparation utilisées dans EP DB sont : degré (deg), taille de domaine (dom), degré dynamique (ddeg), degré pondérée (wdeg), nombre des conflits (conf), dom/deg, dom/ddeg et dom/wdeg. Nous éva- luons la performance de EP DB sur deux problèmes différents : Problèmes Binaires Aléatoires Uniformes DCSP et Problèmes Meeting Scheduling MSP .

38 II.4 Résultats Expérimentaux

4.1

Expériences sur les problèmes aléatoires uniforme bi-

naire DCSP

Un Problème Binaire Aléatoire Uniforme DCSP est une séquence de statique

CSP s : P0, P1..., Pα−1, Pα. Le problème P0 est l’original CSP qui est soumis à des

perturbations et pour chaque Pi, i de nouvelles contraintes sont ajoutées à P0. Pour

des raisons logiques, dans ces expériences, nous supposons que le taux maximal de contraintes ajoutées (i.e α/m où α est le nombre maximal de nouvelles contraintes ajoutées et m est le nombre total de contraintes originales dans P0) est équivalent à

∼20%.

Figure II.3 – Nombre de contraintes testées effectué par PDB et EPDB des pro-

blèmes uniformes binaires aléatoires avec (p1 = 0.25, p2 = 0.6)

CSP s sont caractérisés par < n, d, p1, p2 >, où n est le nombre de variables, d

le nombre de valeurs par variable, p1 la connectivité de réseau et p2 la dureté de contrainte. Les tests ont été exécutés sur des problèmes clairsemés et denses, respec- tivement < 20, 10, 0.25, 0.6 > et < 20, 10, 0.75, 0.25 >. La dureté des contraintes est choisie pour être proche de la transition de phase. Le taux de contraintes supplé- mentaires varie de ∼1% à ∼20%. Pour chaque paire fixe de densité et de dureté (p1,

39 II.4 Résultats Expérimentaux présentés sont une moyenne de ces 20 exécutions.

La figureII.3présente l’effort de calcul en termes de nombre de contraintes testées nécessaires pour réparer la solution. Les algorithmes résolvent des graphes de densité faible, avec p1 = 0.25 et p2 =0.6. EP DB surpasse les résultats de l’algorithme P DB et la plus grande amélioration est observée en utilisant l’heuristique deg.

Figure II.4 – Temps d’exécution effectué par PDB et EPDB des problèmes uni-

formes binaires aléatoires avec (p1 = 0.25, p2 = 0.6)

La figure II.4 montre le temps de calcul effectué par chaque algorithme pour les mêmes problèmes. EP DB avec l’heuristique deg a donné des résultats vraiment intéressants car il a besoin de moins de temps pour réparer la solution.

Les figuresII.5etII.6présentent des résultats similaires en termes de nombre de contraintes testées et le temps de calcul, pour des problèmes de densité élevée avec

p1 = 0.75 et p2 =0.25. Généralement, l’heuristique deg donne une performance satis-

faisante en termes de CCs indépendamment de la densité du réseau. Pour certaines heuristique, les résultats de temps de calcul sont légèrement différents par rapport à leur performances dans les réseaux de densité faible et leur comportements sont pires que P DB et c’est en raison de leur aspect dynamique.

40 II.4 Résultats Expérimentaux

Figure II.5 – Nombre de contraintes testées effectué par PDB et EPDB des pro-

blèmes uniformes binaires aléatoires avec (p1 = 0.75, p2 = 0.25)

4.2

Expériences sur le problème de planification des réunions

Ce problème est une séquence statique de MSP s : MSP0, M SP1..., M SPα−1, M SPα,

où le réseau est soumis à des perturbations de contraintes et chaque MSPi diffère

du précédent par la modification d’une contrainte

Le problème de Meeting Scheduling MSP est caractérisé par < k, p, l, d, h, t, a >, où k est le nombre de réunions, p est le nombre de participants, l est le nombre de réunions par participant et d détermine le nombre de jours. Des différents créneaux horaires sont disponibles pour chaque réunion où h est le nombre d’heures par jour,

t est la durée de la réunion et a est le pourcentage de disponibilité de chaque par-

ticipant. Deux réunions ki et kj sont connectées par une contrainte si au moins un

participant est tenu d’assister aux deux réunions. Cette contrainte impose une res- triction qui est nommée Arrival Constraint. Nous présentons nos résultats pour la classe < 20, 15, 6, 5, 10, 1, 80 > et nous varions le taux de contraintes modifiées (i.e Arrival Constraint) de ∼1% à ∼20% (i.e de 1 à 18 a changé des contraintes). Nous avons généré 25 instances différentes résolues par chaque algorithme et les résultats sont une moyenne de ces 25 exécutions.

41 II.4 Résultats Expérimentaux

Figure II.6 – Temps d’exécution effectué par PDB et EPDB sur des problèmes

uniformes binaires aléatoires avec (p1 = 0.75, p2 = 0.25)

Comme le montrent les figures II.7 et II.8, toutes les heuristiques montrent de bonnes performance en termes de CCs et T ime par rapport à l’algorithme P DB. La plus grande amélioration est toujours observée en utilisant l’heuristique deg.

4.3

Discussion

Généralement, la plus pertinente heuristique de réparation pour les environne- ments dynamiquement modifiés est l’heuristique deg. Ce simple et statique heuris- tique fonctionne comme suit : dans une situation de conflit ou un domaine vide, un nogood est construit de telle sorte que les variables dans la partie gauche aient l’ordre le plus prioritaire, ceci peut assurer, autant que possible, que les plus durs sous-problèmes restent toujours inchangés. Cependant, il évite d’autres situations de conflit quand les affectations de ces variables sont modifiées. Notez que, quand une variable apparaît plusieurs fois dans la partie gauche de nogoods, en changeant cette variable, le risque de provoquer des réparations dramatiques est plus élevé. Pour éviter ce problème, même si ces nogoods sont enlevés, les Safety Conditions garantissent de garder les variables associées dans l’ordre le plus prioritaire.

42 II.4 Résultats Expérimentaux

Figure II.7 – Nombre de contraintes testées effectué par PDB et EPDB sur le

problème MSP

Dans les graphes de faible densité (FiguresII.3etII.5), dom/deg est comparable avec l’heuristique deg et il fonctionne parfois mieux en termes de CCs (FigureII.4). Cependant, comme indiqué dans les résultats T ime, il prend parfois plus de temps pour réparer la solution. Ceci est dû à l’aspect dynamique de dom/deg puisqu’il calcule cette valeur chaque fois que le test heuristique est nécessaire.

L’heuristique dom s’avère plus utile pour les problèmes ayant une faible dureté de contrainte. Étant donné deux problèmes P ro1 et P ro2 respectivement définis comme un graphe de faible densité avec une dureté de contrainte élevée, et un graphe dense avec une dureté de contrainte basse. En supposant que les contraintes interdisent à la fois dans P ro1 et P ro2 le même nombre d’affectations, dom reste plus utile pour le problème P ro1. C’est parce que les affectations interdites dans P ro1 sont, presque, toutes distinctes puisque chaque variable participe en certaines contraintes. Cepen- dant dans P ro2, pour chaque variable xi qui participe à de nombreuses contraintes,

l’affectation interdite de xi est probablement rejetée dans une variété de contraintes.

L’heuristique W deg semble être utile et il est considéré comme parmi les meilleures heuristiques de réparation (FigureII.5). Toutefois, sur FiguresII.3etII.4, son effica- cité diminue remarquablement. Notez que, pour une variable donnée X, le poids au

43 II.4 Résultats Expérimentaux

Figure II.8 – Temps d’exécution effectué par PDB et EPDB sur le problème MSP

temps tα est la somme d’incréments de poids à chaque instant tα−i. Ces incréments

se produisent lorsque la variable X est en conflit avec les variables Y qui sont dans l’ordre inférieur de priorité. Cependant, quand les changements sont importants, il est probable que le réseau a été soumis à plusieurs changements entre tα−i et tα (i.e

variables Y au temps tα a des affectations différentes à ceux au temps tα−i). Par

conséquent, W deg ne reflète pas les états actuels du réseau, mais les états passés et qui n’existent plus

Nous notons aussi que Dom/wdeg a surtout des performances entre dom et wdeg. Pour un graphe dense (FigureII.4), puisque le nombre de nogoods devient signifi- catif, l’heuristique conf permet de bonne performance. Afin d’assurer la convergence à une solution dès que possible, les valeurs avec la majorité des conflits sont main- tenues inchangées.

L’objectif de l’heuristique Ddeg est de maintenir l’état de sous-problèmes qui ont plus de contraintes avec les futurs sous-problèmes stables. Même si elle améliore le résultat, il ne suffit pas parce qu’il ne tient pas en compte les variables de priorité élevé qui partagent des contraintes avec la variable actuelle. Pour mieux expliquer ce problème, considérons deux variables X et Y avec Ddeg(X) > Ddeg(Y ). Selon

44 II.5 Conclusion l’heuristique Ddeg, la valeur de X sera conservée et la valeur de Y sera changée, mais Y peut partager plus de contraintes avec des variables passées par rapport à

X, de sorte que le conflit peut facilement être produit, et ceci reflète l’inutilité de Ddeg. Dom/Ddeg est évidemment plus utile que Ddeg, mais pas assez bon, par

rapport à l’heuristique Dom.

5

Conclusion

Dans un environnement d’éléments dynamiques, l’ancienne solution doit rapide- ment être réparée quand de nouvelles informations sont reçues. Pour ce cas, Nous avons présenté une approche pour la réparation de la solution dans des environ- nements dynamiquement modifiés. Cette approche traite le cas où un problème

DCSP peut avoir des contraintes supplémentaires et/ou des contraintes modifiées.

Nous avons montré qu’il est capable de résoudre des cas de problèmes synthétiques et réels.

Notre approche combine les avantages des heuristiques de réparation locale et les techniques d’enregistrement de contraintes. Jusqu’à présent, Nous ignorons des approches qui combinent le corps fort des travaux sur la flexibilité de Partial-Order Backtracking P DB pour des environnements dynamiques. Pourtant nous croyons que l’union de ces techniques peut mener à des solutions très efficaces pour une large gamme de problèmes. En tant que tel, nous étudions actuellement la façon dont certaines de ces idées peuvent être appliquées à d’autres domaines.

Ce chapitre décrit deux principales contributions. D’abord, nous avons analysé la flexibilité de l’algorithme EP DB et nous avons montré qu’une heuristique extrê- mement simple, à savoir Deg, est responsable de son efficacité. Deuxièmement, nous avons démontré que cette approche peut être incorporée dans Dynamique CSP avec des résultats excellents. Cependant, il y a évidemment beaucoup de travail qui reste à faire, parce que le résultat rapporté dans ce travail est seulement une conclusion partielle. Dans notre futur travail, nous prévoyons d’examiner l’algorithme EP DB dans le cadre des Problèmes de Perturbation Minimale [ZGM11].

Chapitre

III

Heuristiques d’ordonnancement

dynamique des contraintes

1

Introduction

Plusieurs études de recherche ont développé de nombreuses techniques pour aug- menter l’efficacité des algorithmes de satisfaction de contraintes dynamiques. Cer- taines de ces techniques sont basées sur une séquence de décision à prendre, lors de la résolution d’un algorithme de recherche CSP , comme la prochaine variable à as- signer et la valeur à choisir en première. Ces décisions sont appelées les heuristiques de sélection de variable et de valeur. il a été montré que ces heuristiques peuvent avoir un impact important sur la performance de nombreux problèmes [SF96]. Ce- pendant, les heuristiques ordonnant les contraintes ont reçu moins d’attention que celles des variables et des valeurs. Dans la littérature, seulement certaines contribu- tions ont été faites et principalement comme une phase de pré-traitement avant de commencer le processus de recherche. Dans ce chapitre, nous allons montrer que les heuristiques de choix de contraintes sont prometteuse et capable de faire des choix pertinents pendant le processus de réparation pour un CP Ss Dynamique.

Le problème considéré ici est de trouver une nouvelle solution d’un réseau de contraintes dynamique après chaque modification du problème initial. Le présent tra- vail se concentre sur les scénarios où après qu’un CSP est résolu, certaines contraintes ont été changées ou injectées et la solution exige une révision pour considérer toutes ces perturbations. Selon [VS94], nous considérons que tous les changements pos- sibles à un CSP (contrainte ou modification de domaine, ajout ou suppression de variables) peuvent être exprimés en termes d’ajout, de suppression ou de modifica- tion de contrainte.

Notre approche proposée, appelée "Dynamic Constraint Ordering" DCO, choisit dynamiquement les contraintes qui vont probablement mener aux conflits. Ainsi,

46 III.2 Travaux effectués nous nous appliquons le principe de "fail-first", pour qu’un événement faisant un backtrack intelligent dynamique peut être exécuté le plus tôt possible. Cette mé- thode peut guider un algorithme de réparation dynamique vers les sous-problèmes de contraintes les plus durs et aborder les inconsistances pour corriger la solution. Les expériences conduites ont confirmé que l’approche proposée est intéressante. Nos ré- sultats montrent clairement l’efficacité des heuristiques combinées avec l’algorithme Partial-Order Dynamic Backtracking P DB pour le problème Meeting Scheduling dynamique DMSP . Les heuristiques ont été testés en termes du temps d’exécution, du nombre de contraintes évaluées et de la stabilité de solution.

Ce chapitre est organisé comme suit : D’abord, nous donnons un petit rappel sur les travaux réalisés. Ensuite, nous présentons l’algorithme Partial Order Dynamic Backtracking P DB. Puis, nous décrivons le principe des heuristiques de choix de contraintes dans P DB l’algorithme. Après, nous évaluons la performance de notre approche sur le problème Meeting Scheduling généré aléatoirement. Enfin, nous extrayons quelques conclusions et directions pour des recherches plus approfondies .

2

Travaux effectués

Dans la littérature, plusieurs algorithmes ont été développés pour les problèmes de satisfaction de contraintes dynamiques. En particulier, dans [VS94] une descrip- tion d’un algorithme complet (Local Changes) dédiée à la maintenance des solutions dans les problèmes dynamiques a été proposé. Ensuite, des extensions différentes ont été proposés pour l’algorithme LC pour la gestion des contraintes floues (opéra- teur d’agrégation maximale), entraînant l’algorithme F LC (Flexible Local Changes) [MS00]. D’autres auteurs ont également essayé de résoudre le même problème en uti- lisant des approches différentes. Plus précisément, dans [CKSSR00], ils ont présenté un outil qui est dédié à la planification continue avec l’entrelacement entre la plani- fication et l’exécution et qui utilise une approche de réparation itérative. Le premier reproche de ces contributions est que les auteurs ne sont pas intéressés à étudier la "scalabilité" des algorithmes proposés par rapport aux changements progressifs des problèmes résolus. le second reproche est qu’aucun des auteurs ne se sont intéressés à l’étude et l’utilisation de connaissances heuristiques d’un tel réseau de contraintes dynamique.

D’autre part, les expériences et les analyses conduites par plusieurs chercheurs ont montré que l’ordre dans lequel les variables et les valeurs sont choisis pendant la recherche peut avoir un impact considérable sur la complexité de l’espace de re-

47 III.3 Dynamic Constraint Ordering : cherche exploré. Cependant, nous notons que les heuristiques de choix de contraintes ont reçu moins d’attention par les chercheurs dans la littérature. Dans cette section, nous présentons les travaux liés aux heuristiques de choix de contraintes les plus pertinentes.

Dans [WF92], les auteurs ont montré que les heuristiques d’ordonnancement peuvent augmenter l’efficacité de la relaxation en réduisant le nombre de tests de paires de valeur. Les heuristiques proposées ordonnent la liste des paires de variables (contraintes) de sorte que l’effet majeur consiste à réduire la liste des ajouts. Les auteurs ont conclu que l’ordre par la taille croissante du domaine "relaxed against" est une stratégie générale efficace pour améliorer la performance des algorithmes qui établissent la consistance d’arc complète. Cependant, dans [GMPW97], les auteurs ont proposé une nouvelle heuristique de choix de contrainte dans AC3, où l’ensemble des choix est composé des arcs dans l’ensemble actuel maintenu par AC3. Ils ont utilisé la notion de "constrainedness" (degré de contrainte) comme heuristique pour réduire le nombre de contrôles nécessaires pour établir la consistance d’arc en AC3. Dans [SB04] et [S08], les auteurs ont présenté une heuristique de pré-traitement appelé "Constraint Ordering Heuristics" (COH) qui étudie la constrainedness du problème d’ordonnancement et classifie les contraintes de sorte que les plus dures soient étudiées d’abord. Ainsi, un algorithme de backtracking peut aborder la partie la plus dure d’un problème de recherche et les inconsistances peuvent être trouvées plus tôt.

Comme nous l’avons déjà mentionné, l’ordre de contrainte a reçu moins d’atten- tion et il y a seulement certain travaux qui ont été faites. Les techniques principa- lement étudiées sont utilisées comme une approche de pré-traitement pour réduire

Documents relatifs