Vous êtes sur la page 1sur 47

Mathématiques Discrètes

Le problème du transbordement

Jean-François Hêche

Institut de Mathématiques

École Polytechnique Fédérale de Lausanne


Le problème du transbordement
• Formulation
• Solution basique et solution-arbre
• L’algorithme graphique du simplexe
I Calcul de la solution primale
I Calcul de la solution duale
I Recherche d’une variable (arc) entrante
I Recherche d’une variable (arc) sortante
I Mise à jour des solutions
I Calcul d’une solution initiale admissible (phase I)
• Les matrices totalement unimodulaires et le théorème des valeurs
entières

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 1


Formulation
On considère un réseau R = (V, E, b, c) où
• G = (V, E) est un graphe orienté simple et connexe.
• b : V → R est une pondération des sommets de G représentant les
offres et les demandes aux sommets.
Par convention, on représente les offres par des valeurs négatives et les
demandes par des valeurs positives.
• c : E → R est une pondération des arcs de G représentant les coûts
unitaires d’utilisation des arcs.
On cherche un flot x : E → R+ de quantités à transporter le long des arcs
afin d’équilibrer l’offre et la demande en chaque sommet tout en minimisant
les coûts totaux de transport.
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 2
Soit x : E → R+ un flot, les coûts totaux de transport associés sont
X
z= cij xij .
(i,j)∈E

L’équilibre aux sommets est satisfait si la différence entre ce qui entre dans
un sommet et ce qui en sort est égale à l’offre ou à la demande du sommet
X X
xji − xij = bi ∀ i ∈ V.
j∈P red(i) j∈Succ(i)

Si bi = 0, le sommet i est un sommet de transbordement ou de transit. Si


bi < 0, le sommet i est un sommet source. Finalement si bi > 0, le sommet
i est un sommet puits.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 3


Remarques

• Pour que l’équilibre soit satisfait en chaque sommet, il est nécessaire


que la somme des demandes soit égale à celle des offres
X
bi = 0.
i∈V

Dès à présent, on supposera que cette hypothèse est toujours satisfaite.


• Lorsque G est un graphe biparti complet, chaque sommet source étant
relié à tous les sommets puits, on parle de problèmes de transport.
• Si, dans un problème de transport, il y a autant de sources que de puits
et que toutes les offres et les demandes sont égales à 1, on parle de
problèmes d’affectation.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 4


Les graphes bipartis

Un graphe G = (V, E) est biparti s’il existe une partition de ses sommets
en deux ensembles V1 et V2 telle que toute arête {i, j} de E ait une
extrémité dans V1 et l’autre dans V2.
V1

V2

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 5


Les graphes bipartis

Un graphe G = (V, E) est biparti s’il existe une partition de ses sommets
en deux ensembles V1 et V2 telle que toute arête {i, j} de E ait une
extrémité dans V1 et l’autre dans V2.
V1

V2

Théorème 1. Le graphe G = (V, E) est biparti si et seulement s’il ne


contient pas de cycles de longueur impaire.

Preuve. Exercice.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 5


Formulation linéaire

Soit R = (V, E, b, c) un réseau simple et connexe. Déterminer un plan de


transport équilibrant l’offre et la demande en chaque sommet de R et
minimisant les coûts totaux de transport revient à résoudre le programme
linéaire
X
Min z = cij xij
(i,j)∈E

X X
s.c. xji − xij = bi ∀i ∈ V
j∈P red(i) j∈Succ(i)

xij ≥ 0 ∀ (i, j) ∈ E

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 6


Problème dual
X
Max w = bi y i
i∈b

s.c. yj − yi ≤ cij ∀ (i, j) ∈ E

yi ∈ R ∀i∈V
Interprétation économique.
L’entreprise désire sous-traiter ses transports. Elle demande donc à une
entreprise spécialisée de lui proposer des « prix » de rachat et de revente
aux différents points du réseau.
Cette dernière cherche à maximiser ses bénéfices mais doit être
concurrentielle par rapport aux coûts de transport internes de son
mandataire.
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 7
Formulations matricielles

