• Aucun résultat trouvé

Heuristiques de sélection de variables et de valeurs

En programmation par contraintes, les heuristiques de sélection des variables et des valeurs jouent un rôle primordial dans la résolution d'un problème en permettant de dénir des stra- tégies de recherche spéciques et ecaces. D'autre part, plusieurs algorithmes de ltrage sont incrémentaux : si une cohérence est établie dans un n÷ud alors l'établissement de la cohérence locale dans un n÷ud ls peut être fait en ne considérant que les modications entre celui-ci et le n÷ud père.

[Heras et Larrosa, 2006] étudient diérents types d'ordonnancements pour les variables lors de l'établissement de FDAC :

1. Des ordres statiques qui sont calculés avant de débuter la recherche et maintenus xes pendant la résolution. Ils ont l'avantage d'être exempts de calculs supplémentaires car ils n'interfèrent pas avec l'incrémentation de l'algorithme de ltrage. Mais ils sont basés sur les informations contenus dans le problème original : les modications faites au cours de la recherche par l'aectation de variables ne sont pas pris en compte, l'information peut donc perdre de l'exactitude.

2. Des ordres dynamiques qui sont calculés à chaque n÷ud de l'arbre de recherche en uti- lisant les informations du sous-problème courant. Ils ont l'avantage d'être beaucoup plus précis que les ordres statiques mais nécessitent plus de temps de calcul. En eet, nous avons vu que FDAC est déni en fonction d'un ordonnancement, ainsi un WCSP peut sa- tisfaire FDAC pour un ordonnancement donné et pas pour un autre. Une modication de l'ordonnancement des variables nécessite d'exécuter à nouveau FDAC pour rétablir cette propriété, l'établissement incrémental de FDAC est donc perdu.

3. Des réordonnancements dynamiques considèrent une séquence d'ordonnancement des va- riables. FDAC est alors établi pour chacun des ordonnancements à chaque n÷ud de l'arbre de recherche.

[Heras et Larrosa, 2006] montrent que l'ordonnancement statique le plus robuste est celui qui est basé sur l'ordonnancement inverse du degré des variables (le nombre de n÷uds adjacents de la variable dans le graphe de contraintes). Pour un ordonnancement dynamique, il semble que

l'heuristique basée sur la somme des coûts unaires donne le meilleur résultat (mais cela n'est pas toujours valable en ce qui concerne les ordonnancements statiques). Enn, les réordonnancements dynamiques n'ont été utiles que dans certains problèmes.

[de Givry et al., 2003, page 7] obtiennent de bonnes performances pour résoudre des WCSP aléatoires avec FDAC en améliorant un ordonnancement dynamique. Cette heuristique, appelée "2-sided Jeroslow-like", ordonne les variables selon un ratio entre la taille de leur domaine et la somme des moyennes des coûts unaires et binaires des contraintes qui sont liées à cette variable. Après avoir choisi une variable, la valeur qui a un coût unaire le plus faible est aectée en premier.

3.7 Synthèse

Dans ce chapitre, nous avons présenté le formalisme des WCSP qui étend celui des CSP pour représenter des contraintes valuées et qui permet l'obtention de solutions qui minimisent le coût des violations de contraintes.

Nous avons décrit l'algorithme branch-and-bound qui est utilisé pour la résolution de WCSP binaires dans le solveur TOULBAR22. Cette méthode nécessite de bons minorants qui peuvent

être obtenus par plusieurs techniques, dites de ltrage par cohérence locale. Les techniques de ltrage décrites, notamment FDAC, EDAC et VAC, permettent, à partir des contraintes, de déduire des valeurs impossibles et de trouver une bonne borne inférieure du coût de la solution. Nous avons ainsi montré l'inuence du choix de la propriété de cohérence locale sur la complexité en temps de calcul et sur la qualité des minorants obtenus. De plus, l'ecacité de la résolution peut être améliorée par l'utilisation de diérentes heuristiques d'ordonnancement de variables. Les plus ecaces sont des heuristiques dynamiques, c'est-à-dire que les choix opérés doivent être élaborés au cours de la recherche et non au préalable de façon statique et dénitive mais elles doivent également chercher à préserver la propriété d'incrémentalité des algorithmes de ltrage. Le formalisme des WCSP ore ainsi un cadre rigoureux et des algorithmes performants pour résoudre ecacement des problèmes d'optimisation comportant des fonctions de coûts locales. Nous allons montrer dans le chapitre suivant comment utiliser ce formalisme dans le cadre de la planication avec actions valuées pour obtenir des solutions de coût optimal.

