WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Techniques hybrides de recherche exacte et approchée: application à  des problèmes de transport

( Télécharger le fichier original )
par Boris BONTOUX
Université d'Avignon et des pays de Vaucluse - Doctorat spécialité informatique 2008
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

5.5 Génération de colonnes

Dans cette section, nous présentons les principes de la méthode de résolution par génération de colonnes. Cette méthode est classique pour les problèmes de tournées de

véhicules; c'est avant tout une méthode exacte mais elle peut aussi bien être utilisée en méthode heuristique. Le lecteur intéressé par la génération de colonnes et par ses applications pour les problèmes de transport peut consulter les articles de Lübbecke et Desrosiers (2005) ou Barnhart et al. (1998), ainsi que le récent livre de Desaulniers et al. (2005).

La méthode de résolution par génération de colonnes permet de résoudre des programmes linéaires de grandes tailles. Dans cette formulation, les variables du modèle sont appelées des colonnes. On parle de Branch & Price lorsque la génération de colonnes est intégrée dans une recherche arborescente (notamment pour la résolution de programmes linéaires en nombres entiers). Une résolution par génération de colonnes est une méthode itérative. De nouvelles colonnes enrichissent un problème restreint à chaque itération. Le problème initial à résoudre est appelé problème maître ou problème principal, tandis que l'algorithme qui génère de nouvelles colonnes est appelé problème esclave ou sous-problème.

Le problème du 2|RO|L-VRP se prête a priori bien à une résolution par génération de colonnes. C'est l'approche que nous explorons dans ce chapitre. Pour cela, nous présentons un modèle de type couverture. Posons Ù = {r1, . . . , r|Ù|}, l'ensemble des routes réalisables. On associe à une route rk un coût ck égal à la somme des distances des arcs empruntés par cette route. aik est égal à 1 si la route rk visite le client vi et est égal à 0 dans le cas contraire.

Les variables sont notées èk. èk est égale à 1 si la route rk est sélectionnée et égale à 0 dans le cas contraire.

(P )

min? ckèk (5.12)

rk

s.c.q.

? aikèk = 1 Vvi E V\{v0} (5.13)

rk

? èk K (5.14)

rk

èk E {0,1} (rk E Ù) (5.15)

Considérons la relaxation linéaire du modèle 5.12, appelée problème maître (MP) : (MP )

min? ckèk (5.16)

rk

s.c.q.

? aikèk = 1 Vvi E V\{v0} (5.17)

rk

? èk K (5.18)

rk

èk E [0,1] (rk E Ù) (5.19)

Chapitre 5. Application au problème de Tournées de Véhicules avec Contraintes de Chargement

À l'itération it de la résolution par génération de colonnes, on résout de manière exacte le problème maître restreint à Ùit c Ù, défini ci-dessous. On choisit une méthode de résolution de telle sorte que celle-ci fournisse aussi une solution optimale au dual du programme linéaire.

(PMR )

min ? ckèk (5.20)

rkit

s.c.q.

? aikèk = 1 Vvi E V\{v0} (5.21)

rkit

? èk = K (5.22)

rkit

èk = 0 (rk E Ùit) (5.23)

Notons ëi la variable duale associée à la iième contrainte (5.21). Toute colonne ù E Ù \ Ùit susceptible de diminuer la valeur de la fonction objectif si on l'ajoute au problème maître restreint, a un coût réduit négatif (ce coût est défini par l'équation 5.24). Le problème esclave consiste donc à trouver de telles colonnes. Si aucune colonne de coût réduit négatif n'existe, on déduit alors l'optimalité pour MP de la solution obtenue à l'itération it.

ck - ? aikëi - ë0 (5.24)

viEV\{v0}

Le problème qui consiste à chercher dans Ù une variable de coût négatif est appelé le sous-problème (connu aussi sous le nom de problème esclave, oracle ou problème de pricing).

Le schéma de la figure 5.2 illustre le déroulement de l'algorithme de génération de colonnes.

La génération de colonnes augmente donc progressivement la taille du problème à résoudre, ce qui est particulièrement adapté à la résolution de problèmes possédant un grand nombre de colonnes. Le but recherché est par conséquent d'obtenir une solution optimale sans avoir à générer l'ensemble des colonnes.

Néanmoins, la solution optimale retournée par la génération de colonnes est la solution du problème (MP), qui est la relaxation linéaire du problème initial (P). Une méthode de résolution efficace pour les programmes linéaires en nombres entiers est basée sur la combinaison de la résolution de la relaxation linéaire du problème et de la méthode classique de séparation et évaluation progressive (Branch & Bound). À chaque noeud de l'arbre de recherche, on résout un programme linéaire donnant, dans le cas d'une minimisation, une borne inférieure au problème. Lorsque cette résolution se fait par génération de colonnes, on parle de Branch & Price.

Résolution
Problème Maître
Restreint