Soit R = (V, E, b, c) un réseau simple et connexe avec |V | = n et |E| = m.


Soit, encore, A la matrice d’incidence sommets-arcs du graphe G = (V, E).

Sous forme matricielle, le problème du transbordement dans le réseau R et


son dual s’écrivent

(PLP) (PLD)

Min z = cx Max w = yb
s.c. Ax = b s.c. yA ≤ c
x ≥ 0 y ∈ Rn

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 8


Solution basique et solution-arbre
Soit G = (V, E) un graphe orienté sur n sommets. Le rang de la matrice
d’incidence sommets-arcs A de G est n − p où p est le nombre de
composantes connexes de G. En particulier si le graphe est connexe, le rang
de A est n − 1.
Pour un réseau connexe, choisir une base de l’espace des colonnes de A
revient donc à choisir n − 1 colonnes linéairement indépendantes.
Graphiquement, ces colonnes forment un arbre maximal. En effet, elles
définissent un graphe partiel sans cycle, comportant n − 1 arêtes (il est
facile de vérifier que la matrice d’incidence sommets-arcs associée à un
cycle C n’est pas de rang plein).
Réciproquement, tout arbre maximal d’un réseau connexe sur n sommets
comporte n − 1 arcs et sa matrice d’incidence sommets-arcs à rang n − 1.
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 9
Ainsi, dans un problème de transbordement, les solutions basiques du PL
sont en bijection avec les arbres maximaux du réseau.
Un tel arbre T est appelé solution-arbre et, dans la solution basique qu’il
définit, seuls les arcs de T sont utilisés pour effectuer le transport.
Les notions d’admissible, de non admissible, d’optimal, de dégénéré, de non
borné, . . . définies pour les bases et les solutions basiques d’un PL classique
s’appliquent également aux solutions-arbres. En particulier, une
solution-arbre est admissible si, dans le plan de transport associé (la solution
basique associée), toutes les quantités transportées sont non négatives.
La matrice d’incidence A d’un réseau connexe étant de taille n × m mais
de rang n − 1, une contrainte du problème (choisie arbitrairement) peut
être supprimée sans changer l’ensemble des solutions admissibles. Pour le
problème dual, cela signifie qu’une variable peut être fixée à zéro.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 10


L’algorithme graphique du simplexe dans les réseaux
(phase II primale)
Données : Un réseau R = (V, E, b, c) connexe, |V | = n, |E| = m, et une solution-arbre
admissible T = (V, ET ).
Résultat : Un flot x : E → R+ de coût total minimum ou la preuve qu’un tel flot n’existe
pas.
(1) Calcul des solutions primale x et duale y associées à T .
(2) Recherche d’un arc entrant.
S’il n’en existe pas : STOP, les solutions actuelles sont optimales.
(3) Recherche d’un arc sortant.
S’il n’en existe pas : STOP, le réseau possède un circuit à coût négatif et le problème
n’a pas d’optimum fini.
(4) Mise à jour de la solution-arbre et retour au point (1).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 11


L’algorithme graphique du simplexe dans les réseaux
(phase II primale)
Données : Un réseau R = (V, E, b, c) connexe, |V | = n, |E| = m, et une solution-arbre
admissible T = (V, ET ).
Résultat : Un flot x : E → R+ de coût total minimum ou la preuve qu’un tel flot n’existe
pas.
(1) Calcul des solutions primale x et duale y associées à T .
(2) Recherche d’un arc entrant.
S’il n’en existe pas : STOP, les solutions actuelles sont optimales.
(3) Recherche d’un arc sortant.
S’il n’en existe pas : STOP, le réseau possède un circuit à coût négatif et le problème
n’a pas d’optimum fini.
(4) Mise à jour de la solution-arbre et retour au point (1).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 11


