Théories des graphes et programmation linéaire
Théories des graphes et programmation linéaire
i
CONTENTS ii
5 Dualité 42
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Interprétation de la dualité . . . . . . . . . . . . . . . . . . . . . 43
5.3 Forme canonique du dual . . . . . . . . . . . . . . . . . . . . . . 45
5.4 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Contents
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Applications . . . . . . . . . . . . . . . . . . . . . . 5
1
1.1. INTRODUCTION 2
1.1 Introduction
Soit le graphe ci-dessous:
• On dit que deux sommets sont adjacentes s’ils sont reliés par une arête.
• Le degré d’un sommet est le nombre d’arêtes dont ce sommet est une
extrémité.
Définition
• Un graphe est Complet si chaque sommet est adjacent à tous les autres.
• Un sommet est isolé s’il n’est adjacent à aucun autre sommet.
Notation
Un graphe complet d’ordre n est noté Kn .
Remarque
∀n ≥ 2, le nombre d’arêtes d’un graphe complet Kn est Cn2 .
Lemme de poignées de main
La somme des degrés des sommets d’un graphe est égale à deux fois le nombre
des arêtes de ce graphe.
Conséquence
Le nombre des sommets de degrés impair d’un graphe est pair.
Exemple
• Une chaine est dite fermée si son origine et son extrémité sont confon-
dues.
Notation
La chaine S0 , a1 , S1 , a2 , S2 , a3 , ..., an , Sn est notée S0 − S1 − S2 , −, ..., −Sn .
Définition: ”Connexe”
Un graphe G est dit connexe si on peut relier deux quelconques de ses sommets
par une chaine.
Définition: ”Chaine eulérienne/Cycle eulérien”
Remarque
Une chaine eulérienne ne peut pas contenir plusieurs fois la même arête, mais
elle peut passer plusieurs fois par le même sommet.
Théorème 1: ”Euler”
Un graphe connexe G admet une chaine eulérienne si et seulement si tous ses
sommets sont de degré pair ou deux uniquement de ses sommets sont de degré
impair (ce sont les extrémités de la chaine).
Théorème 2: ”Euler”
Un graphe connexe G admet un cycle eulérien si et seulement si tous ses som-
mets sont de degré pair.
• Un graphe pondéré est un graphe dont les arêtes sont affectées à des
coefficients positifs.
• Le poids d’une chaine est la somme des coefficients des arêtes qui le
composent.
• Une plus courte chaine entre deux sommets est parmi les chaines qui
les relient une chaine de poids minimum.
1.4 Applications
Exercice 1
Une personne souhaite inviter six amis qui nous désignons 1, 2, 3, 4, 5 et 6.
Malheureusement, certains de ces six amis ont des relations difficiles, ce sont
celles recensés dans le tableau suivant:
1 2 3 4 5 6
En relation difficile avec 2 1, 5, 6 5 5 2, 3, 4, 6 2, 5
2. Relier deux points représentant deux personnes ayant une relation diffi-
cile.
3. Résoudre le problème (P ).
Exercice 2
Dessiner un graphe d’ordre 4 telque chaque sommet est adjacent à tous les
autres.
Exercice 3
• A adjacent à C, D et E.
• B adjacent à D.
• C adjacent à A et E.
Exercice 4
Soit les graphes suivants:
2. Conclure.
Exercice 5
Dans un graphe (G), on considère la chaine:
A−B−C −B−D−A−E−B−C −X −Y
2. Déterminer une autre chaine de (G) qui débute par A et se termine par
Y.
Exercice 6
Parmi ces graphes, reconnaitre ceux qui sont connexe en justifiant.
Exercice 7
Cinq pays sont représentés ci-dessous avec leur frontière.
2. De quel pays doit-on partir pour visiter tous les autres pays en fran-
chissant chaque frontière une fois et une seule?
3.
Donc, 4 personnes.
Correction exercice 2
Correction exercice 4
A/
B/ Conclusion:
• G1
I Connexe.
I Admet une chaine eulérienne (tous les sommets sont de degré paire).
I Admet un cycle eulérien.
• G2
I Connexe.
I Admet une chaine eulérienne.
I N’admet pas un cycle eulérien.
• G3
I Connexe.
I Admet une chaine eulérienne.
I Admet un cycle eulérien.
• G4
I Connexe.
I Admet une chaine eulérienne (tous les sommets sont de degré paire).
I N’admet pas un cycle eulérien.
Correction exercice 5
2. A-E-B-C-X-Y :(G’).
Modélisation par la
programmation linéaire
Contents
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Applications . . . . . . . . . . . . . . . . . . . . . . 14
11
2.1. INTRODUCTION 12
2.1 Introduction
Les problèmes de programmation linéaires sont généralement liés à des prob-
lèmes d’allocation des ressources limitées, de la meilleur façon possible, afin de
maximiser un profit ou de minimiser un cout.
Le terme meilleur fait référence à la possibilité d’avoir un ensemble de décisions
possible qui réalisent la même satisfaction ou le même profit. Ces décisions
sont en général le résultat d’un problème mathématique.
Exemple
Une entreprise fabrique des portes et des fenêtres. Les profits réalisés sont de
30d par porte et 50d par fenêtre.
L’entreprise dispose de 3 ateliers :
Pour produire une porte, il faut 1h dans l’atelier N1 et 3h dans l’atelier N3 .
Pour produire une fenêtre, il faut 1h dans l’atelier N2 et 2h dans l’atelier N3 .
− L’atelier N1 est disponible pendant 4h par jour.
− L’atelier N2 est disponible pendant 12h par jour.
− L’atelier N1 est disponible pendant 18h par jour.
Combien de fenêtres et des portes doit-on produire afin de réaliser le profit
total de l’entreprise ?
• Mise en équation
Soit
x1 : Nombre des portes produites par jour.
x2 : Nombre des fenêtres produites par jour.
(Remarque: x1 et x2 sont les variables de décisions)
Profit: z = 30x1 + 50x2 (d/j)
Nombre d’heures consommées par jours dans chaque atelier:
1x1 + 0x2 ≤ 4h
≤
0x + 1x
1 2 12h
3x1 + 2x2 ≤ 18h
x ≥ 0, x ≥ 0
1 2
4. Evaluer le programme linéaire pour voir s’il respecte bien les énoncés
(fonction objectif et contraintes).
Où les coefficients ci doivent avoir des valeurs bien déterminées et peuvent être
positifs, négatifs ou nuls.
Supposons que ces variables de décisions doivent vérifier un système d’équations
linéaires définie par M inégalités (>, <, ≤ ou ≥) ou égalités.
a11 x1 + a12 x2 + ... + a1n xn ≤ (ou ≥ ou =) b1
a21 x1 + a22 x2 + ... + a2n xn ≤ (ou ≥ ou =) b2
..
.
aM 1 x1 + aM 2 x2 + ... + aM n xn ≤ (ou ≥ ou =) bn
avec aij et bj doivent avoir des valeurs bien déterminées et peuvent être positifs,
négatifs ou nuls.
En suivant les étapes de formulation ci-dessus, on peut représenter le pro-
gramme linéaire (P.L) comme suit:
2.4 Applications
Exercice 1 ’Problème d’agriculture’
Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de
tomates et celles de piments. Il dispose de 480 heures de main d’oeuvre et de
440 m3 d’eau. Un hectare de tomates demande 1 heure de main d’oeuvre, 4 m3
d’eau et donne un bénéfice net de 100 dinars. Un hectare de piments demande
4 heures de main d’oeuvre, 2 m3 d’eau et donne un bénéfice net de 200 dinars.
Le bureau du périmètre irrigué veut protéger le prix des tomates et ne lui
permet pas de cultiver plus de 90 hectares de tomates. Quelle est la meilleure
allocation de ses ressources ?
Réponse:
Soit
x1 : Surface allouer pour la tomate.
x2 : Surface allouer pour le piment.
1x1 + 4x2 ≤ 480
4x1 + 2x2
≤ 440
s.c : x1 ≤ 90
x1 + x2 ≤ 150
x ≥ 0, x ≥ 0
1 2
M inZ : x1 + x2
2x1 + 1x2 ≥ 12
≥
5x + 8x
1 2 74
s.c :
1x1 + 6x2 ≥ 24
x ≥ 0, x ≥ 0
1 2
M1 M2 M3
P1 11 mn 7 mn 6 mn
P2 9 mn 12 mn 16 mn
11x1 + 9x2 ≤ 165 × 60 = 9900
≤ 140 × 60 = 8400
7x + 12x
1 2
s.c :
6x1 + 16x2 ≤ 160 × 60 = 9600
x1 ≥ 0, x2 ≥ 0
Exercice 4 ’Problème d’alimentation’
On se propose de réaliser une alimentation économique pour des bestiaux,
qui contient obligatoirement 4 sortes de composants nutritifs, A, B, C et D.
L’industrie alimentaire produit précisément deux aliments M et N qui conti-
100x1 + 0x2 ≥ 0.4 × 1000 = 400
0x1 + 100x2 ≥ 0.6 × 1000 = 600
s.c : 100x1 + 200x2 ≥ 2 × 1000 = 2000
200x1 + 100x2 ≥ 1.7 × 1000 = 1700
x1 ≥ 0, x2 ≥ 0
⇐⇒
Télévision
Radio Journaux
Locale Par satellite
Coût d’une publicité 40 DT 75 DT 30 DT 15 DT
Nombre de client 400 900 500 200
potentiel par publicité
Nombre de client 300 400 200 100
potentiel femme par publicité
Pour la campagne, on prévoit de ne pas payer plus que 800DT pour toute la
campagne et on demande que ces objectifs soient atteints :
• Au minimum 2000 femmes regardent, entendent ou lisent la publicité.
• La campagne publicitaire dans la télévision ne doit pas dépasser 500 DT.
• Au moins 3 spots publicitaires seront assurés par la télévision locale et
au moins de deux spots par la télévision par satellite.
• Le nombre des publicités dans la radio ou dans les journaux sont pour
chacun entre 5 et 10.
Réponse:
Soit
x1 : Nombre de client potentiel pour la télévision locale.
x2 : Nombre de client potentiel pour la télévision par satellite.
x3 : Nombre de client potentiel pour la radio.
x4 : Nombre de client potentiel pour les journaux.
40x1 + 75x2 + 30x3 + 15x4 ≤ 800
300x1 + 400x2 + 200x3 + 100x4 ≥ 2000
40x1 + 75x2 ≤ 500
≥ 3
x 1
s.c :
x2 ≥ 2
5 ≤ x3 ≤ 10
5 ≤ x4 ≤ 10
x1 , x2 , x3 , x4 ≥ 0
Contents
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . 24
20
3.1. INTRODUCTION 21
3.1 Introduction
Le présent chapitre étudiera les méthodes de résolution pratique d’un pro-
gramme linéaire. La méthode graphique est l’une des premières méthodes
utilisées à ce sujet. Toutefois si on parle de résolution graphique alors on doit
se limiter à une représentation à deux variables et au plus à trois variables.
Pour généraliser, on va étudier les problèmes à n variables, il y a trois familles
d’algorithmes résolvant les programmes linéaires: le simplexe, les ellipsoı̈des et
les points intérieurs.
Dans ce cours on s’intéressera à la méthode de simplexe.
3. Trouver la (où les) meilleur(s) solution(s) parmi toutes les solutions réal-
isables.
2x1 + x2 ≤ 70
≤
x +x
1 2 40
s.c :
x1 + 3x2 ≤ 90
x1 ≥ 0, x2 ≥ 0
Chaque contrainte représente géométriquement un demi-plan. L’intersection
des demi-plans déterminés par les droites représente l’ensemble des solutions
qui satisfont aux contraintes. Graphiquement, on peut les schématiser dans
un repère (x1 , x2 ).
Définitions
Dans notre exemple, le point (15, 10) appartient au DR. Ce point est dit réal-
isable. Par contre le point (30, 20) n’y appartient pas, parce qu’il ne satisfait
pas les contraintes: Ce point est dit non réalisable.
Par la suite, pour trouver la solution optimale (s’il en existe une) il suffit
d’examiner les points extrêmes de la région réalisable (rappelons que la PL est
un problème d’optimisation combinatoire). Dans la figure, on observe 5 points
extrémaux dont le point (15, 25) est optimal.
Caractéristique d’un PL
Le domaine réalisable d’un programme linéaire est ou bien vide ou un polyèdre
(c’est-à-dire convexe).
Théorème Pour un programme linéaire donné, si un optimum existe, au moins
un point extrême est optimal.
Corollaire Si un programme linéaire admet un optimum unique alors cet
optimum doit être un point extrême.
Les démonstrations de ces résultats ne sont le sujet de ce cours.
L’ensemble des solutions réalisables pour un problème à 2 variables est représenté
graphiquement par un polyèdre dans le plan. Pour un problème de taille plus
élevée, on peut encore lui associer un polyèdre avec des sommets, des faces,
des arêtes, mais qui ne peut plus donner lieu à une représentation géométrique,
sauf si on reste dans R3 .
3.3 Exemples
Dans cette section on donne quelques exemples de résolution graphique de
problèmes linéaires relatifs au différents cas possibles:
x1 + x2 ≤ 150
4x1 + 2x2
≤ 440
s.c : x1 + 4x2 ≤ 480
x1 ≤ 90
x ≥ 0, x ≥ 0
1 2
x1 ≤ 5
s.c : 2x1 − 3x2 ≤ 6
x1 ≥ 0, x2 ≥ 0
x1 + 2x2
≤ 2
s.c : 2x1 + 4x2 ≥ 8
x1 ≥ 0, x2 ≥ 0
L’espace des solutions réalisables est vide, il est l’intersection des deux zones
grises.
2x1 + 6x2 ≤ 30
≤
x 1 10
s.c :
x2 ≤ 4
x1 ≥ 0, x2 ≥ 0
L’ensemble des points décrit par le segment [AB] représente les solutions op-
timales du problème linéaire.
3x1 + 2x2 ≤ 40
≤
x 1 10
s.c :
x2 ≤ 5
x1 ≥ 0, x2 ≥ 0
Contents
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 29
4.7 Applications . . . . . . . . . . . . . . . . . . . . . . 35
4.8 Exemple 1 . . . . . . . . . . . . . . . . . . . . . . . . 35
4.9 Exemple 2 . . . . . . . . . . . . . . . . . . . . . . . . 38
28
4.1. INTRODUCTION 29
4.1 Introduction
Un programme linéaire (PL) mis sous la forme particulière où toutes les con-
traintes sont des équations et toutes les variables sont non négatives est dit
sous forme standard. Il est noté (PL=).
c. Le vecteur de variables obtenu est appelé solution de base (il contient les
variables de base et les variables hors base).
10x1 + 5x2 ≤ 200
2x1 + 3x2
≤ 60
s.c : x1 ≤ 34
x2 ≤ 14
x1 ≥ 0, x2 ≥ 0
Programme linéaire standard
10x1 + 5x2 + e1 = 200
2x1 + 3x2 + e2 = 60
s.c : x1 + e3 = 34
x2 + e4 = 14
x ,x ,e ,e ,e ,e ≥ 0
1 2 1 2 3 4
• L’encadré vert correspond aux Zj : c’est à dire les coefficients dans ×ai .
0 × 10 + 0 × 2 + 0 × 1 + 0 × 0 = 0
Les encadrés roses correspondent aux coefficients (Cj ) des variables dans la
fonction objectif (Z).
L’encadré gris correspond à la valeur des variables de base.
L’encadré orange correspond à la valeur de Z, donc la valeur de la fonction
objectif qui se calcule de la façon suivante:
0 × 200 + 0 × 60 + 0 × 34 + 0 × 14 = 0
bi
, aik > 0
aik
Dans notre exemple, nous devons évaluer:
Var. entrante
La cellule bleue est nommée le pivot. Pour passer au tableau suivant et donc
effectuer la première itération, il est essentiel d’utiliser le pivot.
Le pivotage s’effectue de la manière suivante:
On commence par diviser la ligne du pivot par le chiffre du pivot.
Dans notre exemple, on divise par 1.
Nous poursuivons avec la matrice identité pour les variables de base. Nous
inscrivons 1 à l’intersection de chaque variable et 0 ailleurs.
Nous devons calculer les nouvelles valeurs pour les cases restantes à partir du
tableau précédent (tableau initial pour la première itération).
Tableau initial:
3∗1
0− = −3
1
4.7 Applications
4.8 Exemple 1
(P L) M axZ : 30x1 + 50x2
x1 ≤ 4
≤
2x2 12
s.c :
3x1 + 2x2 ≤ 18
x ≥ 0, x ≥ 0
1 2
⇐⇒
x1 + e1 = 4
2x2 + e2 = 12
s.c :
3x1 + 2x2 + e3 = 18
x ,x ,e ,e ,e ≥ 0
1 2 1 2 3
x2 : variable entrante.
e2 : variable sortante.
2 : pivot.
x 1 = x2 = 0
e1 = 4
S.A : e2 = 12
e3 = 18
Z = 0
x1 : variable entrante.
e3 : variable sortante.
3 : pivot.
x1 = e2 = 0
e1 = 4
S.A : x2 = 6
e3 = 6
Z = 300
4.9 Exemple 2
(P L) M axZ : 1000x1 + 1200x2
10x1 + 5x2 ≤ 200
2x1 + 3x2
≤ 60
s.c : x1 ≤ 34
x2 ≤ 14
x1 ≥ 0, x2 ≥ 0
⇐⇒
10x1 + 5x2 + e1 = 200
2x1 + 3x2 + e2 = 60
s.c : x1 + e3 = 34
x2 + e4 = 14
x ,x ,e ,e ,e ,e ≥ 0
1 2 1 2 3 4
x2 : variable entrante.
e4 : variable sortante.
1 : pivot.
x1 = e2 = 0
e1 = 200
e2 = 60
S.A :
e3 = 34
e4 = 14
Z = 0
x1 : variable entrante.
e2 : variable sortante.
2 : pivot.
x1 = e4 = 0
e1 = 130
e2 = 18
S.A :
e3 = 34
x2 = 14
Z = 16800
e4 : variable entrante.
e1 : variable sortante.
10 : pivot.
e2 = e4 = 0
e1 = 40
e3 = 50
S.A :
x1 = 9
x2 = 14
Z = 25800
Dualité
Contents
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Application . . . . . . . . . . . . . . . . . . . . . . . 47
42
5.1. INTRODUCTION 43
5.1 Introduction
Tout programme linéaire (noté Primal) possède un programme équivalent (noté
Dual).
Primal Dual
Données A, b, c Données A, b, c
Minimiser Maximiser
En général
Contraintes ≤ ≥ =
Variables ≥ ≤ ≶
Produit
Bureau Table Chaise Quantité disponible
Ressource de ressource
Bois (plaque) 8 6 1 48
Menuiserie (heure) 2 1.5 0.5 8
Finition (heure) 4 2 1.5 20
Prix de revient (DT) 60 30 20
On définit
x1 : Nombre de bureaux fabriqués.
8x1 + 6x2 + x3 ≤ 48 (ressource bois)
≤
2x + 1.5x + 0.5x
1 2 3 8 (ressource menuiserie)
s.c :
4x1 + 2x2 + 1.5x3 ≤ 20 (ressource f inition)
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
8y1 + 2y2 + 4y3 ≥ 60
≥
6y + 1.5y + 2y
1 2 3 30
s.c :
y1 + 0.5y2 + 1.5y3 ≥ 20
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0
Constatations
• Programme primal
8x1 + 6x2 + x3 ≤ 48
≤
2x + 1.5x + 0.5x
1 2 3 8
s.c :
4x1 + 2x2 + 1.5x3 ≤ 20
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
• Programme dual
8y1 + 2y2 + 4y3 ≥ 60
≥
6y + 1.5y + 2y
1 2 3 30
s.c :
y1 + 0.5y2 + 1.5y3 ≥ 20
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0
Ressource i Demande j
Produit j aij cj
Coût i bi
X X
min bi x i s.c aij xi ≥ cj ∀j
i i
X X
max cj w j s.c aij wj ≤ bi ∀i
j j
Conclusion Données A, b, c
min z= cx
(P ) : s.c Ax ≥ b
x≥ 0
max v= wb
(D) : s.c wA ≤ c
w≥ 0
min max
Primal Dual
Dual Primal
Variable ≥ 0 Contrainte ≤ 0
Variable ≤ 0 Contrainte ≥ 0
Variable ≶ 0 Contrainte =
Contrainte ≥ 0 Variable ≤ 0
Contrainte ≤ 0 Variable ≥ 0
Contrainte = Variable ≶ 0
Exemple 1:
Exemple 2:
5.4 Application
Soit
20x1 + 5x2 ≥ 25
≥ 60
30x + 20x + 2y
1 2 3
s.c :
5x1 + 10x2 ≥ 15
x1 , x2 ≥ 0
On pose:
x1
C= 6 9 ,X =
x2
20 5 25 y1
A=
30 20 , b = 60 , Y = y2
5 10 15 y3
Donc,
(P L) : M inZ = CX
AX ≥ b
s.c :
X ≥0
(D) : M axW = bt Y
At Y ≤ Ct
s.c :
Y ≥0
Donc,
20y1 + 30y2 + 5y3
≤ 6
s.c : 5y1 + 20y2 + 10y3 ≤ 9
y1 , y2 ≥ 0
⇐⇒
20y1 + 30y2 + 5y3 + e1 = 6
s.c : 5y1 + 20y2 + 10y3 + e2 = 9
y1 , y2 , e1 , e2 ≥ 0
y2 : variable entrante.
e1 : variable sortante.
30 : pivot.
y1 = y2 = y3 = 0
e1 = 6
S.A :
e2 = 9
W = 0
y3 : variable entrante.
e2 : variable sortante.
20
3
: pivot.
y1 = y3 = e1 = 0
1
y2 = 5
S.A :
e2 = 5
W = 12
y1 = 0
y 3
2 = 40
3
y3 = 4
63
W = 4