• Aucun résultat trouvé

Ce chapitre était destiné à circonscrire les problèmes qui nous intéressent et les mé-thodes que nous envisageons pour les résoudre, à savoir les problèmes d’optimisation combinatoire et les méthodes de Branch and Bound. Nous nous intéressons particulière-ment à des problèmes difficiles qui admettent des problèmes d’optimisation combinatoire faciles comme relaxations.

Nous décrirons dans le chapitre 2 une méthode générique pour la résolution des blèmes d’optimisation combinatoire. Ensuite, nous nous focaliserons sur certains pro-blèmes d’optimisation combinatoire connus pour être difficiles auxquels il est possible d’associer le problème d’affectation comme relaxation. Les problèmes que nous nous pro-posons d’étudier peuvent être classés en trois catégories :

1. Les problèmes d’affectation avec une fonction objectif non-linéaire. La recherche d’une solution de compromis pour le problème d’affectation multiobjectif corres-pond à cette description. En effet, le recours à des techniques d’agrégation ramène les problèmes multiobjectifs à des problèmes mono-objectifs souvent non-linéaires. Le défi pour cette famille de problèmes est de minorer la fonction objectif non-linéaire par une fonction non-linéaire. De plus, des exigences liées à la nature multicri-tère du problème original conduisent au rejet de certaines solutions dites dominées. Nous présentons une procédure pour la recherche d’un bon compromis dans le chapitre 3.

2. Les problèmes avec fonction objectif linéaire et dont l’ensemble admissible est contenu dans l’ensemble réalisable du problème d’affectation. Nous proposons une procédure pour le problème de voyageur de commerce asymétrique dans le cha-pitre 4.

3. Les problèmes non-linéaires avec un ensemble réalisable plus restreint que celui du problème d’affectation. Nous citons cette famille de problèmes comme perspective. Les résultats que nous avons obtenus pour les deux premières familles sont pro-metteurs en vue d’une éventuelle application pour la recherche d’une solution de compromis pour le problème du voyageur de commerce asymétrique multiobjectif.

Les algorithmes de Branch and Bound ont été beaucoup étudiés, notamment dans le contexte de la résolution de problèmes d’optimisation combinatoire. Nous nous intéres-sons à une classe d’algorithmes de Branch and Bound fondés sur l’énumération ordonnée. Nous insérons des compléments à différents niveaux de la structure brute des algorithmes de Branch and Bound. Ces ajouts se présentent sous la forme de choix dans les détails de la séparation et des règles d’élagage. Les possibilités sont quasiment infinies quant au choix de ces compléments, aussi le défi dans l’implémentation des algorithmes de Branch and Bound est de trouver une combinaison raisonnable de ces perfectionnements afin d’améliorer les performances de l’algorithme et de résoudre des instances de plus en plus grandes.

Nous nous appuyons dans l’évaluation des performances de nos algorithmes sur l’ana-lyse de la complexité théorique, mais nous accordons aussi un l’intérêt particulier aux études expérimentales. Les algorithmes que nous proposons sont mis à l’épreuve de l’im-plémentation informatique et à la résolution de plusieurs instances représentatives. Divers résultats sont analysés, parmi ceux-ci les temps de calcul, la taille des arborescences et le nombre de coupes résultant d’une règle d’élagage. Ces résultats sont interprétés, cri-tiqués et comparés à des résultats connus s’ils sont disponibles, et ce n’est qu’après une analyse théorique et pratique que nous tirons des conclusions sur l’apport véritable d’une amélioration dans les performances d’un algorithme.

Principe général de

l’énumération ordonnée

Résumé

Dans ce chapitre nous présentons dans un premier temps un algo-rithme générique pour résoudre des problèmes d’optimisation combinatoire. Ensuite, deux variantes de cet algorithme basées sur le Branch and Bound sont discutées dans les sections 2.2 et 2.3. Enfin, nous présentons dans la section 2.4 des règles d’élagage de l’arborescence de Branch and Bound.

2.1 Principe général de résolution

Nous proposons dans cette section un algorithme pour résoudre des problèmes d’op-timisation combinatoire basé sur l’énumération des solutions d’une relaxation. Cet algo-rithme découle de la proposition 1 qui décrit une condition suffisante d’optimalité pour un problème de minimisation.

Proposition 1 (Condition suffisante d’optimalité). Soit le problème de minimisation P(X, f) et soit P( ˆX, ˆf ) un problème relâché associé àP(X, f). Soit ˆY un sous-ensemble de ˆX et soit x ∈ arg min

x∈(X∩ ˆY )

f (x).

Si l’ensemble ˆY satisfait les conditions suivantes :

∀x ∈ ˆX\ ˆY ,∀y ∈ ˆY : ˆf (x)≥ ˆf (y) (2.1)

∃y ∈ ˆY : ˆf (y)≥ f(x) (2.2)

Preuve. D’une part, la solution x est définie de telle sorte que :

∀x ∈ X ∩ ˆY : f (x)≥ f(x) (2.3)

D’autre part, la définition de la relaxation : ∀x ∈ X : f(x) ≥ ˆf (x), et l’inégalité (2.1) donnent :

∀x ∈ X ∩ ( ˆX\ ˆY ),∀y ∈ ˆY : f (x)≥ ˆf (y) (2.4) Or, puisque X ⊆ ˆX on a X∩ ( ˆX\ ˆY ) = X\ ˆY . L’inégalité (2.4) est donc équivalente à l’inégalité (2.5) :