L’algorithme graphique du simplexe dans les réseaux
(phase II primale)
Données : Un réseau R = (V, E, b, c) connexe, |V | = n, |E| = m, et une solution-arbre
admissible T = (V, ET ).
Résultat : Un flot x : E → R+ de coût total minimum ou la preuve qu’un tel flot n’existe
pas.
(1) Calcul des solutions primale x et duale y associées à T .
(2) Recherche d’un arc entrant.
S’il n’en existe pas : STOP, les solutions actuelles sont optimales.
(3) Recherche d’un arc sortant.
S’il n’en existe pas : STOP, le réseau possède un circuit à coût négatif et le problème
n’a pas d’optimum fini.
(4) Mise à jour de la solution-arbre et retour au point (1).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 11


L’algorithme graphique du simplexe dans les réseaux
(phase II primale)
Données : Un réseau R = (V, E, b, c) connexe, |V | = n, |E| = m, et une solution-arbre
admissible T = (V, ET ).
Résultat : Un flot x : E → R+ de coût total minimum ou la preuve qu’un tel flot n’existe
pas.
(1) Calcul des solutions primale x et duale y associées à T .
(2) Recherche d’un arc entrant.
S’il n’en existe pas : STOP, les solutions actuelles sont optimales.
(3) Recherche d’un arc sortant.
S’il n’en existe pas : STOP, le réseau possède un circuit à coût négatif et le problème
n’a pas d’optimum fini.
(4) Mise à jour de la solution-arbre et retour au point (1).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 11


L’algorithme graphique du simplexe dans les réseaux
(phase II primale)
Données : Un réseau R = (V, E, b, c) connexe, |V | = n, |E| = m, et une solution-arbre
admissible T = (V, ET ).
Résultat : Un flot x : E → R+ de coût total minimum ou la preuve qu’un tel flot n’existe
pas.
(1) Calcul des solutions primale x et duale y associées à T .
(2) Recherche d’un arc entrant.
S’il n’en existe pas : STOP, les solutions actuelles sont optimales.
(3) Recherche d’un arc sortant.
S’il n’en existe pas : STOP, le réseau possède un circuit à coût négatif et le problème
n’a pas d’optimum fini.
(4) Mise à jour de la solution-arbre et retour au point (1).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 11


Calcul de la solution primale associée à T = (V, ET )
Données : Un réseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Résultat : Le flot x : E → R+ associé à T .

(1) Tant que |ET | > 1 faire

(1.1) Trouver un sommet pendant j de T .

Soit e le seul arc incident avec j dans T et i l’autre extrémité de e.

(1.2) Si e = (i, j) poser xij = bj

Sinon (e = (j, i)) poser xji = −bj .

(1.3) Poser bi = bi + bj .

(1.4) Retirer e de ET : ET = ET \ {e}.

(2) Il reste un seul arc dans ET , disons (i, j), poser xij = bj .

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 12


Calcul de la solution primale associée à T = (V, ET )
Données : Un réseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Résultat : Le flot x : E → R+ associé à T .

(1) Tant que |ET | > 1 faire

(1.1) Trouver un sommet pendant j de T .

Soit e le seul arc incident avec j dans T et i l’autre extrémité de e.

(1.2) Si e = (i, j) poser xij = bj

Sinon (e = (j, i)) poser xji = −bj .

(1.3) Poser bi = bi + bj .

(1.4) Retirer e de ET : ET = ET \ {e}.

(2) Il reste un seul arc dans ET , disons (i, j), poser xij = bj .

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 12


Exemple
Considérons le problème de transbordement défini par le réseau
R = (V, E, b, c) suivant où les nombres en regard des sommets
représentent, respectivement, l’offre ou la demande du sommet et ceux en
regard des arcs représentent leur coût unitaire d’utilisation.