sur Ù1

Existence de
variables
améliorantes

Oui : ajouter à Ùit

Fin

Non

Ensemble initial
de colonnes Ù1

Chercher dans Ùit

une variable de coût négatif
(Sousproblème)

FIGURE 5.2 - Méthode de génération de colonnes Résolution du problème esclave

Le sous-problème cherche un élément de 1) tel que :

ck - E aikAi - A0 < 0 (5.25)

vi?V\{v0}

Posons bkij égal à 1 si la route rk utilise l'arc (vi, vj) et égal à 0 dans le cas contraire. L'équation 5.25 devient alors :

ck - E bk ij(cij - Ai) < 0 (5.26)

vi?V

On cherche alors l'élément de 1) minimisant cette valeur. Cette recherche est un problème d'optimisation combinatoire qui revient à trouver le chemin de v0 à v0, passant au plus une fois par chaque sommet et tout en étant une route réalisable (dans le cas du 2|RO|L-VRP cela équivaut au respect des contraintes de capacité, des contraintes de surface, des contraintes de chargement, etc.). Il s'agit d'un Problème de Plus Court Chemin Élementaire avec Contraintes Additionnelles pour lequel le coût des arcs (vi, vj) est égal à cij - Ai. Comme nous allons le voir, la plupart des contraintes additionnelles

Chapitre 5. Application au problème de Tournées de Véhicules avec Contraintes de Chargement

se modélisent comme des contraintes de ressources classiques, mais les contraintes de chargement sont plus complexes à gérer. Ainsi, le problème esclave pour le problème du 2|RO|L-VRP est plus complexe que la résolution d'un problème de Plus Court Chemin Élémentaire avec Contraintes de Ressources (voir la section 2.4.3 pour plus de détails sur le problème de Plus Court Chemin avec Contraintes de Ressources).

La figure 5.3 représente un problème de plus court chemin avec contraintes de ressources entre le noeud v0 et le noeud v3. Une seule ressource est présente, la consommation cumulée de celle-ci est contrainte en chaque sommet (la valeur limite à ne pas dépasser est indiquée à côté de chaque sommet).

cout, consommation

^ contrainte de ressource

3,1

1,1

v 1

1

1,1

2,1

0 v 1,1 v3 2

0

1

v2

FIGURE 5.3 - Un SPPRC a une ressource

Dans la section 5.5.1, nous définissons formellement le problème. Une présentation d'un algorithme standard basé sur de la programmation dynamique est détaillée dans la section 5.5.2. Ce principe de programmation dynamique est le même que celui présenté dans les chapitres 2, 3 et 4.

5.5.1 Modélisation d'un ESPPRC

Nous présentons maintenant la modélisation d'un problème classique de Plus Court Chemin Élémentaire avec Contraintes de Ressources. Soit G = (V, E, W) un graphe complet pour lequel V est un ensemble de n + 1 noeuds, correspondant à la source (noeud v0), le puits (noeud vn) et aux clients vi (i = 1, . . . , n - 1}). Chaque arc (vi, vj) a une consommation cij(w) de ressource w (w = 0, . . . , W). On définit la ressource 0 comme le coût de l'arc. Une contrainte sur chaque ressource est associée à chaque sommet. La consommation cumulée au long du chemin jusqu'au sommet vi est notée ci(w). Cette consommation est limitée par Biw.

L'objectif du problème (équation (5.27)) est de trouver le plus court chemin de v0 à vn parmi les chemins réalisables sur l'ensemble des ressources. La variable de décision äij est fixée à 1 si l'arc (vi, vj) appartient à une solution et 0 sinon.

(EP)

min? cij(0)äij (5.27)

(vi,vj)?E

s.c.q.

E äij - E äji = 0 Vj = 1, ... , n - 1, (5.28)

(vi,vj)EE (vj,vi)EE

E äij < 1 Vi = 0, . . . , n, (5.29)

(vi,vj)EE

E ä0j = 1, (5.30)

(v0,vj)EE

ci(w) < Biw Vi = 0, . . . ,V; Vw = 1, . . . ,W, (5.31)

äij(ci(w) + cij(w) - cj(w)) < 0 V(vi, vj) E A; Vw = 1, .. . ,W, (5.32)

äij E {0,1} V(vi, vj) E A. (5.33)

Les inégalités (5.28) représentent les contraintes de flots assurant la continuité du chemin. Les contraintes (5.29) assurent l'élémentarité du chemin. La contrainte (5.30) impose qu'un unique chemin parte de la source. Les contraintes (5.31) contrôlent la consommation cumulée sur chaque ressource et les contraintes (5.32) la continuité du flot de consommation des ressources. On admet que toutes les ressources se cumulent par incrémentation du poids de l'arc associé à la ressource dans la limite du seuil autorisé.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Le don sans la technique n'est qu'une maladie"