• Aucun résultat trouvé

Algorithmes de k-best pour le problème d’affectation

1.3 Problème d’affectation et algorithmes de k-best

1.3.2 Algorithmes de k-best pour le problème d’affectation

2 3 4 1 2 3 4 (a) 1 2 3 4 1 2 3 4 ¯ cij (b) 1 2 3 4 1 2 3 4 ¯ cij (c) 1 2 3 4 1 2 3 4 (d)

Figure1.4 – Itération de l’algorithme hongrois avec graphe d’écart

1.3.2 Algorithmes de k-best pour le problème d’affectation

Tous les algorithmes de recherche des k meilleures solutions (k-best) pour le problème d’affectation sont basés sur des méthodes arborescentes, où à chaque nœud un problème d’affectation avec des contraintes supplémentaires est résolu (Murty (1968), Chegireddy et Hamacher (1987), Miller et al. (1997), Pascoal et al. (2003), Pedersen et al. (2008)). Pascoal et al. (2003) puis Pedersen et al. (2008) ont comparé ces algorithmes et il semble que le schéma de séparation proposé par Murty (1968) soit le plus efficace. Nous

pré-sentons dans la section 1.3.2.a quelques détails du mode de séparation de Murty-Lawler pour le problème d’affectation et nous discutons dans la section 1.3.2.b l’algorithme de k-best pour le problème d’affectation de Chegireddy-Hamacher.

1.3.2.a Algorithme de Murty

Nous décrivons dans la section 2.2 le schéma de séparation de Murty-Lawler généralisé aux problèmes d’optimisation combinatoire en {0,1}. Ce schéma a été proposé par Murty (1968) initialement pour le problème d’affectation. L’auteur tient compte des spécificités du problème d’affectation ce qui lui permet de simplifier la phase de séparation. En effet, imposer une variable xi′j′ à valoir 1 force implicitement toutes les variables xi′j

pour j 6= j et j = 1, . . . , n, et toutes les variables xij pour i 6= i et i = 1, . . . , n à valoir 0, pour satisfaire les contraintes 1.7.a et 1.7.b du problème (1.7).

Formellement, à tout nœud v de l’arborescence est associé un sous-ensemble de solu-tions X(v) défini à l’aide de deux ensembles disjoints d’arêtes F (v) et I(v) représentant respectivement l’ensemble des arêtes interdites et l’ensemble des arêtes imposées. Ainsi, les arêtes de l’ensemble I(v) font partie des solutions réalisables du sous-ensemble X(v), contrairement aux arêtes de l’ensemble F (v) qui n’appartiennent pas à ces solutions. Tout nœud v de l’arborescence contient aussi la solution optimale x(v) du sous-problème qui lui est associé.

Soit E(xk) = {(i1, ji1), . . . , (in, jin)} la meilleure solution du nœud vk correspon-dant au sous-ensemble de solutions X(vk) contenant la kème meilleure solution xk. Soit I(vk) = {(i1, ji1), . . . , (is, jis)} l’ensemble des arêtes imposées pour le nœud vk; les arêtes E(xk)\ I(vk) ={(is+1, jis+1), . . . , (in, jin)} sont dites libres. Les nœuds engendrés par la séparation du nœud vkhéritent de ses contraintes I(vk) et F (vk). Le branchement du nœud vk consiste en la création de n − s − 1 nœuds vk

l, où l = 1, . . . , n − s − 1 tels que : I(vk 1) = I(vk) et F (vk 1) = F (vk)∪ {(is+1, jis+1)} I(vk l) = I(vk l−1)∪ {(is+l−1, jis+l−1)} et F (vk l) = F (vk)∪ {(is+l, jis+l)}, pour l = 2, . . . , n − s − 1 La figure 1.5 montre le branchement par le mode de séparation de Murty-Lawler du nœud vk de l’arborescence de recherche.