0
v2
3 7
−6 4
v1 v3
4
1
5 4
−1 v4 v5 3
2

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 13


Soit la solution-arbre où ET = {(v1, v2), (v2, v3), (v2, v5), (v4, v5)}.

0
v2
3 7
−6 4
v1 v3
4
1
5 4
−1 v4 v5 3
2

On calcule successivement x45 = 1, x23 = 4, x25 = 2 et x12 = 6.


Cette solution basique est admissible et son coût est égal à

z = 1 × 2 + 4 × 7 + 2 × 4 + 6 × 3 = 56.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 14


Calcul de la solution duale associée à T = (V, ET )
Données : Un réseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Résultat : Les prix duaux y : V → R associés à T .

(1) Choisir arbitrairement i ∈ V et poser yi = 0.

Poser W = V \ {i}.

(2) Tant que W 6= ∅ faire

(2.1) Trouver un arc e ∈ ET avec une extrémité j dans W et une extrémité i dans
W̄ = V \ W .

(2.2) Si e = (i, j) poser yj = yi + cij

Sinon (e = (j, i)) poser yj = yi − cji.

(2.3) Retirer j de W : W = W \ {j}.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 15


Calcul de la solution duale associée à T = (V, ET )
Données : Un réseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Résultat : Les prix duaux y : V → R associés à T .

(1) Choisir arbitrairement i ∈ V et poser yi = 0.

Poser W = V \ {i}.

(2) Tant que W 6= ∅ faire

(2.1) Trouver un arc e ∈ ET avec une extrémité j dans W et une extrémité i dans
W̄ = V \ W .

(2.2) Si e = (i, j) poser yj = yi + cij

Sinon (e = (j, i)) poser yj = yi − cji.

(2.3) Retirer j de W : W = W \ {j}.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 15


Calcul de la solution duale associée à T = (V, ET )
Données : Un réseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Résultat : Les prix duaux y : V → R associés à T .

(1) Choisir arbitrairement i ∈ V et poser yi = 0.

Poser W = V \ {i}.

(2) Tant que W 6= ∅ faire

(2.1) Trouver un arc e ∈ ET avec une extrémité j dans W et une extrémité i dans
W̄ = V \ W .

(2.2) Si e = (i, j) poser yj = yi + cij

Sinon (e = (j, i)) poser yj = yi − cji.

(2.3) Retirer j de W : W = W \ {j}.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 15


Exemple
Pour l’arbre donné par ET = {(v1, v2), (v2, v3), (v2, v5), (v4, v5)}.
0
v2
3 7
−6 4
v1 v3
4
1
5 4
−1 v4 v5 3
2
On pose y1 = 0 et on calcule successivement y2 = 3, y3 = 10, y5 = 7 et
y4 = 5. Cette solution basique a un coût égal à

w = 0 × −6 + 3 × 0 + 10 × 4 + 7 × 3 + 5 × −1 = 56.
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 16
Recherche d’un arc entrant
Rappelons que nous disposons d’une solution-arbre admissible T = (V, ET )
ainsi que des solutions primale x et duale y associées.
La solution primale étant admissible, s’il en est de même de la solution
duale, elles sont toutes deux optimales (dualité faible).
Par construction, les contraintes duales sont satisfaites (avec égalité) pour
les arcs de ET . On passe donc en revue les arcs (i, j) hors base et on teste
pour chacun d’eux si la contrainte duale associée yj − yi ≤ cij est satisfaite
ou non.
Dès qu’une contrainte violée est trouvée, on s’arrête : l’arc e = (i, j) en
question va rentrer dans la base.
Si toutes les contraintes sont satisfaites, les solutions actuelles sont
optimales.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 17


Exemple
Reprenons l’arbre T = (V, ET ) accompagné des solutions primale et duale.
3
v2

6 4
v1 v3
0 1 10
2
5 4