Solution optimale

pour un nombre de niveaux donné

Dans ce chapitre, nous présenterons une nouvelle approche permettant d'obtenir une solu- tion P∗

k de coût optimal parmi les solutions de longueur inférieure ou égale à k étapes d'actions indépendantes [Cooper et al., 2006a,b]. Cette méthode sera implémentée dans le planicateur GP-WCSP et utilisera exclusivement la relation d'indépendance. Nous emploierons donc ici le terme de niveau pour désigner une étape d'actions indépendantes.

Nous avons vu dans le chapitre 2 que la plupart des approches existantes ayant le même objectif utilisent le graphe de planication de GRAPHPLAN [Blum et Furst, 1997], structure disjonctive qui contient, pour un problème de planication donné, tous les plans-solutions poten- tiels d'une longueur k xée. De plus, elles encodent le problème de planication dans un autre formalisme tel que SAT ou IP pour en extraire une solution de coût optimal parmi les solutions de longueur k xée. Cependant, les approches qui utilisent les techniques CSP se limitent à l'opti- malité en nombres d'étapes ou au cadre d'actions de coût uniforme. Or, nous avons montré, dans le chapitre 3, que le formalisme des CSP pondérés (WCSP) permettait d'obtenir des solutions de coût optimal de manière très ecace. Nous proposerons donc ici une méthode qui utilisera le graphe de planication et nous montrerons comment utiliser le cadre des WCSP pour trouver un plan-solution de coût optimal parmi les solutions de nombre de niveaux k xé.

La première section introduira un exemple simple de problème de planication valuée. La section 4.2, page suivante, décrira ensuite le graphe de planication puis la section 4.3, page 57, montrera comment coder ce graphe en WCSP. La section 4.4, page 60, détaillera ensuite les méthodes de résolution de ce WCSP qui permettent d'obtenir un plan-solution de coût optimal pour un niveau k donné. Enn, la section 4.5, page 74, présentera l'algorithme développé, le planicateur GP-WCSP et les résultats expérimentaux obtenus.

4.1 Exemple de problème de planication valuée

Pour illustrer nos méthodes, nous modions l'exemple 2.3.5, présenté dans le chapitre 2, qui appartient à la classe des problèmes de plus court chemin pouvant être résolus en temps polynomial par la programmation dynamique. Il a été montré que déterminer l'existence d'un plan de longueur bornée est NP-complet pour certains domaines de benchmarks [Helmert, 2003]

mais l'ajout d'un critère d'optimisation rend les problèmes encore plus diciles à résoudre en pratique.

Exemple 4.1.1 (Problème de planication valuée) Les variables B, C, D, E et F repré- sentent cinq villes, la variable v un véhicule, et c une caisse. Le uent vi représente le fait que le véhicule v est dans la ville i. v se déplace entre les villes en utilisant les actions trajetij où i désigne la ville de départ et j celle d'arrivée. Le coût de cette action dépend de la distance entre les villes. Le uent ci représente le fait que la caisse c est dans la ville i, cv le fait que la caisse est à bord du véhicule v. c peut être chargée dans le véhicule par l'action prendrei dans la ville i, avec un coût de 5. Cette caisse c peut être déchargée dans une des villes i par l'action poseri de coût 3. Le problème de planication valuée Π = hA, I, Bi est déni par l'état initial I = {vF, cF}, le but B = {cB} et l'ensemble des actions A : ∀ i ∈ {B, C, D, E, F },

 ∀ j ∈ {B, C, D, E, F }, trajetij : h{vi}, {vj, ¬vi}, coutiji. La gure 4.1 donne les trajets possibles et leurs coûts.

 prendrei : h{vi, ci}, {cv, ¬ci}, 5i.  poseri : h{vi, cv}, {ci, ¬cv}, 3i. F B C D E ¾ - 100 ¡¡ ¡¡ ¡ µ ª 20 JJ J JJ^ ] 30 - ¾ 10 ¾ 15 j K 50

Fig. 4.1  Déplacements possibles et leurs coûts associés de l'exemple 4.1.1. Le premier plan-solution trouvé P∗

3 = hprendreF, trajetF B, poserBi a un coût C3 = 108.

Nous allons montrer, dans ce chapitre, comment obtenir un tel plan-solution.