F(vk), I(vk) = {(i1, ji1), . . . , (is, jis)} E(xk) = {(i1, ji1), . . . , (in, jin)} I(vk 1) = {(i1, ji1), . . . , (is, jis)} F(vk 1) = F (vk) ∪ {(is+1, jis+1)} I(vk 2) = {(i1, ji1), . . . , (is+1, jis+1)} F(vk 2) = F (vk) ∪ {(is+2, jis+2)} . . . I(vk n−s−1) = {(i1, ji1), . . . , (in−2, jin−2)} F(vk n−s−1) = F (vk) ∪ {(in−1, jin−1)}

Le mode de branchement de Murty-Lawler permet de diminuer la complexité de la recherche de la kème meilleure solution de O(n4) à une complexité en O(n3). En effet, dans le pire cas n − 1 problèmes d’affectation sont engendrés par cette séparation. Ces problèmes correspondent aux n − 1 nouveaux nœuds. La résolution de chacun de ces nouveaux problèmes se ramène à la recherche d’un seul plus court chemin dans le graphe d’écart associé au problème. Pour ce faire, un graphe d’écart est construit sur la base de la solution optimale et des coûts réduits du nœud père vk et des nouvelles contraintes du nœud fils. Comme on le montre dans la figure 1.6, la solution du père diminuée de la nouvelle arête interdite (arête en pointillés (2, 2) de la figure 1.6a) est une solution partielle du nouveau fils. Les arêtes imposées (arête en gras (1, 1) de la figure 1.6a) feront certainement partie de la solution optimale, aussi les extrémités des arêtes imposées et les arcs qui leur sont adjacents sont supprimés du graphe d’écart comme le montre la figure 1.6b. 1 2 3 4 1 2 3 4 (a) 2 3 4 2 3 4 ¯ cij (b) 2 3 4 2 3 4 ¯ cij (c) 1 2 3 4 1 2 3 4 (d)

Figure 1.6 – Plus court chemin améliorant pour un nœud de l’arborescence de Murty-Lawler

Les extrémités de la nouvelle arête interdite sont donc les seuls sommets non affectés. Il suffit donc de trouver un seul chemin améliorant pour obtenir la solution optimale

avec une complexité en O(n2) comme le montrent les figures 1.6c et 1.6d. Comme pour l’algorithme hongrois, la valeur de la solution du fils est obtenue en sommant la valeur de la solution partielle, donc la valeur de la solution optimale du nœud père, et la valeur du plus court chemin dans le graphe d’écart valué par les coûts réduits. Finalement les variables duales sont modifiées afin de respecter la condition des écarts complémentaires. Ces améliorations ont été apportées aux algorithmes les plus efficaces de k-best pour le problème d’affectation. Pour plus de détails nous suggérons de consulter Pascoal et al. (2003), Miller et al. (1997) ou Pedersen et al. (2008).

Après la séparation du nœud vk et la résolution des sous-problèmes associés aux nœuds fils, la k + 1ème meilleure solution est la meilleure solution des nœuds feuilles de l’arborescence de recherche, et le nœud vk+1 qui contient cette solution sera à son tour séparé.

Améliorations de l’algorithme de Murty

Miller et al. (1997) font remarquer que plus on impose d’arêtes plus le sous-problème obtenu par la séparation de Murty-Lawler est petit, donc les nœuds créés en dernier (nœud fils à droite dans la figure 1.5) contiennent moins de solutions réalisables que les fils gauches. Les auteurs proposent de choisir la nouvelle arête interdite lors de la création d’un nouveau nœud, de façon à engendrer la plus grande détérioration sur la fonction objectif. Un tel choix permettrait de mettre les mauvaises solutions dans les problèmes de plus grande taille, et par conséquent les meilleures solutions tendraient à appartenir aux sous-ensembles de petite taille. Nous utilisons cette idée dans quelques-unes des variantes de nos algorithmes d’énumération ordonnée. Nous définirons plus en détail la façon d’évaluer la détérioration de la fonction objectif dans la section 3.2.3.