v4 1 v5
5 7
Pour l’arc hors base (v1, v4) on a c14 = 5 et y4 − y1 = 5 − 0 = 5. La
contrainte y4 − y1 ≤ c14 est satisfaite.
Pour l’arc hors base (v2, v4) on a c24 = 1 et y4 − y2 = 5 − 3 = 2. La
contrainte y4 − y2 ≤ c24 est violée. L’arc (v2, v4) entre dans la base.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 18


Recherche d’un arc sortant
Si on ajoute à la solution-arbre actuelle l’arc entrant e = (i, j), on forme un
cycle unique C. Utilisant l’orientation de (i, j) pour définir le sens de
parcours de C, on divise les arcs de C en deux ensembles disjoints C + et
C −, où C + regroupe les arcs de C de même orientation que (i, j) et C −
ceux d’orientation opposée.
Observation. Si on change un flot le long d’un cycle C en transportant une
quantité ∆ en plus sur les arcs de C + et en moins sur les arcs de C −, les
bilans aux sommets de C ne sont pas modifiés.
Si C − = ∅, STOP : le circuit C est à coût négatif et le problème n’admet
pas d’optimum fini.
Sinon, soit ∆ = min{xkl | (k, l) ∈ C −} et s un arc pour lequel le minimum
est atteint. L’arc s quitte la base.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 19


Exemple
L’arc entrant est e = (v2, v4).
3
v2

6 4
v1 v3
0 10
2

v4 1 v5
5 7
Le cycle C est formé des arcs (v2, v4), (v4, v5) et (v2, v5).
C + = {(v2, v4), (v4, v5)} et C − = {(v2, v5)}.
Ainsi ∆ = min{xkl | (k, l) ∈ C −} = x25 = 2 et s = (v2, v5).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 20


Mise à jour des solutions
• La nouvelle solution-arbre est donnée par ET = ET ∪ {e} \ {s}.

• La solution basique primale ne change que sur les arcs de C :



 xij + ∆
 si (i, j) ∈ C +
xij = xij − ∆ si (i, j) ∈ C −
 xij si (i, j) ∈
/C

• La mise à jour de la solution basique duale peut également être faite


en conservant une partie de la solution actuelle. Le procédé ne sera pas
exposé ici et nous supposerons simplement que la solution basique duale
est recalculée entièrement.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 21


Exemple
La nouvelle solution-arbre est ET = ET ∪ {(v2, v4)} \ {(v2, v5)}.
La solution basique primale ne change que pour les arcs de C.
3
v2

x24 = x24 + ∆ = 0 + 2 = 2, 6 4
v1 v3
x45 = x45 + ∆ = 1 + 2 = 3, 0 2 4 10
5 4
x25 = x25 − ∆ = 2 − 2 = 0.
v4 3 v5
4 6
La solution duale ne change que pour y4, maintenant égal à 4, et y5 qui
passe à 6.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 22


Dégénérescence
Si la solution basique primale est dégénérée, c.-à-d. s’il existe des arcs dans
ET le long desquels des quantités nulles sont transportées, la modification
∆ du flot peut être nulle et il y a risque de cyclage.
Afin d’éviter ce risque, on peut recourir, par exemple, à une version
graphique de la règle de Bland.

• Tester les arcs hors base dans l’ordre lexicographique et faire entrer le
premier arc dont la contrainte duale associée est violée.

• Si la quantité ∆ (nulle en cas de dégénérescence) est transportée le


long de plusieurs arcs de C − faire sortir l’arc le plus petit dans l’ordre
lexicographique.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 23


Calcul d’une solution-arbre initiale admissible
Lorsque qu’une solution-arbre initiale admissible n’est pas connue ou facile
à déterminer, il faut recourir à une phase I.
Comme pour l’algorithme du simplexe dans les tableaux, on va recourir à
une phase I primale reposant sur un problème de transbordement auxiliaire
• possédant toujours des solutions admissibles ;
• possédant toujours un optimum fini ;
• possédant un optimum fini de valeur nulle si et seulement si le problème
de départ possède au moins une solution admissible.
De plus, il sera facile de trouver une solution-arbre admissible du problème
auxiliaire et sa solution optimale, si elle est de valeur nulle, fournira une
solution-arbre admissible pour le problème de départ.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 24