∀x ∈ X \ ˆY ,∀y ∈ ˆY : f (x)≥ ˆf (y) (2.5) D’après les inégalités (2.2) et (2.5), il vient :

∀x ∈ X \ ˆY : f (x)≥ f(x) (2.6)

Les inégalités (2.3) et (2.6) impliquent que ∀x ∈ X : f(x) ≥ f(x), garantissant ainsi l’optimalité de la solution x.

Exploiter la proposition 1 afin d’élaborer un mécanisme de résolution se heurte à la difficulté de trouver un ensemble ˆY qui satisfait les conditions (2.1) et (2.2). Néanmoins, on s’intéresse à des problèmes d’optimisation combinatoire définis sur des ensembles finis. Un problème d’optimisation combinatoire relâché P( ˆX, ˆf ) peut toujours être associé à P(X, f), avec X ⊆ ˆX, et ∀x ∈ X : f(x) ≥ ˆf (x).

Dans ce contexte, un ensemble ˆY satisfaisant la condition (2.1) de la proposition 1 peut être construit de manière itérative, à l’aide des k meilleures solutions du pro-blème P( ˆX, ˆf ). En effet, ces solutions seraient énumérées dans un ordre non décrois-sant suivant la fonction ˆf et ajoutées progressivement dans l’ensemble ˆY . Notons la kème

meilleure solution xk et remarquons qu’à ce stade xk a la plus grande valeur selon la fonction ˆf parmi les solutions de l’ensemble ˆY , i.e. maxy∈ ˆY f (y) = ˆˆ f (xk). Par ailleurs, la meilleure solution courante x est initialisée avec une solution quelconque x0 de X, et mise à jour à chaque fois qu’une nouvelle solution de l’ensemble X est énumérée. La solution x0 peut être obtenue par une heuristique pour le problème P(X, f). Ces étapes sont répétées jusqu’à l’obtention de la condition (2.2) ou bien jusqu’à l’énumération de toutes les solutions de ˆX.

Sur la base de la proposition 1 nous proposons une méthode générique, dont les étapes principales sont résumées dans l’algorithme 2.1, pour résoudre un problème d’optimisa-tion combinatoire P(X, f).

Algorithme 2.1 : Résolution deP(X, f) par énumération ordonnée Données :P(X, f), P( ˆX, ˆf ), x0

1 x ← x0, k ← 0, ˆY ← ∅

2 répéter

3 k← k + 1

4 Déterminer xk∈ arg min

x∈ ˆX\ ˆY ˆ f (x) // Résoudre P( ˆX\ ˆY , ˆf ) 5 Yˆ ← ˆY ∪ {xk} 6 si (xk∈ X et f(xk) < f (x))alors x← xk 7 jusqu’à ( ˆf (xk)≥ f(x) ou ˆX\ ˆY =∅) 8 retourner x

La figure 2.1 montre un exemple de l’algorithme 2.1. Les solutions de ˆX énumérées sont représentées sur l’axe des abscisses. L’axe des ordonnées donne les valeurs des so-lutions énumérées, à la fois selon la fonction objectif de la relaxation ˆf avec les points creux, et selon la fonction objectif du problème principal f avec les points pleins : noirs pour les solutions de X et gris pour les solutions réalisables uniquement pour le problème relâché P( ˆX, ˆf ), c’est-à-dire les solutions de ˆX\ X. La ligne continue en forme d’esca-lier ascendant qui suit les points creux représente l’évolution de la fonction ˆf qui croît durant l’énumération. La valeur de la meilleure solution énumérée selon la fonction f est donnée par la ligne en tiretés qui décroît à chaque fois qu’une meilleure solution selon f de l’ensemble X est énumérée. Le processus s’arrête dès que ces deux courbes se croisent.

k f , ˆf min x∈(X∩ ˆY) f(x) x1 f(x1) ˆ f(x1) x2 x3 x4 x5 x6 x7 xk∈ X xk∈ ˆX\ X Condition d’arrêt

Figure 2.1 – Description d’un algorithme d’énumération ordonnée

L’efficacité de l’algorithme 2.1 dépend du choix de la relaxation à savoir, l’ensemble ˆX et la fonction minorante ˆf . Si l’ensemble ˆX est petit (i.e. ˆX ⋍ X), alors le nombre

d’itérations au pire cas de l’algorithme 2.1 est forcément réduit. De même que si ˆf est très proche de f, on peut raisonnablement s’attendre à ce que la condition d’arrêt soit obtenue rapidement. D’autre part, cet algorithme est proposé afin de résoudre des problèmes difficiles, par conséquent utiliser une relaxation trop proche de P(X, f) n’est pas une démarche pertinente. Un compromis est donc à trouver entre les approximations de X et f et la difficulté du problème relâché P( ˆX, ˆf ).

Le problème P( ˆX\ ˆY , ˆf ) résolu à l’étape 4 de l’algorithme 2.1 n’est pas forcément trivial, même si le problème P( ˆX, ˆf ) est facile. C’est cette difficulté qui nous amène à utiliser des algorithmes de Branch and Bound.

Nous présentons dans les sections 2.2 et 2.3 deux algorithmes basés sur le même type de séparation mais qui divergent par leurs modes d’évaluation.