Cours de Recherche Opérationnelle S3
Cours de Recherche Opérationnelle S3
Khalid BOUIHAT
12 novembre 2018
4 Définitions générales
5 Modélisation
NOTION DE MATRICE
On appelle matrice de dimension m × n un tableau de nombres
comportant m lignes et n colonnes. Ces nombres sont appelés
coefficients
de la matrice.
a11 a12 · · · a1n
a21 a22 · · · a2n
A= .
.. .. ..
.. . . .
am1 am2 · · · amn
Notations :
a11 , a12 , a13 , ...., amn désignent les coefficients de la matrice.
Le coefficient de la i ème ligne et de la j ème colonne est noté a ij
La matrice A se note aussi (aij )1≤i≤m,1≤j≤n Autrement dit, est la
matrice des coefficients aij
1 3 4
ExempleSi A = −2 5 2 , alors a12 désigne le coefficient de la
0 1 3
1ère ligne et de la 2ème colonne avec a12 = 3 et a21 désigne le
coefficient de la 2ème ligne et de la 1ère colonne avec a = −2. La 21
matrice A se compose de 3 lignes et de 3 colonnes donc est une
matrice de dimension 3 × 3.
Matrices Particulières
Une matrice comportant une seule ligne s’appelle un
vecteur-ligne. Un vecteur-ligne a donc pour dimension 1 × n. Dans
ce cas, m = 1 .
Une matrice comportant une seule colonne s’appelle un
vecteur-colonne. Un vecteur-colonne a donc pour dimension
m × 1. Dans ce cas, n = 1.
Une matrice comportant autant de lignes que de colonnes
s’appelle une matrice carrée. Une matrice carrée a donc pour
dimension n × n. Dans ce cas m = n.
On appelle matrice diagonale une matrice carrée dont tous les
coefficients sont nuls, exceptés ceux de la diagonale issue du coin
en haut à gauche. Autrement dit, A est une matrice diagonale
si :aij = k si i = j et aij = 0 si i 6= j
1 3 4
C = −2 5 2
0 1 3
est une matrice carrée de dimension 3 × 3
1 0 0
D= 0 5 0
0 0 3
est une matrice diagonale
1 0 0
I3 = 0 1 0
0 0 1
est la matrice identité d’ordre 3, que l’on note I3
0 0 0
O= 0 0 0
0 0 0
est une matrice nulle.
Définition
Deux matrices sont égales si elles ont même dimension et si les
coefficients situés à la même place sont égaux. Autrement dit, deux
matrices A et B sont égales si A et B ont toutes deux pour dimension
m × n et si aij = bij (pour toute ligne et toute colonne ).
Exemple
1 4 a b
A= et B =
0 3 c d
sont deux matrices carrées de même dimension 2 × 2 ; elles ne
sont
égales que si le système suivant est vérifié
a=1
b=4
c=0
d =3
Définition
On appelle matrice transposée de la matrice A la matrice obtenue en
permutant les lignes et les colonnes de A. Ainsi, à tout coefficient aij de
A la matrice correspond le coefficient aji de la matrice transposée AT .
Exemple
1 4
La matrice A = 6 5 a pour matrice transposée la matrice
0 3
1 6 0
AT =
4 5 3
Exemple
7 8
1 2 −3
A×B = × 9 −1 =
4 −5 6
3 5
1 × 7 + 2 × 9−3 × 3 1 × 8−1 × 2−3 × 5
4 × 7−5 × 9 + 6 × 3 4 × 8 + 5 × 1 + 6 × 5
Propriétés :
La multiplication de matrices est associative :
(A × B) × C = A × (B × C) = A × B × C
La multiplication de matrices n’est pas commutative :
A × B 6= B × A
La multiplication des matrices est distributive par rapport à
l’addition A × (B + C) = A × B + A × C
Matrice inverse
Soit une matrice carrée A d’ordre n. La Matrice inverse de A, notée
A−1 , est définie, quand elle existe, par A × A−1 = In . Si une telle
matrice existe, on dit alors que A est inversible.
Déterminant
a b
Soit la matrice A = On appelle Déterminant de la matrice A,
c d
noté det(A) , le réel ad − bc.
Techniques de la RO
1 La programmation mathématique :
Programmation linéaire (objet du cours).
Programmation quadratique.
Programmation en nombres entiers.
Programmation dynamique.
2 Théorie des graphes :
Optimisation de chemins.
Ordonnancement de la production.
Allocation de ressources
Champs d’application de la RO
Industrie.
Gouvernement.
Agences.
Hôpitaux.
Institutions d’éducation · · ·
Méthodologie de la RO
1 Identification du problème.
2 Collecte des données.
3 Modélisation (Formulation mathématique).
4 Vérification du modèle.
5 Recherche des solutions.
6 Présentation des solutions.
7 Implémentation et recommandations.
Programmation linéaire
Programmation linéaire
Définition
Un programme linéaire est un problème d’optimisation avec
contraintes où la fonction à optimiser est linéaire et où les contraintes
sont linéaires.
Remarque
En générale les problèmes de programation linéaires est défini
comme étant un problème de maximisation ou de minimisation
d’une fonction sous ou sans contraintes. Les contraintes peuvent
être sous forme des inégalités ou des égalités linéaires.
Les exemples habituels d’optimisation sont la recherche d’un
bénéfice maximal ou d’un coût minimal.
Ou sous la forme :
X n
min Z = Cj Xj ,
j=1
(P.L) n
X
aij Xj ≤ bi ∀Xj et ∀i = 1, · · ·, m
j=1
Exemple 2, de P.L :
max Z = 8x1 − 7x2 ,
3x1 + 4x2 ≤ 2
(P.L) x1 + 2x2 ≥ 9
x1 ≥ 0
x2 ≥ 0
Exemple 2, de P.L :
1 Variables de décision :
Elles doivent complètement décrire les décisions à prendre.
2 Fonction objectif :
Dans n’importe quel programme linéaire, le responsable de
décision veut maximiser (en général, le revenu ou profit) ou
minimiser (en général le coût) une fonction des variables de
décisions. Cette fonction est appelée fonction objectif.
L’objectif de l’usine
L’objectif de l’usine est de déterminer le programme de production qui
maximisera son profit (Z = profit).
L’objectif de l’usine
L’objectif de l’usine est de déterminer le programme de production qui
maximisera le bénéfice ?
Q(C1 ) = x1 : quantité de C1 .
Q(C2 ) = x2 : quantité de C2
Modèle complet :
max Z = 400x1 + 500x2 ,
40x1 + 30x2 ≤ 360 contrainte sur la disponibilité de four
(P.L) 20x1 + 30x2 ≤ 480 contrainte sur disponibilité de l’atelier
x1 ≥ 0 contrainte sur la positivité
x2 ≥ 0 contrainte sur la positivité
Formulation
Formulation-régime
[Link] [Link]
Départements QL-500 QL-700X h. dis
Assemblage (phase 1) 3 4 4200
Assemblage (phase 2) 1 3 2250
Vérification/Empaquetage 2 2 2600
Variables :
x1 : le nombre d’unites a fabriquer du modele QL-500.
x2 : le nombre d’unites a fabriquer du modele QL-700X.
Fonction objectif :
MaxZ = 66x1 + 84x2
Contraintes :
Assemblage/Phase 1 : 3x1 + 4x2 ≤ 4200 (C1)
Assemblage/Phase 2 :x1 + 3x2 ≤ 2250 (C2)
Verification/Empaquetage : 2x1 + 2x2 ≤ 2600 (C3)
Quantite maximale du modele QL-500 :x1 ≤ 1100 (C4)
Types des variables : x1 et x2 entiers positifs.
Figure 1 :
Figure 2 :
Figure 3 :
Figure 5 :
Figure 6 :
Figure 7 :
Introduction
L’algorithme du simplexe est l’une des méthodes les plus
anciennes (Dantzig, 1947), et la plus utilisée jusqu’à nos jours,
pour résoudre même des programmes linéaires de grande taille
avec des milliers de variables et des milliers de contraintes.
Exemple 2 :
max Z = 2y1 − 3y2 ,
min Z = −2x1 − 3x2 ,
y1 − 4y2 + y3 = 4
x1 + 4x2 ≤ 4
5y 1 + 6y2 = 9
5x1 − 6x2 = 9 −9y1 + 2y2 + y4 =
(P.L) ⇔ (F .S)
9x1 + 2x2 ≥ −3
y 1 ≥0
x1 ≥ 0 y2 ≥ 0
x2 ≤ 0 y 3 ≥0
y4 ≥ 0
Posons y1 = x1 et y2 = −x2
Exemple 3 :
max Z = 3x1 + 2x2 − 2x3 ,
−2x1 + x2 + 3x3 = 10
x1 + 4x2 − x3 ≥ 15
(P.L)
9x1 + 2x2 ≥ −3
x2 ≥ 20
x1 ≤ 0; x2 ≥ 0; x3 ∈ R
Posonons y1 = −x1 ; y2 = x2 et x3 = y3 − y4
Forme standard :
max Z = −3y1 + 2y2 − 2y3 + 2y4 ,
2y1 + y2 + 3y3 − 3y4 = 10
−y1 + 4y2 − y3 + y4 − y5 = 15
(F .S)
9y1 − 2y2 + y6 = 3
y2 − y7 = 20
yi ≥ 0 pour i = 1, 2, 3, 4, 5, 6, 7
Forme matricielle
On définit
:
a11 a12 ··· a1n x1 b1
a21 a22 ··· a2n x2 b2
A= . ,X = ,b = ,
.. .. .. .. ..
.. . . . . .
am1 am2 · · · amn xn bm
et
c1
c2
C= .. .
.
cn
On suppose que n ≥ m
max Z = C t .X ,
(P.L) AX = b
xi ≥ 0 pouri = 1, 2, · · · , n
Représentation
Représentation matricielle
A = [B|H], X = [ XXHB ] et C t = [CBt |CHt ]
Ce qui donne :
Z = C t X = CBt XB + CHt XH
AX = b ⇒ BXB + HXH = b
Une solution de base est telle que
XH = 0,
BXB = b
XB = B −1 b
Exemple :
Soit le système suivant :
x1 + x2 = 3,
−x1 + x3 = −1
Si on pose VHB = {x3 }, alors VB = {x1 , x2 }. On résout
x1 + x2 = 3,
−x1 = −1
Ce qui donne x1 = 1 et x2 = 2.
Certains choix de variables peuvent ne pas générer de solution de
base.
Forme standard :
max Z = x1 + 2x2 ,
x1 + x2 + x3 = 4
(F .S)
2x1 + x2 + x4 = 5
xi ≥ 0 pour i = 1, 2, 3, 4.
La matrice A de ce PL est :
1 2 1 0
A=
2 1 0 1
0 21
B −1 =
1 −12
Exemples :
Déterminer les bases et les bases réalisables du système suivant :
x1 + x2 + x3 = 6
x2 + x4 = 3
xi ≥ 0 pour i = 1, 2, 3, 4.
Principe général :
Pour un problème de maximisation, l’algorithme du simplexe suit les
étapes générales suivantes :
1 Trouver une SBR pour le PL, appelée la SBR initiale.
2 Déterminer si la SBR courante est optimale (∆ ≤ 0). Sinon,
trouver une autre SBR qui possède une valeur z plus élevée.
3 Retourner au point (2) avec la nouvelle SBR comme SBR
courante.
La question est donc : Comment se déplacer ?
x1 xm+1
x1 xm+2
Soient : xB = , xH = .
.. ..
. .
xm xn
Notons
par
:
a1j a1j b1j b1j
a2j a2j b2j b2j
= B −1 .. et = B −1 .
.. .. ..
. . . .
amj amj bmj bmj
Tableau du simplexe :
Exemple 1 :
Soitle PL suivant : :
max Z = 15x1 + 6x2 ,
x1 + x2 ≤ 15
(P.L) 2x1 + x2 ≤ 20
x1 ≤ 8
x1 ≥ 0; x2 ≥ 0,
Tableau initial :
Second tableau :
Exemple 2 :
Soitle PL suivant : :
max Z = 30x + 50y ,
3x + 2y ≤ 1800
(P.L) x ≤ 400
y ≤ 600
x ≥ 0; y ≥ 0,
Encadrer le pivot :
Solution optimal :