Construction du problème auxiliaire et d’une
solution-arbre initiale admissible
Données : Un réseau R = (V, E, b, c) connexe.
Résultat : Un réseau R0 = (V, E 0, b, c0) et une solution-arbre T 0 = (V, ET0 ) admissible pour
R0 .

(1) Poser c0ij = 0 pour tout (i, j) ∈ E.

(2) Choisir un sommet source, disons k.

(3) Relier chaque sommet source i (6= k) à k par un arc artificiel (i, k) de poids c0ik = 1
(s’il existe déjà un arc de i à k dans R ne pas le rajouter).

(4) Relier k à chaque sommet puits j par un arc artificiel (k, j) de poids c0kj = 1 (s’il existe
déjà un arc de k à j dans R ne pas le rajouter).

(5) Poser ET0 = {(i, k) | i sommet source} ∪ {(k, j) | j sommet puits} et compléter ET0
jusqu’à obtenir un arbre maximal (si nécessaire).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 25


Construction du problème auxiliaire et d’une
solution-arbre initiale admissible
Données : Un réseau R = (V, E, b, c) connexe.
Résultat : Un réseau R0 = (V, E 0, b, c0) et une solution-arbre T 0 = (V, ET0 ) admissible pour
R0 .

(1) Poser c0ij = 0 pour tout (i, j) ∈ E.

(2) Choisir un sommet source, disons k.

(3) Relier chaque sommet source i (6= k) à k par un arc artificiel (i, k) de poids c0ik = 1
(s’il existe déjà un arc de i à k dans R ne pas le rajouter).

(4) Relier k à chaque sommet puits j par un arc artificiel (k, j) de poids c0kj = 1 (s’il existe
déjà un arc de k à j dans R ne pas le rajouter).

(5) Poser ET0 = {(i, k) | i sommet source} ∪ {(k, j) | j sommet puits} et compléter ET0
jusqu’à obtenir un arbre maximal (si nécessaire).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 25


Construction du problème auxiliaire et d’une
solution-arbre initiale admissible
Données : Un réseau R = (V, E, b, c) connexe.
Résultat : Un réseau R0 = (V, E 0, b, c0) et une solution-arbre T 0 = (V, ET0 ) admissible pour
R0 .

(1) Poser c0ij = 0 pour tout (i, j) ∈ E.

(2) Choisir un sommet source, disons k.

(3) Relier chaque sommet source i (6= k) à k par un arc artificiel (i, k) de poids c0ik = 1
(s’il existe déjà un arc de i à k dans R ne pas le rajouter).

(4) Relier k à chaque sommet puits j par un arc artificiel (k, j) de poids c0kj = 1 (s’il existe
déjà un arc de k à j dans R ne pas le rajouter).

(5) Poser ET0 = {(i, k) | i sommet source} ∪ {(k, j) | j sommet puits} et compléter ET0
jusqu’à obtenir un arbre maximal (si nécessaire).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 25


Construction du problème auxiliaire et d’une
solution-arbre initiale admissible
Données : Un réseau R = (V, E, b, c) connexe.
Résultat : Un réseau R0 = (V, E 0, b, c0) et une solution-arbre T 0 = (V, ET0 ) admissible pour
R0 .

(1) Poser c0ij = 0 pour tout (i, j) ∈ E.

(2) Choisir un sommet source, disons k.

(3) Relier chaque sommet source i (6= k) à k par un arc artificiel (i, k) de poids c0ik = 1
(s’il existe déjà un arc de i à k dans R ne pas le rajouter).

