• Aucun résultat trouvé

3.4 Initialisation et améliorations

3.4.1 Initialisation

Pour pouvoir appliquer la méthode de génération de colonnes, il est nécessaire de disposer d’une base valide initiale. Il faut donc générer préalablement un certain nombre de variables ou colonnes permettant de satisfaire les contraintes de la relaxation linéaire. Dans le cadre du problème de flot maximal étudié ici, les contraintes sont telles qu’une base vide suffit (ce sont les variables d’écart qui constituent la base initiale). Il n’y a alors pas de problème pour initier la génération de colonnes. Cependant, pour d’autres problèmes, par exemple lorsqu’une demande fixe doit être routée, le problème peut s’avérer complexe à résoudre.

D’autre part, il est usuel de rechercher une solution entière initiale avant d’entamer l’algorithme du Branch and Price. Cette solution entière n’est pas indispensable mais elle fournit une borne supérieure qui peut permettre de limiter l’exploration de l’arbre de décision. Suivant le problème étudié, la recherche d’une telle solution peut être complexe. Vu la faible importance que cette borne supérieure peut avoir sur le Branch and Price (cela dépend du problème et de la qualité de la borne), il est important de privilégier, dans ce calcul d’une solution entière initiale, la rapidité d’exécution à la qualité de la solution. C’est pourquoi ce calcul utilise principale des heuristiques ou des algorithmes d’approximation polynomiaux. Dans le cadre du problème du flotk-séparable maximal, nous avons utilisé l’algorithme d’approxi-mation proposé par Baier et al. [BKS05]. Cet algorithme polynomial résout à l’optimum le problème du flot maximal uniforme exactement k-séparable (k chemins routant chacun une fraction k1 du flot total). Par ailleurs, Baier et al. montrent que la solution optimale obtenue pour ce problème route une quantité de flot supérieure à la moitié de l’optimum du problème de flotk-séparable maximal.

Cette borne d’approximation est relativement faible du fait de la contrainte d’uniformité du flot sur chaque chemin. Cependant, les chemins constituant cette solution peuvent servir de support de flot pour le calcul d’une meilleure solution entière sans cette contrainte d’uniformité. Une fois le support de flot fixé, l’optimisation des flots sur chaque chemin est assez simple et rapide à effectuer.

maximal. Il consiste à chercher une chaîne augmentante dans un graphe résiduel. À chaque itérationi, la chaîne augmentante permet de déduirei chemins routant chacun une quantité de flot égale à la capacité de la chaîne.

Cependant, la contrainte d’uniformité se retrouve dans les capacités résiduelles. En effet, considérons P1, · · · , Pi lesi chemins résultants des itérations précédentes et fi la quantité commune de flot qu’ils routent. Pour chaque arca de A, notons qi

ale nombre de chemins parmiP1, · · · , Pi passant para. Du fait de la contrainte d’uniformité des flots routés sur chaque chemin, si un nouveau chemin passe par un arca, la quantité de flot routé par chaque chemin est majorée par ua

qi

a+1 qui est donc la capacité résiduelle de l’arca.

De plus, il faut considérer un arc inverse àa dans le graphe résiduel. Si la chaîne augmentante em-prunte cet arc inverse, cela signifie que le flot sur l’arca doit être diminué. Cela induit une décomposition en chemins illustrée sur la figure 3.8. La figure 3.8(a) présente la chaîne augmentante initiale(s, u, v, t) de capacité4. Puis, figure 3.8(b), la chaîne augmentante dans le graphe résiduel résultant (s, v, u, t), de capacité3, utilise l’arc inverse de l’arc (u, v). La figure 3.8(c) décrit la décomposition en chemins induite par cette chaîne : les chemins(s, v, t) et (s, u, t) routent chacun 3 unités de flot et le chemin (s, u, v, t) ne route plus qu’une unité de flot.

3

s 4 u v t

4

4 3

(a) Chaîne augmentante dans le graphe initial

0 s u v t 3 3 4 4 4 0 0

(b) Chaîne augmentante dans le graphe résiduel

1 s u v t 3 3 3 3 1 1 (c) Décomposition en chemins

