Ro
Ro
Ro
Graphes orients . . . . . . . . . . . . . . . . . . . . Graphes simples . . . . . . . . . . . . . . . . . . . . Forte connexit . . . . . . . . . . . . . . . . . . . . . Exemple d'utilisation des graphes : Emploi du temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
5 7 8 8
2 Problmes de cheminement
2.1 Dnitions et propositions . . . 2.2 Algorithmes . . . . . . . . . . . 2.2.1 Algorithme de Bellman 2.2.2 Algorithme de Dijkstra 2.3 Ordonnancement simple . . . .
11
11 15 15 16 16
3.1 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Ordonnancement avec ressources renouvelables . . . . . . . . . . 20 4.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3 Coupe minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.1 Flots canaliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 Problme de la tension maximum . . . . . . . . . . . . . . . . . . 35 6.1 Dnition et exemples . . . . . . . . . . . . . . . . . . . . . . . . 39 6.2 Proprits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.3 Algorithme primal . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.1 7.2 7.3 7.4 7.5 7.6 Introduction . . . . . . . . . . . . . Rappels d'algbre linaire . . . . . Forme canonique, Forme standard Bases et solutions de base . . . . . Le pivotage . . . . . . . . . . . . . Base ralisable - Base optimale . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 23
5 Flots canaliss
33
39
7 Programmation linaire
47
47 48 49 50 53 54
8 Aldorithme du simplexe
8.1 8.2 8.3 8.4 8.5 8.6 9.1 9.2 9.3 9.4 9.5
Remarques et notations . . . . . . . . Etude d'un programme particulier . . Rsolution d'un exemple . . . . . . . . Algorithme du simplexe . . . . . . . . Dualit, programme linaire dual . . . Thorme des crats complmentaires
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
55
55 55 57 59 61 63
9 Sparation et Evaluation
Programmation en nombres entiers . . . . . . . . . . . Problme du sac--dos (Knapsack problem) . . . . . . Premire heuristique . . . . . . . . . . . . . . . . . . . Deuxime heuristique . . . . . . . . . . . . . . . . . . Mthode sparation et valuation . . . . . . . . . . . . 9.5.1 Sparation . . . . . . . . . . . . . . . . . . . . 9.5.2 Principe d'valuation et utilisation de la borne 9.5.3 Stratgie de dveloppement . . . . . . . . . . . 9.5.4 Application notre problme de sac--dos . . . 9.6 Application au problme du voyageur de commerce . .
65
65 65 65 66 66 66 67 67 67 68
Chapitre 1
Elment de thorie des graphes
Exemple 1
a 1 da2 a E3 2 3 d d a6 d a4 a5 d c Ec 4 a7 d 5 T : UX a1 1 a2 3 a3 3 a4 5 a5 5 a6 4 a7 5
U = {a1 , a2 , a3 , a4 , a5 , a6 , a7 } X = {1, 2, 3, 4, 5}
I : UX a1 2 a2 1 a3 2 a4 2 a5 3 a6 2 a7 4
Exemple 2
X est l'ensemble des mots de longueur 2 sur 3 lettres : X = {0, 1, 2}2 |X | = 9 x1 x2 x2 {0, 1, 2}
CHAPITRE 1.
uU x et y sont adjacents u= xy x est incident u u et v sont adjacents v= xz xX d+ (x) = |{u U/I (u) = x}| demi-degr extrieur d (x) = |{u U/T (u) = x}| demi-degr intrieur d(x) = d+ (x) + d (x) G est un graphe rgulier si d(x) = k x X
Dnition 2
Dnition 3
Exemple
d+ (00) = 3
dans DB(3,2) :
d (00) = 3
d(00) = 6
Thorme
d (x) = |U |
Consquence 1
d(x) = 2|U |
xX
1.2.
GRAPHES SIMPLES
Consquence 2 Dnition 4
Le nombre de sommets du graphe ayant un degr impair est pair. Deux graphes orients G = (X, U ) et G = (X , U ) sont isomorphes si U alors et seulement si il existe une bijection (X ) X telle que : xy
(x)(y ) U
Exemple
Dnition 7
Exemple
Un graphe complet antisymtrique est un tournoi. Un chemin de x y dans un graphe G = (X, U ) est une squence d'arcs u1 u2 u3 . . . uk telle que I (u1 ) = x T (uk ) = y
Dnition 8
CHAPITRE 1.
T (ui ) = I (ui+1 )
Dnition 9
i {1, . . . , k 1}
Un chemin est simple s'il ne contient pas deux fois le mme arc. Un chemin est lmentaire s'il ne passe pas deux fois par le mme sommet.
Dnition 10
ou un chemin de x y et un chemin de y x
x=y
Exemple
1 = {1, 2, 3, 4, 5} 6 = {6, 7, 8, 9, 10}
Le graphe a deux composantes fortement connexes Un graphe est dit fortement connexe si et seulement si il ne contient qu'une seule composante fortement connexe.
G graphe orient et C1 , C2 , . . . , Ck ses composantes fortement connexes. G/C est le graphe dont les sommets sont les composantes fortement connexes de G. G/C est un DAG.
1 X X X
2 X X
3 X X X
4 X X x
5 X X
6 X X X Une confrence dure une journe Quelle est la dure minimum du sminaire ?
A une confrence i, on y associe les auditoires qui doivent y assister. 1 : {a, b, c} 2 : {b, e} 3 : {a, b, d} 4 : {b, c, e} 5 : {a, d} 6 : {b, c, e}
1.4.
Deux confrences sont incompatibles si les ensembles d'auditoires correspondants sont disjoints.
G = (X, E )
def
X = {1, 2, 3, 4, 5, 6}
ij E i et j sont incompatibles.
Le problme revient dterminer une partirion de l'ensemble des sommets du graphe en sousensemble de sommets indpendants, on veut le plus petit nombre de sous-ensemble indpendant = stable = des sommets qui ne sont pas relis par des artes On obtient un sminaire de 4 jours On cherche le nombre chromatique de G, not (G) : le plus petit nombre de couleurs ncessaires pour colorier les sommets du graphe de telle faon que deux somets adjacents aient des couleurs direntes On remarque que les sommets 1,2,3,4 forments une clique (graphe complet). C'est une clique de quatre sommets. on ne peut pas fare mieux que 4 jours.
(G) (G) (G) : taille de la plus grande clique du graphe. S1 = {1, 2} S2 = {3} S3 = {4, 5} S4 = {6}
10
CHAPITRE 1.
Chapitre 2
Problmes de cheminement
Poids du chemin :
k
(C ) =
i=1
d(ui )
Exemple
(C ) = 2 + 3 1 + 0 = 0
11
12
CHAPITRE 2.
PROBLMES DE CHEMINEMENT
La probabilit pour que le lien ij ne soit pas en panne est pij . La probabilit pour qu'un chemine entre a et b C : u1 u2 u3 . . . uk ne soit pas en panne est
k
P (C ) =
i=1
p(ui )
min
aij = min
pij c
log(pij ) = max
pij C
pij )
Rechercher le chemin le plus sr entre a et b Trouver leplus court chemni entre a et b pour la valuation
d : U R aij log(pij )
Mthodes de rsolution
PERT (Project Evaluation and Review Technique) CPM 5critical Path Method)
2.1.
DFINITIONS ET PROPOSITIONS
13
6 problmes
R = (X, U, d) A : dterminer un chemin de longueur minimum de s p. B : chaque x X , associer un chemin de longueur minimum de s x C : chaque couple (x, y ) X X , associer un chemin de longueur minimum de x y A , B , C : mme problme mais on enlve la contrainte lmentaire .
lmentaire
lmentaire
lmentaire
b d :pas de chemin lmentaire a d :un chemin lmentaire de longueur 4+1=5 c g :un chemin lmentaire de longueur 1+1=2 Il n'y a pas de plus court chemin entre c et g : cdef dg = -3 cdef def dg = -8
...
Dnition
Un circuit tel que
u
< 0 est un
circuit absorbant.
Dnition
Un sommet a d'un graphe orient est dit racine s'il existe dans G un chemin joignant a x pour tout sommet x X .
Thorme 1
Une CNS pour que le problme B ait une solution est que : s soit racine R = (X, U, d) ne contiennent pas de circuit absorbant Si ces deux conditions sont satisfaites, alors toute dolution de B est solution de B . () 1. On peut aller de s n'importe quel sommet sont s est racine 2. Si R = (X, U, d) contient un circuit absorbant : d(s, x) doit tre x ; mais en passant par le circuit absorbant, on peut diminuer d(s, x) (impossible car B a une solution)
Preuve
14
CHAPITRE 2.
PROBLMES DE CHEMINEMENT
() Si s est racine le problme B a une solution. On veut mnotrer que toute solution de B est solution de B . Soit C le chemin de s x solution de B . On va supposer qu'il existe un chemin de s x de longueur plus petite. On prend celui qui a le plus petit nombre d'arcs, on le note C . C n'est pas lmentaire. Soit C = c .
l(C ) < l(C ) l(C ) C a le nombre minimum d'arcs l(C ) l(C ) l() = l(C ) l(C ) < 0 est absorbant impossible par hypothse.
Thorme 2
Soit C un plus court chemin dans R = (X, U, d) de s p. Soient x, y C et Cxy la portion de chemni entre x et y . Cxy est un plus court chemin de x y .
Dnition 4
: X R est appel un
potentiel
Thorme 3
Une CNS pour que les potentiels (x), x X soient les plus courtes distances de s x, x X est que 1. (s) = 0 2. (T (u)) (I (u)) d(u) 3. le graphe partiel (X, U ) tel que U = {u U/(T (u)) (I (u) = d(u)} admette s comme racine.
Preuve
Condition ncessaire
C =C xy l(C ) (y ) l(C ) = l(C ) + d(u) = (x) + d(u) (y ) (y ) (x) d(u) 3. Soit u = ( xy ) qui appartient un plus court chemin de s z Csx est un plus court chemin de s x Csy est un plus court chemin de s y l(Csy ) = (y ) = l(Csx ) + d(u) = (x) + d(u) y = T (u) et x = I (u) d(u) = (y ) (x)
On suppose que vrie 1 et 2 1. (s) = 0 2. u U (T (u)) (I (u)) d(u) Alors (x) est une borne infrieure pour la plus courte distance de s x. C plus court chemin de s x.
l(C ) =
uC
Condition susante
d(u)
uC
(T (u)) (I (u))
2.2.
ALGORITHMES
15
l(C ) (x1 ) (s) + (x2 ) (x1 ) + + (x) (xk ) = (x) (s) = (s) l(C ) (x) Si on prend les chemins (X, U ) on a galits donc (x) est la longueur du plus court chemin de s x.
Algorithme
S={s}; Pi(s)=0; A(s)=e; Tant qu'il existe x n'appartenant pas S dont tous les prdcesseurs sont dans S faire x = Min(Pi(I(u))+d(u)) tel que T(u)==x Soit a l'arc tel que Pi(x) = Pi(I(a))+d(a) A(x)=a; S = S + {x}
Exemple
S S S S S S S
Justication
S'il n'existe plus de sommet x tel que tous ses prdcesseurs sont dans S et S=X S est l'ensemble dont s est racine. Si s est racine de G : x est hors de S et il a un prdcessuer y qui n'est pas dans S , y a un prdcesseur z qui n'est pas dans S , z . . . On boucle indniement. Pas posible car G n'a pas de circuit.
16
2.2.2
CHAPITRE 2.
PROBLMES DE CHEMINEMENT
Algorithme de Dijkstra
Algorithme
S={s}; Pi(s)=0; A(s)=e; k=1; x1=1; Pour tout x appartenant A, x!=s faire Pi(x)=infini Tant que k<n et (Pi(xk)<infini) faire Pour tout u tel que I(u)=xk et T(u) n'appartient pas S faire x=T(u) Si Pi(x)>Pi(xk)+d(u) alors Pi(x)=Pi(xk)+d(u) A(x)=u Choisir x n'appartenant pas S tel que Pi(x)=Min(Pi(y)) k=k+1 xk=x S=S+{x}
Exemple
x1 x2 x3 x4 x5 x6
=1 =2 =3 =5 =6 =4
2.3.
ORDONNANCEMENT SIMPLE
17
tches A B C D E F G
dure 6 3 6 2 4 3 1
contraintes
rsulte un retard dans le projet. tche critique : tout retard retarde le projet. chemin critique : chemin de tches critiques.
(x) : date minimum laquelle l'tape x peut tre atteinte (x) : date maximum laquelle l'tape x peut tre atteinte sans qu'il en
Thorme 4
2tant donn un rseau PERT R = (X, U, d) 1. (x) la longueur du plus long chemin de D x 2. (x) (F ) la longueur du plus long chemin de x F = u peut voir sa dure augmenter du dlai 3. une tche correspond l'arc xy (u) = (x) (x) d(u) sans que le retard se rpercute sur la dure totale du projet. tche critique : (u) = 0 4. un chemin de D F critique : le plus long chemin de D F .
18
CHAPITRE 2.
PROBLMES DE CHEMINEMENT
Chapitre 3
Mthode potentiel-tche
Exemple
tche dure contrainte 1 3 2 7 3 4 1 prcde 3 4 6 1 et 2 prcdent 4 5 5 3 prcde 5 6 3 3 et 4 prcdent 6 7 2 6 prcde 7 Graphe conjonctif associ :
X = I {0, n + 1} I = {1, . . . , n} U arcs contraintes partieles
3.1 Ordonnancement
Un ensemble de potentiels Z = {ti , i X } les dates de dbut (dates au lpus tt) La dure minimale du projet : l(0, n + 1), longueur du plus long chemin qui va de 0 n + 1. Ordonnancement au plus tt : ri = l(0, 1) plus tard : fi = l(0, n + 1) l(i, n + 1) tche critique : date au plus tt = date au plus tard Le chemin critique est le chemin de tches critiques 19
20
CHAPITRE 3.
MTHODE POTENTIEL-TCHE
Diagramme de GANTT
a b c d e f g h i j Dispo resource 1 3 3 1 1 1 2 3 2 1 2 5 resource 2 0 0 0 1 1 1 0 1 0 0 1 Remarques : resources renouvelables : aprs avoir t allou une tche, une ressource redevient disponible priorits sur les tches : on ordonne les tches selon les dates au plus tard A l'instant t, on aecte parmi les tches prtes (celles dont tous les prdcesseurs sont achevs) celle qui utilise moins de ressources que la quantit disponible et celle de plus haute priorit.
Algorithme
Algorithme de listes { U=ensemble vide t = 0 Tant que U != I faire { si !U != ensemble vide alors { dterminer la tche de plus haute priorit t = ti U = U+{i}} sinon { dterminer le plus petit instant t o !U devient disponible} } }
3.2.
21
Exemple
t = 0. On fait a ou c. On fait a on utilise 3 units de resource 1 et 0 unit de resource 2. On fait c on utilise 1 unit de resource 1 et 0 unit de resource 2. t = 2 c est achev, on peut faire f t = 7 f est achev, on peut faire j t = 14 deux tches sont disponibles : d et a d et e sont incompatibkes, on prend celui qui a la plus petite date au plus tard Temps de ralisation : 44 L'algorithme de liste ne donne pas forcment la solution optimale. Solution optimale
On ne peut pas faire mieux que 40. a et b sont des tches disjonctives (elles ne peuvent pas avoir lieu en mme temps, elles utilisent trop de R1) 2 possibilits : (a b) ou (b a) 1. a prcde b. On a soit abedgi soit abdegi. Donc dure 44 2. b prcde a. On a badgi. Donc dure 40 Donc la solution propose est optimale.
22
CHAPITRE 3.
MTHODE POTENTIEL-TCHE
Chapitre 4
Ford-Fulkerson
4.1 Prsentation
Dnition 1
G = (X, U ) orient. |U | = m c : U R+ {+} capacits R = (X, U, c) c(ur ) = +
tel que 1. f soit un ot 2. la valeur du ot est comprise entre 0 et c(u), u U 3. f (ur ) soit maximum pour les conditions 1 et 2
Flot
f : U R telle que x X on ait f (u) =
I (u)=x T (u)=x
f (u)
24
CHAPITRE 4.
FORD-FULKERSON
Matrice d'incidence
A est la matrice d'incidence du graphe. A[R] = (aij )1in ou aij =
1j m
Programme linaire
En programmation linaire, le problme est : Trouver f Rm tel que
A.f = 0 0 f (u) c(u) u U f (ur ) = z (max)
Ide
1. ot ralisable (a)
f (u) =
I (u)=x T (u)=x
f (u) x X
4.2.
ALGORITHMES
25
(b)
0 f (u) c(u) u U
Marquage direct y non marqu f (u) < c(u) x est marqu (x) u = xy, alors (y ) = min{ (x), c(u) f (u)} A(y ) = u, y est marqu Marquage indirect y non marqu f (u) > 0 x est marqu (x) u = xy, alors (y ) = min{ (x), f (u)} A(y ) = u, y est marqu
4.2 Algorithmes
Algorithme de Marquage
{ delta = delta(s)=c(u)-f(u) Y=s tant que p n'appartient pas Y et delta>0 faire s'il existe u=xy avec x dans Y et y n'appartenant pas Y et f(u)<c(u) alors Y=Y+y A(y)=u delta(y)=min(delta(y), c(u)-f(u)) sinon s'il existe u=xy avec x dans Y et y n'appartenant pas Y et f(u)>0 alors Y=Y+y A(y)=u delta(y)=min(delta(y), f(u)) sinon delta=0 Si p appartient Y delta=delta(p)
26
Pour tout u dans X faire f(u)=0 Iterer marquage arret delta=0 changement de flot
CHAPITRE 4.
FORD-FULKERSON
Exemple
(s) = + Y = {s} u = sb f (u) = 2 < c(u) (b) = min( (s), c(u) f (u)) = 2 Y Y {b} A(b) = sb u = ap f (u) = 0 < c(u) (p) > min( (a), c(u) f (u)) = 1 Y Y {p} A(p) = ap =1 x=p = u f (u) = f (u) + A(p) = ap x = I (u) = a A(a) = ab = u f (u) = f (u) x = T (u) = b A(b) = sb = u f (u) = f (u) +
Premire itration
(s) = + u = sb
Deuxime itration
4.3.
COUPE MINIMUM
27
(b) = min( (s), c(u) f (u)) = 1 Y Y {b} A(b) = sb On ne peut pas marquer a ni p. =0 C'est ni. Flot max : f (ur ) = 4
Remarque
Si les capacits sont valeurs entires alors le ot aussi.
Dnition 2
Capacit d'une coupe sparant p de s
c(C ) =
uC c(u)
28
CHAPITRE 4.
FORD-FULKERSON
Thorme 1
p de s
Dnition du cocycle
(Y ) = {u U/u a une extremite dans Y et l autre dans X + (Y ) = {u U/I (u) Y et T (u) X Y } (Y ) = {u U/T (u) Y et I (u) X Y } (Y ) = + (Y ) (Y ) Y}
Thorme
Une application f : U R est un ot
f (u) =
u+ (Y ) u (Y )
f (u)
Preuve du thorme 1
Soit C une coupe de R sparant p de s. A C on associe (Y )
(Y ) = C (Y ) C = + (Y ) f (u) =
u+ (Y )
u (Y )f (u)
f (ur )
u (Y )
f (u) =
u (Y )
f (u)
u (Y )
c(u) = c(C )
Corollaire 3
f est une solution optimale pour le problme du ot max de s p.
Preuve
On ne peut pas marquer p. Y les sommets marqus. Si u + (Y ) f (u) = c(u) Si u (Y ) f (u) = 0 On prend C = + (Y )
ur (Y ) f (u) =
u+ (Y ) =c(C ) u (Y ) ur =0
f (u) +f (ur )
4.3.
COUPE MINIMUM
29
Preuve
A.F = 0 0 f (u) c(u) FM f (ur ) = z (max)
f (u) = f (ur )
f (ur ) =
u + (Y )
f (u) =
u + (Y )
c(u) = c(C )
Exemple
c(C ) = 3 f (ur ) = 3
30
CHAPITRE 4.
FORD-FULKERSON
Lemme de Minty(1966)
Soit G = (X, U ) un graphe orient dont les arcs sont coloris soit en noir, soit en rouge, soit en vert (arcs incolores possibles). On suppose qu'il existe au moins un arc noir, not u0 . Alors une et une seule des deux propositions suivantes est vrie : 1. il passe pas l'arc u0 un cycle lmentaire avec des arcs noirs et/ou rouges et/ou verts (sans arc incolore) avec tous les arcs noirs dans le mme sens que u0 et les arcs verts sont dans le sens contraire de u0 2. il passe par l'arc u0 un co-cycle lmentaire non rouge (il peut y avoir des arcs incolores) avec les arcs noirs orients dans le mme sens que u0 et les arcs verts dans le sens inverse
Preuve
On utilise l'algorithme suivant 1. on marque s 2. si i est marqu, j un sommet non marqu, on marque j si soit il existe un arc noir ij = u0 soit il existe un arc rouge ij ou ji soit il existe un arc vert ji On poursuit le marquage jusqu' ce qu'on ne puisse plus rien marquer
u0 U. u0 : t s
Cas 1 : on a marqu t
(1) est vri.
On ne peut pas marque t Soit A l'ensemble des sommets marqus. pas de rouge verts : de A vers X A noirs : de X A vers A (2) est vri
Corollaire 1
Tout arc d'un graphe G appartient soit un circuit lmentaire, soit un cocircuit lmentaire
Preuve
On colorie tous les arcs en noir
Application
La valeur maximum de f (ur ) pour un ot ralisable f de R = (X, U, c) est gal la capacit minimum d'une coupe sparant p de s
4.3.
COUPE MINIMUM
31
Preuve
Soient f (u0 ), f (u1 ), . . . , f (un ) les valeurs d'un ot maximum compatibles avec les capacits. On colorie ur en noir : ur = u0 si u = ur et f (u) = 0, u est colori en noir si u = ur et 0 < f (u) < c(u), u est colori en rouge si u = ur et f (u) = c(u), u est colori en vert On applique le lemme de Minty. Si on arrive en cas 1 : = minu {c(u) f (u), f (u)}. Cas impossible car f est un ot maximum Donc la seule possibilit, c'est le cas 2
f (u) =
u+ (Y ) u (Y )
f (u)
c(u) = f (ur )
u+ (Y )
CQFD.
32
CHAPITRE 4.
FORD-FULKERSON
Chapitre 5
Flots canaliss
Problme
Trouver un ot maximum ayant la valeur maximum sur (ur ). f : U {ur } R avec la contrainte pour tout u U on a b(u) f (u) c(u). Flot maximum canalis
Algorithme de marquage
partir d'un ot ralisable f (b(u) f (u) c(u)) . y non marqu. x marqu. (x). u = xy On marque y . (y ) = min{ (x), c(u) f (u)} . y non marqu. x marqu. (x). u = yx On marque y . (y ) = min{ (x), f (u) b(u)}
33
34
CHAPITRE 5.
FLOTS CANALISS
Thorme de Homan
Une CNS pour qu'il existe un ot canalis est que pour tout cocycle (Y ) du graphe = (X, U ) on ait
b(u)
u (Y ) u+ (Y )
c(u)
Preuve
1. CN Il existe un ot canalis f tel que b(u) f (u) c(u) u U . f est un ot cocycle (Y )
f (u) =
u (Y ) u+ (Y )
f (u)
b(u)
u (Y ) u (Y )
f (u) =
u+ (Y )
f (u)
u+ (Y )
c(u)
2. CS On ne fait que le cas o b(u) R+ u U Algorithme de recherche d'un ot ralisable(compatible) Si f est un ot quelconque(ralisable ou non). On dnit d(f (u)) = 0 si f (u) [b(u), c(u)] d(f (u)) = b(u) f (u) si f (u) < b(u) d(f (u)) = f (u) c(u) si f (u) > c(u)
5.2.
35
On veut minimiser uU d(f (u)) = d(f ) (dcience) Si d(f ) = 0, on a un ot ralisable. Si d(f ) > 0, il existe u0 tel que f (u0 ) < b(u0 ), u0 est colori en noir (on traite de la mme faon si f (u0 ) > c(u0 )) Maintenant, si u tel que f (u) b(u) u est noir si u tel que b(u) < f (u) < c(u) u est rouge si u tel que f (u) c(u) u est vert On applique Minty (a) on a un cycle
= min{minu+ (c(u) f (u)), minu+ (f (u) b(u))} = 0. On change f et d(f ) dcrot.
f (u) c(u)
u+ (Y )
f (u)
u+ (Y )
b(u) >
u (Y ) u+ (Y )
c(u)
la condition n'est pas vrie l'algorithme ne termine lorsque d(f ) = 0 on a un ot ralisable.
Exemple
On a un ot compatible
t(u)
ppt 1
36
CHAPITRE 5.
FLOTS CANALISS
Thorme 1
La proprit 1 est quivalente la condition 2 : une application : X R U on a t(u) = (y ) (x) telle que xy
Preuve
1 2. On a t et on dnit . On prend un arbre couvrant enracin un sommet r
etc. . .
. u= xy
t(u)
1. t soit une tension sur le graphe ie on peut trouver une fonction potentiel U on ait t(u) = (y ) (x). (s) = 0 telle que u = xy 2. t(u) d u) pour tout u U 3. xX (x) soit maximum
Remarque
Dans le cas d'un graphe planaire, dualit entre ot et tension : ot de G tension de G (G est le graphe dual).
5.2.
37
Thorme
Le programme linaire A admet 1. une solution ralisable ssi R ne contient pas de circuit absorbant 2. une solution optimale ssi s est racine de R = (X, U, d)
Corollaire
(dual du thorme de Homan) : U R telles que t(u) t (u) u U . On considre G = (X, U ), t et t (u) est Une CNS pour que G possde une tension t telle que t(u) t(u) t que pour tout cycle de G et chaque sens de parcours on ait
t(u)
u u+
(u) t
38
CHAPITRE 5.
FLOTS CANALISS
Chapitre 6
Flot de cot minimum
f =
f (u1 )
. . .
. . .
. . .
f (un )
c(un )
39
40
CHAPITRE 6.
Exemples
1. Problme du plus court chemin R = (X, U, d). On a deux sommets s et p. On veut trouver un plus court chemin entre s et p.
R = (X, U , a, b, c) U = U {ur } ur = ps a(u) = d(u) b(u) = 0 c(u) = 1 u = ur a(ur ) = 0 b(ur ) = 1 c(ur ) = 1 capacits {0, 1} si on a un ot, les valeurs {0, 1} ot de cot minimum : plus court chemin de s p.
2. Flot maximum
u U, u = ur
ot de cot min = ot max 3. Problme de transport 3 usines : Paris, Strasbourg et Lyon (automobiles) Le mtal ncessaire displonible dans 2 ports : Marseille et Le Havre. Demandes :
400 tonnes pour Paris 300 tonnes pour Strasbourg par semaine 200 tonnes pour Lyon
Disponibilits 550 tonnes Marseille 350 tonne au Havre Cot (par tonne) Paris (1) Strasbourg (2) Lyon (3) Marseille (1) 5 6 3 Le Havre (2) 3 5 4 Plan optimal de transport : quelle quantit xij envoyer du port i la ville j telle que (a) les demandes sont satisfaites (b) quantits demandes ne dpassent pas quantits disponibles (c) quantits envoyes 0 (d) le cot de transport est minimum (a) x11 + x21 400
x12 + x22 300 x13 + x23 200
6.2.
PROPRITS
41
(c) xij 0 (d) 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 = z (in) Formulation du problme gnral ai les biens disponibles i {1, . . . , m} bi les biens demands j {1, . . . , n} dij le cot pour envoyer du port i la ville j xij quantits transportes du port i la ville j
n j =1 xij ai m i=1 xij bj n m j =1 i=1 dij xij
i { 1, . . . , m } i {1, . . . , n} = z (min)
xij 0
U = U1 U2 U3 {ur } ur = ps U1 = {sli /i {1, . . . , m}} U2 = i zj /i {1, . . . , m}, j {1, . . . n}} U3 = {zj p/j {i, . . . , n}} u = sli u = li zj u = zj p u = ur a(u) 0 dij 0 0 b(y ) ai 0 bj 0 c(u) ai bj
6.2 Proprits
Thorme 1
Une CNS pour qu'in ot ralisable f sur un rseau R = (X, U, a, b, c) satisfaisant b(u) f (u) c(u) soit une solution optimale au PFCM est que pour
CHAPITRE 6.
alors
a(u)
u+ u
a(u) 0
ppt 1
Preuve
f est optimal et que l'on ait pas ppt1) : il existe donc avec > 0 et ppt1 n'est pas vrie a(u)
u+ u
a(u) < 0
a(u)f (u) +
u+
a(u)f (u) +
u
a(u)f (u)
a(u)f (u) =
uU u /
a(u)f (u) +
u+
a(u)(f (u) + ) +
u
a(u)(f (u) )
a(u)f (u) =
uU u /
a(u)f (u)+
u+
a(u)f (u)+
u+
a(u) +
u
a(u)f (u)
u
a(u)
a(u)f (u) =
uU u /
a(u)f (u) +
u+
a(u)
u
a(u)
a(u)f (u) =
uU u /
a(u)f (u) + (
u+
a(u)
u
a(u))
uU
a(u)f (u)
Corollaire 1
(f ) = (X, U, t, t ). On Soit f ralisable sur R = (X, U, a, b, c). On associe R dnit t= sif (u) = b(u) a(u)sif (u) > b(u) (u) = t + sic(u) = f (u) a(u)sif (u) < c(u)
Une CNS pour que f soit optimale pour PFCM est qu'il existe une tension t (f ) compatible telle que t(u) t(u) t (u) u U sur R
6.2.
PROPRITS
43
Preuve
(u) u U Il existe une tension t(u) ralisable telle que t(u) t(u) t Pour tout cycle t(u)
u u +
(u) t
(1)
Si
= min{minu+ (c(u) f (u)), minu (f (u) b(u))} > 0 (1) > c(u) = f (u) u + (u) = a(u) u + t f (u) = b(u) u t(u) = a(u) u a(u)
u+ u
a(u)
>
a(u)
u+ u
a(u) 0
Corollaire 2
f ralisable sur R = (X, U, a, b, c). On associe R(f ) = (X, U , d) avec U = U U U et f (u) < c(u) alors u = U et d(u ) = a(u) u= xy xy U et d(u ) = a(u) u = xy U et f (u) > b(u) alors u = yx Une CNS pour que f soit une solution optimale de PFCM est que R ne
Preuve
(f ) a une tension ralisable ssi R n'a pas de circuit absorOn montre que R bant.
Corollaire 3
Une CNS pour qu'un ot ralisable f sur R = 5x, U, a, b, c) soit une solution optimale pour PFCM est qu'il existe U U et un systme de potentiel tel que 1. (X, U ) est connexe 2. les potentiels satisfont si u U (y ) (x) = a(u) et (y ) (x) < a(u) f (u) = b(u) si u = xy et (y ) (x) > a(u) f (u) = c(u) si u = xy
Preuve
t(u) = (y ) (x) pour u = xy t= sif (u) = b(u) a(u)sif (u) > b(u) (u) = t + sic(u) = f (u) a(u)sif (u) < c(u)
44
CHAPITRE 6.
U (u) u= xy (y ) (x) = t(u) = a(u) t(u) t(u) t (y ) (x) = t(u) < a(u) f (u) = b(u) t(u) = t(u) u= xy (u) t(u) t (y ) (x) = t(u) > a(u) f (u) = c(u) t (u) = + t(u) u= xy (u) t(u) t
R = (X, U, a, b, c)
1. f un flot compatible si un tel flot n'existe pas : termin 2. Ut tel que (x, Ut) est un arbre. Calculer pi pi(x)=0 pour un sommet si u dans Ut pi(y)-pi(x)=a(u) si f n'est pas solution optimale alors il existe ut=xy n'appartenant pas Ut tel que pi(y)-pi(x)>a(ut) et f(ut)<c(ut) ou pi(y)-pi(x)<a(ut) et f(ut)>b(ut) soit Gamma l'unique cycle qui contient ut et les arcs de Ut Gamma+ orient comme ut(cas 1) ou Gamma- orient comme ut(cas 2) On pose delta+ = min sur u dans Gamma+ de (c(u)-f(u)) et delta- = min sur u dans Gamma- de (f(u)-b(u)) delta = min(delta+, delta-) si delta=0, il existe u' dans Gamma tel que f(u')=c(u') ou f(u')=b(u') on enlve u' et on retire ut : on obtient un nouvel arbre. on recommence avec Ut=Ut+ut-u' si delta>0, on modifie le flot : f(u)+delta si u dans Gamma+ f'(u) = f(u)-delta si u dans Gammaf(u) sinon il existe u' tel que f'(u')=c(u') ou f'(u')=b(u') on recommence avec Ut=Ut+ut-u'
6.3.
ALGORITHME PRIMAL
45
Exemple
= 0
46
CHAPITRE 6.
(b) = 1 < f (u) = b(u) (b) = 1 < f (u) = b(u) (d) = 5 < f (u) = b(u) (d) = 7 < f (u) = b(u)
Toutes les conditions sont vries : le ot est optimal. cot = 49+0+40+8+1+0+4+9+4=115
Chapitre 7
Programmation linaire
7.1 Introduction
Problme
m2 .
m1 m2
30 40
20 minutes 10
On veut un plan de fabrication mensuelle qui maximise le prot. Soient x1 le nombre d'units de p1 produits x2 le nombre d'units de p2 produits
x1 0 x2 0
47
48
CHAPITRE 7.
PROGRAMMATION LINAIRE
Solution graphique
Les points l'intrieur de OABC satisfont les contraintes. D = {(x, y )/460x + 200y = }. Famille de droites C'est celle qui passe par B qui aura la plus grande valeur pour le prot.
units de p2
bi = z (max)
A = (aij )1im
1j n
A.x b x 0 cx = z (max)
7.3.
49
Ai : vectuer ligne correspondant la ligne i de A J {1, . . . , n}. XJ (resp C J ) est le |J |-vecteur colonne (resp ligne) dont les composantes sont xj (resp cj ) pour j J . AJ : m |J | matrice. AJ = [Aj ]j J AI : |I | n matrice. AI = [Ai ]iI j J AJ I : |J | |I | matrice. AI = [Ai ] iI
j J
Exemple
2 A= 1 0 1 1 0 2 0 1 0 0 0 8 b= 7 3 0 0 1 x= x1 x2 x3 x4 x5
c = (4, 5, 0, 0, 0) 2 J = (1, 2, 5) AJ = 1 0
1 2 0
0 0 1
x1 XJ = x2 x5
Avec A matrive m n, b vecteur colonne de taille m, x vecteur colonne de taille n, c vecteur ligne de taille n.
Remarque
AX b cX = z (min)
50 On prend
CHAPITRE 7.
PROGRAMMATION LINAIRE
A =
A A
b =
b b
(on a 2m lignes)
AX = b A X b
On prend
A =
X =
C =
AX =b C X = z (max)
Exemple
2x1 + x2 x1 + 2x2 (P C ) x2 4x1 + 5x2 8 7 3 = z (max) 2x1 + x2 + x3 =8 x1 + 2x2 + x4 =7 x2 + x5 = 3 4x1 + 5x2 = z (max)
Dnition 3
La solution de base associe : XJ = [AJ ]1 b et xj = 0 si j /J
7.4.
51
Exemple
2x1 + x2 + x3 =8 x1 + 2x2 + x4 =7 x2 + x5 = 3 4x1 + 5x2 = z (max) 1 0 0 J = {3, 4, 5} AJ = 0 1 0 0 0 1 1 0 0 8 8 XJ = (AJ )1 b = 0 1 0 7 = 7 0 0 1 3 3 x3 = 8 x4 = 7 x5 = 3 x1 = x2 = 0
Thorme 1
(P ) AX = b CX = z (max) X 0 AX = b de plein rang
Soit J une base de (P ). Y = (y1 , . . . , ym ) un vecteur ligne quelconque. Alors (P ) est quivalent J 1 b XJ + [AJ ]1 AJ XJ = [A ] J J J (C Y A )XJ + (C Y AJ )XJ = z (max) Y b
Preuve
= {1, . . . , n} J J AX = b (AJ AJ )X = b A = (AJ AJ ) J J J A XJ + A XJ A inversible =b J 1 (AJ )1 AJ XJ + (AJ )1 AJ XJ b = (A ) J 1 J 1 J b XJ + (A ) A XJ = (A )
Cot : Y vecteur Y AX = Y b
Dnition 4
Soit Y = /AJ = C J = C J [AJ ]1 Soit = b J 1 Alors (P ) peut s'crire XJ + [AJ ]1 AJ XJ b = [A ]
(C J AJ )XJ = z (max)
1. = C J [AJ ]1 est le vecteur multiplicatif relativement la base. = C A = C J J 2. C AJ = C est le vecteur cot relatif la base
52
CHAPITRE 7.
PROGRAMMATION LINAIRE
Par dnition, on dit qu'un programme linaire est crit sous forme canonique relativement la base J si 1. AJ est une permutation prs la matrice unit 2. C J = 0
Exemple
x1 + x3 = 2 x1 + x2 + 2x3 = 1 x1 + 2x2 + 3x3 = z (max) J = {1, 2} AJ = 1 1 0 1 x1 0 x2 0 x3 0 det(AJ ) = 1
Solution de base :
XJ = (AJ )1 b xj = 0 j J x1 x2 = 1 1 0 1 2 1 = 2 3
= (C J C AJ ) = 3 (3, 2)
= 3 7 = 4 = x3 2 3 1 3
(AJ )1 AJ =
1 1
0 1
(AJ )1 AJ XJ = x1 x2 + 1 3
7.5.
LE PIVOTAGE
53
7.5 Le pivotage
1.
(P ) AX = b x0 CX = z (max) P ( ) AX b CX = z (max)
2. Dnition
M=
A C
Algorithme de pivotage
Pivotage(m,n,r,s,A) //A_r^0 != 0 { Pour j de 1 n faire A_r^j = (A_r^j)/(A_r^s) Pour i de 1 m, i!=r faire Pour j de 1 n faire A_i^j = (A_i^j) - (A_i^j)(A_r^j) }
Exemple
M= 1 2 2 3 1 1 5 7 M = 1 2 0 1 5 1 3 M = 1 0 0 1 1 1 1 3 pivotage(2, 4, 1, 1, M ) pivotage(2, 4, 2, 2, M ) pivotage(2, 4, 1, 1, M )
Thorme
Soit e programme linaire
(P ) Ax = b x 0 cx = z (max)
crit sous forme canonique relativement la base J . Soit s J et r {1, . . . , m} tel que As r =0 Soit t J tel que At = 1 r Soit
M= A b c
54
CHAPITRE 7.
PROGRAMMATION LINAIRE
qui est le programme linaire crit sous forme canonique relativement la base J = J {s} {t} avec = + cc + br /As r
Thorme
Si c le vecteur cot relativement une base ralisable J est ngatif ou nul, alors la solution de base correspondante est solution optimale du programme linaire.
Preuve
x solution de base relativement J . x solution de base quelconque. J 1 J 1 J b = [A ] XJ + [A ] A XJ J J (c A ) XJ (P C ) = z (max)
C
x solution ralisable z = cx = b +
iJ
c j xj
z = cx = b +
iJ
c j xj c j xj
j J
zz =
Chapitre 8
Aldorithme du simplexe
forme canonique relativement une base ralisable J . AJ est une permutation prs de colonnes la matrice identit b0 cJ = 0
Remarque
Col : {i, . . . , m} J tel que Aj i = 1 si Col(i) = j 0 si j J, j = Col(i)
Exemple
2 A= 0 2 1 0 1 1 0 0 0 0 1 0 1 0 J = {3, 4, 5} Col(1) = 3 Col(2) = 5 Col(3) = 4 Col(1) = 3 Col(2) = 4 Col(3) = 5
J = {3, 4, 5}
55
56
A1 1 x1 1 A2 x1 A1 n x1 1 c x1
CHAPITRE 8.
ALDORITHME DU SIMPLEXE
+x2 + x3
= b1 = b2
(P P )
. . .
+ xm+1 = bm = z (max)
1
A1 1 x1 b1 A1 2 x1 b2 A1 m x1 bm c x1 = z (max)
(P P C )
. . .
[0, bi /A1 i]
2 cas possibles 1. Si I = alors D = {x1 /x1 0} 2. Si I = alors D = {x1 /0 x1 M in[bi /A1 i ]} Si c1 0, la matrice de base relativement J est optimale Si c1 > 0. On augmente x1 alors c1 x1 augmente. 1. x1 peut augmenter indniement donc pas de solution borne. z crot indniement. 2. I = 0 On pose x 1 = M in(bi /A1 i ). Doit r l'indice pour lequel le minimum est atteint. 1 1 On prend pour les autres valeurs x i+1 = b 1 = bi A1 r = bi Ai x i br /Ar . Par construction, x est ralisable. Quelle est la solution de base ?
A1 1 x1 A1 2 x1 +x2 + x3 = b1 = b2
. . . . . .
A1 r x1 A1 m x1
+ xr+1
= br
+ xm+1 = bm
{r + 1}
8.3.
57
A1 1
1 0
..
...
. . . . . .
..
. .
..
...
.. ..
. . .
.. ..
. .
. . . . . .
b1
0 ... 0 ...
... ...
0 ...
0 1 bm 0 0
. . . . . . . . .
. . .
(P P )
X1
. . .
A1 r Xr +1
1 A1 n /Ar Xr +1 1 1 C /Ar Xr+1
. . .
Xm+1
1 = b1 A1 1 br /Ar
. . .
br /A1 r 0
. . .
0 0
1 = b1 A1 1 br /Ar 1 = b1 A1 br /A1 r
. . .
Thorme 1
(P P ) Ax = b Cx = z (max) x0
forme canonique par rapport la base raisable J . Soit s l'unique indice / J. Si 1. C s > 0 2. I = {i/As i > 0} = s 3. r est dni par br /As r = miniJ (bi /Ai ) Alors l'algorithme de pivotage(m + 1, m + 2, r, s, M ) avec
M= A b c
transforme M en la matrice des coecients du programme linaire (P P ) crit sous forme canonique relativement la base optimale J = J s Col(r)
58
CHAPITRE 8.
ALDORITHME DU SIMPLEXE
On ne peut pas appliquer le thorme. Soit s / J tel que C s > 0 et on fait croitre XJ le plus possible. Exemple : on augmente x2 sans s'intresser x1
x2 + x3 =8 2x2 + x4 =7 P P1 (J, 2) x2 + x5 = 3 5x2 = z (max)
2 Solution optimale : x2 = 3 : b3 /A2 3 = min(bi /Ai ) Astuce : on applique le pivot tout P1 : pivotage(4, 6, 3, 2, M )
2 1 M = 0 4
1 2 1 5
1 0 0 0
0 1 0 0
0 0 1 0
8 7 3 0
2 0 1 0 1 5 1 0 0 1 2 1 M = 0 1 0 0 1 3 4 0 0 0 5 15
P1
J = J {2}
{5}
On ne peut pas dire que J est optimale car c1 > 0. Mais z a augment ! On fait la mme chose. On augmente x1 , sans s'intresser x5 .
2x1 + x3 =5 x1 + x4 = 1 P P1 (J , 1) + x2 =3 4x1 = z (max) 15
1 Solution optimale x1 = 1. b2 /A1 2 = min(bi /Ai ). La deuxime quation bloque x1 . 1 va entrer dans la base et 4 va en sortir.
{4}
2 0 1 0 1 5 1 0 0 1 2 1 M = 0 1 0 0 1 3 4 0 0 0 5 15
0 1 M = 0 0
0 0 1 0
1 2 3 3 0 1 2 1 0 0 1 3 0 4 3 19
P1 =
x1 x2
J = {1, 2, 3}
8.4.
ALGORITHME DU SIMPLEXE
59
P P1 (J , 5) =
x1 x2
I = {1, 3}
5 1 = min(bi /A5 i ) = b1 /A1 J = J {5} {3} = {1, 2, 3} P ivotage(4, 6, 1, 5, M ) 0 0 1/2 2/3 1 0 2/3 1/3 M = 0 1 1/3 2/3 0 0 1 2
1 1 0 3 0 2 0 22
est optimal !
x1 2 3 x4 + x5 = 1 + 1 =3 3 x4 +2 x =2 x2 3 4 x3 2x4 = z (max) 22
1 2 x3 2 3 x3 1 3 x3
P1
J = {1, 2, 3} CJ < 0 x1 = 3 x2 = 2 x5 = 1 x3 = x4 = 0 z = 22
60
CHAPITRE 8.
ALDORITHME DU SIMPLEXE
Deux rgles qui garantissent la nitude dans le cas gnral (rgle de RG Blanot, 1977) 1. Choisir s le plus petit tel que C s > 0 2. Choisir r le plus petit dans K
Dnition
Une base J telle que le cot relatif J est ngatif ou nul est appele base optimale.
8.5.
61
Exemple
A= 2 1 1 3 2 5 b= 1 2 c = (1, 1, 0)
x1 X = x2 x3
1 1 0 = w(min)
Plus gnralement
1 A1 X1 1 A 2 X1 (P ) ... 1 A X1 m C 1 X1 + + + + A2 1 X2 A2 2 X2 ... A2 m X2 C 2 X2 + + + + + C n Xn An 1 Xn An 2 Xn ... An m Xn = b1 b2
..
+ +
bm z (max)
1 1 Y A1 1 2 Y A1 (D) ... 1 n Y A1 Y 1 b1
+ +
Y 2 A1 2 Y 2 A2 2
+ +
... + Y 2 An 2 + Y 2 b2
..
+ + + Y n cn
Y m A1 m Y m A2 m ... Y m An m =
c1 c2
+ +
cn w(min)
62
CHAPITRE 8.
ALDORITHME DU SIMPLEXE
Thorme 1
Le dual au dual est le primal.
Thorme 2
Soit (P ) et (D) un couple de programmes linaires duaux
(P ) Ax b cx = z (max) x0 (D ) yA c yb = w(min) y0
Preuve
Laisse en exercice
cy A cx y Ax y b
Corollaire
Si x et y sont des solution ralisables des programmes (P ) et (D) et si cx y b alors 1. cx =y b 2. barx et y sont des solutions optimales pour les programmes linaures duaux (P ) et (D) Certicat d'optimalit
Thorme 4
Si 2 programmes linaires duaux (P ) et (D) ont l'un et l'aurte une solution ralisable, alors ils ont l'un et l'autre une solution optimale et les valeurs des fonctions cot sont gales l'optimum.
8.6.
63
Preuve
(P ) Ax b cx = z (max) x0 (D ) yA c yb = w(min) y0
On a cx y b La fonction objective de (P ) est borne suprieurement. La fonction objective de (D) est borne infrieurement. Donc il existe des solutions optimales pour (P ) et (D). Soit J la base optimale de (P )
(P )
J 1 XJ + [AJ ]1 AJ XJ b = [A ] J J (C A )XJ = z (max)
avec = b
Ecriture canonique relativement la base J c = c A : vecteur cot relatif la base. base optimale c 0 A c est une solution ralisable du dual. b = w ==z Les 2 fonctions ojectives sont gales. est solution optimale de (D).
La ieme contrainte du programme linaire sera dite serre si Ai x = bi . Elle sera dite lache si Ai x < bi .
Preuve
(P ) Ax b cx = z (max) Ax + e = b cx = z (max) x0 (D ) yA c yb = w(min) yA f c yb = w(min) y0
(P )
x, e 0
(D )
y, f 0
64
CHAPITRE 8.
ALDORITHME DU SIMPLEXE
x , e solution ralisable de (P ). solution ralisable de (D). y , f On multiplie la ieme contrainte de (P ) par y i et on fait la somme y Ax +y e = y b 1 On multiplie la j eme contrainte de (D) par xj et on fait la somme y Ax fx = cx 2 12 : y e + f x =y b cx 3
Condition ncessaire : x est solution optimale de (P ) et y est solution optimale de (D) 3 y e + f x =y b cx = 0 (car y b = w = cx =z )
m n
y i ei +
i=1 j =1
Si y i > 0 ci = 0 la ieme contrainte est serre si ei > 0 la ieme contrainte est lache et y i = 0 (Ai x + ei = bi ) si fj > 0 la j eme contrainte est lache et xj = 0 (y Aj f j = cj ) Si xi > 0 fj = 0 la j eme contrainte est serre Condition susante : 3 y b cx = 0 fonction objectives gales optimales
Exemples
2x1 + x2 3 x1 + 3x2 4 (P ) x1 + x2 = z (min) x 1 = 1, x 2 = 1 optimal ? 2y 1 + y 2 1 y 1 + 3y 2 1 (D) 3x1 + 4x2 = w(max) x 1 > 0 x 2 > 0 z =2 6 w =5 +
4 5
x0
2y 1 + y 2 = 1 y 1 + 3y 2 = 1
5y 2 = 1 y 2 = 1 /5 1 y = 1 3y 2 = 1 3/5 = 2/5
=2
Chapitre 9
Sparation et Evaluation Branch and Bound
Algorithme polynomial pour le PL en variables relles. PLI est NP-complet. Heuristique, sparation valuation, programmation dynamique.
66
CHAPITRE 9.
SPARATION ET EVALUATION
Exemple
10x1 + 8x2 + 5x3 = z (max) 6x1 + 5x2 + 4x3 9 xj N 1 j 3
Pivotage partir de x1
6x1 + 5x2 + 4x3 9 10x1 + 8x2 + 5x3 = z (max)
3 5 x2 + 2 x1 + 6 3 x3 2 1 5 3 x2 3 x3 = z (max) 15 3 Solution de base : x 1 = 2 x 2 = x 3 = 0 z = 15 On arrondi : x1 = 1 x2 = x3 = 0 z = 10 Les systme a une solution qui est x1 = 0 x2 = 1 x3 = 1 z = 13
Exemple
5 8 5 x1 = 10 6 = 3 ; x2 = 5 : x3 = 4 x1 = 1 ; x2 = 0 ; x3 = 0 ; z = 10 (mme solution - hazard ! !)
9.5.1
Sparation
Sparer l'ensemble des solutions contenues dans un sommet (on ne les connait pas toutes)
9.5.
67
Exemple
9.5.2
borne : valeur de z atteinte par une solution ralisable minorant du maximum Dans l'exemple, 10 est un minorant valuer un sommet de l'arborescence : trouver un majorant de la valeur de la fonction z (cot) pour cet ensemble de solutions Dans notre exemple : 15 est un majorant de la racine Donc on ne dveloppe pas un sommet si l'valuation est infrieure la borne si l'valuation est exacte et si suprieure la borne, on met la borne jour et on continue
9.5.3
Stratgie de dveloppement
Premire stratgie : en profondeur. Deuxime stratgie : on spare les sommets qui ont la plus grande valuation en suspectant que la solution optimale se trouve dans cet ensemble (stratgie du meilleur d'abord). Troisime stratgie : en largeur.
9.5.4
Fonction d'valuation : solution donne par le simplexe Borne : 10 (donne par les heuristiques)
68
CHAPITRE 9.
SPARATION ET EVALUATION
la somme des valeurs en un sommet =2 Y X le bombre d'artes ayant ses 2 extrmits dans Y < |Y |
puv xuv = z (min) u X v X xuv = 2 Y X avec Y =X uv E xuv {0, 1}
uY v Y
xuv < |Y |
Sparation et valuation une chane dans un graphe est un arbre particulier. Si on a un cycle hamiltonien x0 V , x0 cycle. On supprime x0 . On obtient une chane. Le poids de cette chaine est suprieur au poids de l'arbre couvrant de poid minimum de G {x0 } cycle hamiltonien et sommet u de degr 2 puv + puw poids des 2 artes incidentes les plus lgres. Le poids d'un cycle hamiltonien uv + uw les + legers+ (T ) poids minimum de l arbre couvra C'est un minorant : fonction d'valuation
9.6.
69
Mthode de sparation de d'valuation Une borne est calcule. x0 V . La racine de l'arborescence contient tous les cycles hamiltoniens possibles On arrive en S on value si l'valuation est suprieure la borne, on ne dveloppe pas sinon on construit le graphe partiel H si H est hamiltonien, l'valuation est exacte. On ne pourra pas faire mieux. Si c'est infrieur la borne, on met la borne jour si H n'est pas hamiltonien, on spare. H contient un sommet u de degr suprieur 2. On prend les artes incidentes u dans H : e1 , e2 , . . . , ei
Exemple
Dtermination d'une borne. On prolonge une chaine en prenant l'arte de poids minimum cycle hamiltonien : B=17
Evaluation pour x0 = x
70
CHAPITRE 9.
SPARATION ET EVALUATION
Evalution = 13 Ce n'est pas un cycle hamiltonien On a pris les 2 artes de poids minimum partant de x. Ensuite, grce Kruskal ou Prim, on prend un arbre couvrant (sur le graphe {x}) de poids minimum.
Ce n'est pas un cycle hamiltonien un sommet de degr duprieur 2. On prend y : 1 {xy } interdite
On prend les artes les plus lgres incidentes x E = 13. Ce n'est pas un cycle hamiltonien
9.6.
71
Evaluation=14 Artes vertes +artes bleues = cycle hamiltonien Donc on change la borne : B=14
3 {yu} interdite
Evaluation : 2+4+8=14=B. Evaluation gale la borne donc ce n'est pas la peine de dvelopper la branche, il n'y aura pas mieux que 14
4 {xt} interdite
72
CHAPITRE 9.
SPARATION ET EVALUATION
5 {ty} interdite
Evaluation=14=B Donc on ne dveloppe pas cette branche. Ce n'est pas la peine de continuer
6 {tz} interdite
9.6.
73