(4) Relier k à chaque sommet puits j par un arc artificiel (k, j) de poids c0kj = 1 (s’il existe
déjà un arc de k à j dans R ne pas le rajouter).

(5) Poser ET0 = {(i, k) | i sommet source} ∪ {(k, j) | j sommet puits} et compléter ET0
jusqu’à obtenir un arbre maximal (si nécessaire).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 25


Construction du problème auxiliaire et d’une
solution-arbre initiale admissible
Données : Un réseau R = (V, E, b, c) connexe.
Résultat : Un réseau R0 = (V, E 0, b, c0) et une solution-arbre T 0 = (V, ET0 ) admissible pour
R0 .

(1) Poser c0ij = 0 pour tout (i, j) ∈ E.

(2) Choisir un sommet source, disons k.

(3) Relier chaque sommet source i (6= k) à k par un arc artificiel (i, k) de poids c0ik = 1
(s’il existe déjà un arc de i à k dans R ne pas le rajouter).

(4) Relier k à chaque sommet puits j par un arc artificiel (k, j) de poids c0kj = 1 (s’il existe
déjà un arc de k à j dans R ne pas le rajouter).

(5) Poser ET0 = {(i, k) | i sommet source} ∪ {(k, j) | j sommet puits} et compléter ET0
jusqu’à obtenir un arbre maximal (si nécessaire).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 25


Construction du problème auxiliaire et d’une
solution-arbre initiale admissible
Données : Un réseau R = (V, E, b, c) connexe.
Résultat : Un réseau R0 = (V, E 0, b, c0) et une solution-arbre T 0 = (V, ET0 ) admissible pour
R0 .

(1) Poser c0ij = 0 pour tout (i, j) ∈ E.

(2) Choisir un sommet source, disons k.

(3) Relier chaque sommet source i (6= k) à k par un arc artificiel (i, k) de poids c0ik = 1
(s’il existe déjà un arc de i à k dans R ne pas le rajouter).

(4) Relier k à chaque sommet puits j par un arc artificiel (k, j) de poids c0kj = 1 (s’il existe
déjà un arc de k à j dans R ne pas le rajouter).

(5) Poser ET0 = {(i, k) | i sommet source} ∪ {(k, j) | j sommet puits} et compléter ET0
jusqu’à obtenir un arbre maximal (si nécessaire).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 25


Exemple
Un réseau auxiliaire pour l’exemple développé jusqu’ici est

1 0 v2
0
−6 0 4
v1 v3
0
0
0
1 0

1 −1 0
v4 v5 3

La solution-arbre initiale associée est formée des arcs de poids 1 ainsi que
d’un des arcs incidents à v2 (afin d’obtenir un arbre maximal).

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 26


Le théorème des valeurs entières
Considérons le programme linéaire

Opt z = cx
s.c. Ax = b
x ≥ 0

Théorème 2. Soit le problème ci-dessus où A est une matrice m × n de


rang m à coefficients entiers et b un vecteur entier. Les affirmations suivantes
sont équivalentes
(1) le déterminant de toute base B de A vaut +1 ou −1 ;
(2) pour tout b entier, le polyèdre P = {x | Ax = b, x ≥ 0} est entier ;
(3) pour toute base B de A, B −1 est entière.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 27


Preuve. (1) ⇒ (3) : Si det(B) = ±1, B −1 est entière car

B −1 = 1/det(B) · C(B)T