FIG. 3.8 – Décomposition en chemins à partir d’une chaîne augmentante dans un graphe résiduel.

3.4. Initialisation et améliorations 85

grande quefi, le nombre total de chemins après décomposition serait strictement plus grand quei + 1. La capacité de l’arc inverse dans le graphe résiduel est donc égale àfi.

La chaîne augmentante est alors obtenue par calcul du chemin de capacité maximale dans le graphe résiduel. La capacité de ce chemin indique la nouvelle quantité de flotfi+1commune auxi + 1 chemins qu’il reste à déterminer. Pour cela, on envoiefi+1unités de flot sur chaque cheminP1, · · · , Pi et sur la chaîne augmentante. Par définition du graphe résiduel, le flot ainsi obtenu est réalisable dans le graphe G. De plus, il est fi+1intégral (le flot sur chaque arc est un multiple entier defi+1) et route une quantité totale de flot égale à(i + 1)fi+1. Ainsi, on obtient un nouvel ensemble dei + 1 chemins routant chacun fi+1unités de flot. Cet ensemble de chemins forme un flot uniforme exactement(i + 1)-séparable maxi-mal. Alors, au bout dek itérations, l’algorithme a bien calculé un flot uniforme exactement k-séparable maximal.

L’algorithme de Baier et al. fournit donc une solution entière initiale pour notre algorithme de Branch and Price. La propriété suivante propose un résultat théorique sur la qualité d’approximation de cet algorithme pour le problème du flotk-séparable maximal.

Propriété 3.3. La quantité totale de flot routé par un flot uniforme exactementk-séparable maximal est

supérieure à la moitié du flot routé par un flotk-séparable maximal.

Démonstration. Considérons un flotk-séparable maximal Fde valeurOP T . Notons D la valeurOP T2k . Pour chaque cheminp de F, routantfpunités de flot, considérons⌊fp

D⌋ copies de p routant chacun D unités de flot. Le flot F ainsi défini est réalisable puisque pour chaque cheminp de F le flot total routé sur celui-ci est plus petit quefp. De plus, comme le nombre de chemins de F ∗ est majoré par k, nous obtenons l’inégalité suivante :

X p∈F∗fp D⌋ ≥ X p∈F∗ (fp D − 1) = OP T D − k = k (3.19)

Il existe donck chemins parmi ceux de Froutant une quantité totale de flotkD = OP T2 .

Comme défini dans [Lap00], le coefficient d’approximationρ d’un algorithme est un majorant de l’er-reur relative entre la solution fournie par l’algorithme et la solution optimale du problème. L’algorithme de Baier et al. est donc au moins un algorithme de 12-approximation. Il est possible que le coefficient d’approximation soit meilleur mais nous n’en avons pas la démonstration. Cependant, le graphe de la figure 3.9 permet de démontrer un minorant pour ce coefficient d’approximation. Ce graphe est constitué de :

• quatre noeuds s, u, v et t, • k arcs de capacité k entre s et u, • un arc de capacité k entre u et v, • k arcs de capacité k entre v et t, • k − 1 arcs de capacité 1 entre s et t.

k−1 t v u s k k k k k 1 1 k k

FIG. 3.9 – Démonstration d’un minorant du coefficient d’approximation de l’algorithme de Baier et al..

Sur le graphe de la figure 3.9, la solution optimale du problème du flot k-séparable maximal est clairement constituée d’un chemin(s, u, v, t) routant k unités de flot et de k − 1 chemins (s, t) routant chacun une unité de flot. Ainsi, la valeur de la solution optimale est de2k − 1. Pour le problème du flot uniforme exactementk-séparable maximal, une solution optimale est forcément constitué de k chemins routant chacun une unité de flot, soit un total dek unités de flot. L’erreur relatif est donc dans ce cas égale à 2k−1k−1. D’où l’encadrement suivant du coefficient d’approximation :

k − 1

2k − 1 ≤ ρ ≤ 1

2 (3.20)

Le coefficient d’approximation est relativement faible mais nous constaterons, dans la section 3.5 sur les résultats numériques, que la post-optimisation sur les chemins fournis par cet algorithme donne souvent une solution de bonne qualité mais rarement optimale.