Exploitant la même remarque sur la taille des problèmes, Pascoal et al. (2003) pro-posent de résoudre les problèmes des fils droits avant ceux des fils gauches. De plus, ils proposent de considérer la solution optimale du nœud frère1

comme solution partielle pour résoudre le sous-problème associé à un nœud nouvellement créé, et non la solution optimale du nœud père comme on l’a décrit précédemment.

1.3.2.b Algorithme de Chegireddy-Hamacher

Chegireddy et Hamacher (1987) proposent une approche alternative à la méthode de Murty qui est basée sur une séparation binaire qui nécessite le calcul de la première et de la seconde meilleure solution pour chaque nœud de l’arborescence. Comme pour l’algorithme de Murty un nœud v est défini par la donnée de l’ensemble des arêtes imposées I(v) et de l’ensemble des arêtes interdites F (v). Chaque nœud contient la meilleure solution x(v) et la seconde meilleure solution x(v) du sous-problème qui lui est associé.

Initialement, la première et la seconde meilleures solutions sont calculées et asso-ciées au nœud racine v2 qui ne possède pas de contraintes supplémentaires (i.e. les ensembles I(v2) et F (v2) sont vides). Soit vk le nœud dont la seconde meilleure solu-tion x(vk) est la kèmemeilleure solution xkdu processus d’énumération. Une arête e /∈ I(vk) est choisie dans E(x(vk))\E(x(vk)) et deux nœuds fils veket vk

e sont créés tels que : (I(vk e) = I(vk)∪ {e}, F (vke) = F (vk)) et (I(vk

e) = I(vk), F (vk e) = F (vk)∪ {e}). F (vk), I(vk) E(x(vk)), E(x′(vk)) I(vk e) = I(vk) ∪ {e}, F (vk e) = F (vk) E(x(vk e)) = E(x(vk)), E(x′(vk e)) = ? I(vk e) = I(vk), F (vk e) = F (vk) ∪ {e} E(x(vk e)) = E(x′(vk)), E(x′(vk e)) = ?

Figure 1.7 – Schéma de séparation de Chegireddy-Hamacher

La figure 1.7 montre la séparation d’un nœud vk selon la méthode de Chegireddy-Hamacher. La meilleure solution du nœud fils vk

e est la meilleure solution du nœud père vk

et la meilleure solution du nœud fils vk

e est la seconde meilleure solution de son père vk. Après le calcul de la seconde meilleure solution pour chacun des deux nouveaux nœuds fils x(vk

e) et x(vk

e), la k + 1ème meilleure solution est la meilleure solution parmi les secondes meilleures solutions des nœuds feuilles.

Les auteurs ont prouvé que le problème de la recherche de la deuxième meilleure solution pour le problème du couplage parfait dans un graphe biparti se ramène à la recherche d’un circuit de coût minimum dans un graphe d’écart similaire à celui décrit dans la section 1.3.2.a et la figure 1.6. La recherche d’un circuit de coût minimum peut se faire avec une complexité en O(n3). Techniquement, cela correspond à la recherche d’un plus court chemin entre les extrémités de tous les arcs inverses, ce qui correspond aux étapes de l’algorithme de Murty.

Les résultats expérimentaux obtenus par Pascoal et al. (2003) montrent que leur algorithme, qui rappelons-le est basé sur le schéma de Murty, est plus performant que leur implémentation de l’algorithme de Chegireddy-Hamacher. Cela est probablement dû au fait qu’une solution peut être calculée plusieurs fois dans l’algorithme de Chegireddy-Hamacher. En effet, l’algorithme de Chegireddy-Hamacher ne stocke pas les solutions obtenues par le calcul successif des plus courts chemins lors de la recherche du circuit de coût minimum, et c’est ce qui le rend moins performant que l’algorithme de Murty. C’est pour cette raison que nous écartons l’approche de Chegireddy-Hamacher dans nos algorithmes d’énumération ordonnée.