où C(B) est la matrice des cofacteurs de B (entière car B est entière).
(3) ⇒ (1) : On a det(B) · det(B −1) = 1 et det(B) et det(B −1) entiers.
Ainsi
det(B) = det(B −1) = ±1.
(3) ⇒ (2) : Soit x un point extrême de P , il existe une base B de A t.q. x
soit la solution basique associée à B. Mais cette solution basique est
xB = B −1b et xN = 0. Elle est donc entière si b et B −1 le sont.
(2) ⇒ (3) : Soit B une base de A. Si P est entier pour tout b entier, la
solution basique associée à B est entière pour tout b entier. Il suffit de
prendre successivement b = ei, i = 1, . . . , m, pour montrer que chaque
colonne de B −1 est entière. 
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 28
Les matrices totalement unimodulaires
Une matrice A est totalement unimodulaire si toute sous-matrice carrée
que l’on peut extraire de A (en éliminant des lignes et des colonnes) a un
déterminant égal à 0, 1 ou −1.
Remarque. La définition précédente implique que les termes de A valent 0,
1 ou −1.
Théorème 3. Soit le programme linéaire

Opt {cx | Ax = b, x ≥ 0}

où A est totalement unimodulaire. Pour tout vecteur b entier, le problème


admet une solution admissible entière dès qu’il a une solution admissible. De
plus, il admet une solution optimale entière dès qu’il a une solution optimale.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 29
Le théorème suivant fournit une condition suffisante pour qu’une matrice
soit totalement unimodulaire.
Théorème 4. Une matrice A est totalement unimodulaire si elle satisfait
les conditions suivantes
(1) chaque terme vaut 0, 1 ou −1 ;
(2) chaque colonne contient au plus deux éléments non nuls ;
(3) l’ensemble I des lignes de A peut être partitionné en deux ensembles
I1 et I2 tels que
(a) deux termes non nuls de même signe d’une colonne sont l’un dans
une ligne de I1, l’autre dans une ligne de I2,
(b) deux termes non nuls de signe opposé d’une colonne sont tous les
deux dans des lignes de I1 ou tous les deux dans des lignes de I2.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 30


Preuve. Il suffit de montrer que toute matrice carrée satisfaisant ces
conditions a un déterminant égal à 0, 1 ou −1. On va procéder par
induction sur la taille n de la matrice A.
Pour les matrices 1 × 1, le résultat est vrai. Supposons-le vrai pour les
matrice de taille (n − 1) × (n − 1).
Soit A : n × n vérifiant les conditions.
1) Si A possède une colonne nulle, det(A) = 0.
2) Si A possède une colonne avec un seul terme non nul, en développant
son déterminant selon cette colonne on a det(A) = ±det(Ā) où Ā est une
sous-matrice de A de taille n − 1 satisfaisant les conditions. On a alors
det(A) = 0, 1 ou −1.
3) Si toutes les colonnes de A ont deux termes non nuls, on a
P P
i∈I1 aij = i∈I2 aij
pour toute colonne j et det(A) = 0. 
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 31
Corollaire 5. La matrice d’incidence sommets-arcs d’un graphe est totale-
ment unimodulaire.
Preuve. Il suffit de prendre I1 = I et I2 = ∅. 
Corollaire 6. Soit le problème de transbordement

Min z = cx
s.c. Ax = b
x ≥ 0

Pour tout vecteur b entier pour lequel le problème a une solution admissible,
il existe une solution admissible entière. De plus. s’il existe une solution
optimale finie, il existe une solution optimale entière. 
Remarque. Le résultat précédent reste vrai si on introduit des capacités
maximales sur les arcs.

J.-F. Hêche, ROSO-EPFL Le problème du transbordement 32


Objectifs

• Connaı̂tre les définitions d’un problème de transbordement, de transport


ou d’affectation ainsi que la classification associée des sommets.

• Pouvoir formuler un problème de transbordement sous forme d’un


programme linéaire et en expliquer les contraintes. Pouvoir en calculer
le dual et l’interpréter.

• Comprendre la relation existant entre les arbres maximaux d’un réseau


et les solutions basiques du programme linéaire associé.

• Savoir appliquer l’algorithme graphique du simplexe (phases I & II).

• Connaı̂tre la définition d’une matrice totalement unimodulaire et le


théorème des valeurs entières.
J.-F. Hêche, ROSO-EPFL Le problème du transbordement 33

Vous aimerez peut-être aussi