Introduction à l'Optimisation Mathématique
Introduction à l'Optimisation Mathématique
Introduction à l'Optimisation
Exemple 1
Une entreprise fabrique des tables et des chaises à partir de deux matières : le bois et la
peinture, sachant que la réalisation d'une table nécessite 3 m de bois et 4 kg de peinture, la
réalisation d'une chaise nécessite 2 m de bois et 1 kg de peinture. Les moyens financiers
de l'entreprise acceptent un approvisionnement de 100 m de bois et 120 kg de peinture
par semaine. Les produits ainsi fabriqués fournissent un bénéfice de 500 DA par table et
300 DA par chaise vendue.
Question
À partir de la description donnée, plusieurs questions se révèlent :
• Quelle quantité de table et quelle quantité de chaise doit produire l'entreprise ?
• Quelles sont les ressources disponibles, les limites et les barrières à ne pas dépasser ?
• Quel est le but de l'entreprise ?
Dans ce cas plusieurs propositions intuitives peuvent avoir lieu par exemple :
• 32 tables et 0 chaise avec un bénéfice de 16000
• 20 tables et 20 chaises avec un bénéfice de 16000
• 0 table et 50 chaises avec un bénéfice de 15000
• etc.
Nous remarquons qu'il y a une infinité de solutions possibles. Parmi toutes les solutions
proposées, comment choisir la meilleure ? Existe-t-il une technique qui pointe
directement sur la solution optimale ? Pour répondre à ces questions plusieurs techniques
inspirées de la recherche Opérationnelle sont proposées.
La recherche Opérationnelle est une discipline qui permet de formuler des problèmes par
des supports scientifiques, mathématiques et informatiques pour aider à mieux décider. La
Recherche Opérationnelle ( R.O.) est avant tout un outil d’aide à la décision.
8
Chapitre 1 Introduction à l'Optimisation
Autrement définie, la Recherche Opérationnelle (RO) traduit des énoncés ou des cahiers
de charges liés à des problématiques spécifiques sous forme de méthodes et des
démarches à base d'équation mathématique, des algorithmes et des outils statistiques.
Problème concret
Modélisation
Interprétation
des résultats
Prise de
décision
La recherche opérationnelle (RO) est utilisée dans les domaines ou la prise de décision fait
appel à la résolution des problèmes d’optimisation telle que les problèmes de :
• Dimensionnement, localisation
• Gestion de ressources
• Rentabilisation des investissements
• Détection de dysfonctionnements : diagnostics, réparation, maintenance.
• Partage des ressources
• Etc.
9
Chapitre 1 Introduction à l'Optimisation
Dans cette phase, on commence toujours par l'identification des données nécessaires à la
résolution du problème, les valeurs de consommations ou les fiches techniques des
articles, la quantité des ressources disponibles, les coûts de transport, la capacité de
production, les gains engendrés par chaque article ou les dépenses établies pour la
réalisation d'une action. Dans cette phase, on détermine les composantes, les enjeux et les
limites du problème. Toutes ces informations sont primordiales pour la formulation des
problèmes.
1.4.2 Modélisation
L’optimisation repose toujours sur des modèles mathématiques qui sont généralement
simples et partiels. Pour définir le modèle du système, on définit :
Ses variables
Une fois l'analyse effectuée, on détermine les variables du Système qui représente les
décisions à prendre et qui doit répondre à un certain nombre de questions : que faut-il
réaliser et en quelle quantité ? Combien doit-on acheter ? Combien de classes à faire dans
une école ? Les variables représentent les inconnues du système.
10
Chapitre 1 Introduction à l'Optimisation
Les contraintes
Les objets mathématiques qui assurent l'interaction et la liaison des variables par rapport
aux ressources disponibles et aux données du problème sont appelées contraintes.
Une entreprise fabrique des tables et des chaises à partir de deux matières : le bois et la
peinture, sachant que la réalisation d'une table nécessite 3 m de bois et 4 kg de peinture la
réalisation d'une chaise nécessitent 2 m de bois et 1 kg de peinture. Les moyens financiers
de l'entreprise acceptent un approvisionnement de 100 m de bois et 120 kg de peinture
par semaine. Les produits ainsi fabriqués fournissent un bénéfice de 500 DA par table et
300 DA par chaise vendu.
Les variables :
Les contraintes :
11
Chapitre 1 Introduction à l'Optimisation
x1, x2 0 (3)
Fonction objective :
Solution optimale
On appelle solution optimale x*, la solution parmi toutes les solutions admissibles qui
fournissent le meilleur résultat, c'est à dire de trouver le max pour un problème de
maximisation ou trouver le min pour un problème de minimisation.
P1 P2 Ressource disponible
Heure /machine 3 9 81
main d’œuvre 4 5 55
emballage 2 1 20
12
Chapitre 1 Introduction à l'Optimisation
3x1 + 9x2 ≤ 81
4x1 + 5x2 ≤55
2x1 + x2 ≤ 20
3x1 + 9x2 ≤ 81
4x1 + 5x2 ≤55
2x1 + x2 ≤ 20
x1, x2 ≥ 0.
On connaît :
cij avec i = 1..n et j = 1..m, coût de transport (i, j),
Xi avec i = 1..n, stocks de dépôts,
Dj avec j = 1..m, niveaux de demande aux points de vente.
On recherche, pour chaque couple (i, j), la quantité (positive) wij à transporter du dépôt
Xi au point de vente Dj.
13
Chapitre 1 Introduction à l'Optimisation
Les variables :
w11, w12, w13, w14, w15, w16, w21, w22, w23, w24, w25, w26, w31, w32, w33, w34, w35, w36, w41, w42,
w43, w44, w45, w46 0
Les contraintes :
Min Z = c11 w11+ c12w12+ c13w13+ c14w14+ c15w15+ c16 w16+ c21w21+ c22w22+ c23w23+
c24w24+ c25w25+ c26w26+ c31w31+ c32w32+ c33w33+ c34w34+ c35w35+ c36w36+ c41w41+
c42w42+ c43w43+ c44w44+ c45w45+ c46w46
n m
min c w
i 1 j 1
ij ij
w
i 1
ij DJ j 1,....m
m
w
j 1
ij Xi i 1,....n
14
Chapitre 1 Introduction à l'Optimisation
Exemple :
Une organisation possède quatre centres de distribution : (Tlemcen, Alger, Constantine et
Béchar) de stocks de produits respectivement de : 120 kg, 100 kg, 100 kg et 100 kg, pour
lesquels elle a reçu des commandes de ses antennes d'Oran (80 kg), Bejaia (190 kg) et
Tamanrasset (150 kg).
Les coûts de transport d’un kilo de produits, suivant les liaisons routières considérées,
sont donnés par le tableau suivant :
Maximiser J = f (x)
1.7.2 Critère
15
Chapitre 1 Introduction à l'Optimisation
1.7.3 Contraintes
h(x) ≤ 0
h(x) = 0
h(x) ≥ 0
1.7.4 Non-négativité
Tout nombre, positif ou négatif, peut toujours être écrit comme la différence de deux
nombres non négatifs (par exemple, - 4 = 6 - 10). Il suffit donc de remplacer la variable
d'activité par la différence de deux nouvelles variables d'activité non négatives (le nombre
de variables d'activité augmente de 1).
La complexité algorithmique est une notion qui concerne l'évaluation des performances
des algorithmes réalisant les mêmes procédés ou les mêmes fonctionnalités et permettant
de comparer et de déterminer si un algorithme "a" est meilleur qu'un algorithme "b" et s'il
est optimal ou s'il ne doit pas être utilisé.
{Début}
S:= 0 ; I : =1 ; N:=10 {"1"}
while I <= N do {"2"}
S = S +K[I] {"3"}
I = I+1 {"4"}
end do; {End}
16
Chapitre 1 Introduction à l'Optimisation
Le temps d’exécution nécessaire pour cet algorithme t(n), composé de plusieurs temps de
chaque instruction. Nous supposons que :
Sachant que le temps t2, t3, t4 sont bien définis et inchangés durant l'exécution de cette
ligne. Par ailleurs ces temps représentent une boucle qui se répète n fois. Donc le temps
nécessaire pour l'exécution de la boucle est donné par :
L'évaluation temporelle d'un algorithme peut avoir plusieurs possibilités parmi elles
lorsqu'il s'agit d'une :
Somme des temps exp : l'exécution de trois actions l'une après l'autre ou chaque
action demande un temps de traitement relatif,
Maximum de temps exp : c'est dans le cas d'une boucle avec la condition si
17
Chapitre 1 Introduction à l'Optimisation
tant que < condition est vérifiée > faire Traitement (t1)
18
Chapitre 2
Programmation Linéaire
2.1 Introduction...........................................................................................................................................20
2.2 Forme d’un programme linéaire.........................................................................................................20
2.2.1 Forme générale...................................................................................................................................20
2.2.2 Forme standard ou forme canonique d’un programme linéaire.................................................21
2.3 Résolution de programmes linéaires..................................................................................................22
2.3.1 Résolution graphique.........................................................................................................................22
2.3.2 Méthode de simplexe .......................................................................................................................26
2.3.3 Résolution par les Tableaux de simplexe ......................................................................................29
2.4 Dualité ...................................................................................................................................................33
2.4.1 Qu'est ce que la dualité ? .................................................................................................................34
2.4.2 Qu'elle est l'importance....................................................................................................................34
2.4.3 Comment trouver le dual ? .............................................................................................................34
2.4.4 Conditions d’optimalité primal-dual ..............................................................................................35
2.4.5 Exemple..............................................................................................................................................35
Chapitre 2 : Programmation linéaire
2.1 Introduction
D'une manière plus détaillée, un programme linéaire (PL) est dit sous forme générale s’il
s'écrit de la façon suivante :
max F c1 x1 c2 x2 ........ cn xn
2.1
La fonction 2.1 peut s'exprimer par une sommation de n terme (variables) comme suit :
n
max F c j x j
j
2.2
Sous les contraintes :
n
a x
j 1
rj j br
ou
n
a x
j 1
ij j bi
2.3
ou
n
a
j 1
kj x j bk
20
Chapitre 2 : Programmation linéaire
Un problème linéaire est sous forme standard si toutes les contraintes sont des contraintes
égalité. Pour transformer une contrainte d'inégalité en contrainte d'égalité, il faut ajouter
aux membres de gauche d’une contrainte, une quantité (une mesure) appelée variable
d'écart qui sert à absorber l'écart entre le membre gauche et le membre droit d'une
contrainte si l'écart existe, bien sûr, sinon cette variable vaut zéro.
max z CX
sous 2.4
AX b α
X 0 β
Cette forme standard est obtenue en introduisant des variables d'écart dans toutes les
contraintes d'inégalité(à) et que ces variables soient non négatives(β).
La forme canonique d'un programme linéaire peut être exprimée par un ensemble de
vecteurs comme suit :
X ( x1 , x2 ,.....xn ) R n
2.5
c (c1 , c2 ,.....,cn ) R n
b (b1 , b2 ,.....,bm ) R n
Et la matrice A de taille m x n
21
Chapitre 2 : Programmation linéaire
Le vecteur des coefficients c est donné par c=(600 , 400 , 0 , 0 , 0) puisque max F
peut s'écrire comme suit :
max F 600 x1 400 x2 0 x3 0 x4 0 x5
La matrice A : 4 5 1 0 0
A 1 3 0 1 0
2 1 0 0 1
2.3 Résolution de programmes linéaires
Il existe plusieurs techniques de résolution pour les programmes linéaires. Cela dit nous
présenterons dans cette section : la résolution graphique et la résolution analytique en
détaillant deux procédures : méthode Simplexe et tableaux Simplexe.
La résolution graphique d'un problème linéaire consiste à tracer la droite qui sépare les
demi-plans pour chaque contrainte tout en conservant le demi-plan acceptable, c'est-à-
dire le demi-plan des solutions réalisables pour la contrainte. L'intersection des différents
demi-plans de toutes les contraintes sans oublier les contraintes de positivité forme le
polygone des solutions, appelé aussi "région des solutions admissibles".
22
Chapitre 2 : Programmation linéaire
On prend la première contrainte du système et on remplace l'inégalité par une égalité sans
l'ajout de variable d'écart, (cette façon de faire est applicable seulement pour la résolution
graphique). L'équation résultante correspond à une droite. Pour tracer une droite, il
faudrait déterminer deux points, ce qui donne pour la première contrainte notre exemple :
4 x1 5x2 55
Si x1=0 x2=11 le premier point est (x1 , x 2) =(0 , 11)
Si x2=0 x1=55/4 = 13.75 le deuxième point est (x1 , x 2) =(13.75 , 0)
À partir de ces points on trace la première droite et on conserve ce qui est en dessus de la
droite. On élimine ensuite la partie supérieure puisque la contrainte est une contrainte
d'infériorité.
x2
10
x1
5 10
4x1+5 x2 = 55
Figure. 2.1 – Représentation de la première contrainte
23
Chapitre 2 : Programmation linéaire
x1 3x2 27
Si x1=0 x2=9 le premier point est (x1 , x 2) =(0 , 9)
Si x2=0 x1=27 le deuxième point est (x1 , x 2) =(27 , 0)
2 x1 x2 20
Si x1=0 x2=20 le premier point est (x1 , x 2) =(0 , 20)
Si x2=0 x1=10 le deuxième point est (x1 , x 2) =(10 , 0)
Bien évidemment, il faut tracer aussi les contraintes de positivité. L'intersection de toutes
les contraintes forme le polygone de solutions tel qu'il est donné par la figure2.2.
x2
2x1+ x2 = 20
5
x1+3 x2 = 27
10 x1
4x1+5 x2 = 55
La question qui se pose maintenant est : quel est le point qui donne la valeur optimale
pour ce problème ?
Pour répondre à cette question nous expliquerons la procédure à suivre pour déterminer
la valeur maximale pour ce problème qui consiste à tracer la droite qui correspond à la
fonction objective.
24
Chapitre 2 : Programmation linéaire
400x1 + 600 x2 = 0,
6
4 x1 = - 6 x2 x1 x2 x1 1.5x2
4
Le coefficient directeur de cette fonction est (−1, 1.5). Il passe par l'origine (0, 0).
Une fois la droite tracée on effectue une translation parallèle à la direction de la droite du
bas vers le haut jusqu’à rencontrer le dernier point du polygone satisfaisant les contraintes.
x2
2x1+ x2 = 20
5
x1+3 x2 = 81
5 7.5 10 x1
4x1+5 x2 = 55
Le maximum de Z sur cet ensemble de contraintes est alors atteint. On obtient ainsi le
point qui correspond à la solution optimale. Par la projection de ce point sur les axes x 1 et
x2 on obtient : x1=7.5 et x2 = 5, ce qui donne une valeur maximale Z = 6000.
La méthode graphique pour la résolution d'un problème linéaire à deux variables est très
facile à appliquer. Sa difficulté augmente par l'augmentation des variables dans le système.
Elle devient difficile pour trois variables et, voire impossible, au delà de trois inconnus
dans le système étudié.
Afin d'ôter cette difficulté, une méthode appelée méthode du simplexe a été proposée et
développée par Dantzig afin de résoudre des problèmes de programmation linéaire avec
plusieurs variables.
25
Chapitre 2 : Programmation linéaire
Démarche 2 : Dans un second temps nous sélectionnons les variables originales comme
variables hors-base et les variables d'écarts comme variable basique. puis nous
effectuerons une permutation entre une variable hors-base de notre choix qui sera
remplacée par une variable de base (entrante). Le choix de la variable entrante repose sur
la variable dont le coefficient est le plus élevé dans la fonction objective.
Soit y3, y4 et y5, les variables d’écart relatif respectivement aux contraintes 2.10, 2.11 et
2.12, qui permettent de transformer les contraintes d'inégalité pour obtenir les égalités
suivantes :
2y1 + y2 + y3 = 70 2.13
y1 + y2 + y4 = 40 2.14
y1 + 3y2 + y5 = 90 2.15
On commence à partir du point y1=0, y2=0 et on vérifie s'il est possible d'augmenter la
fonction objective sachant que notre système est un système de trois équations avec cinq
26
Chapitre 2 : Programmation linéaire
inconnues. Pour trouver la solution on impose deux des variables à zéro et on déduit les
valeurs des trois variables restantes. Ce qui donne :
y1 = 0,
y2 = 0 ;
Pour les variables de base et :
y3 = 70
y4 = 40
y5 = 90
Pour les variables hors base.
Pour répondre à cette question, on vérifie la fonction objective. Si les coefficients sont
positifs, ce qui est le cas, on a donc la possibilité d'augmenter F. On favorise
l'augmentation de la variable qui a le plus grand coefficient dans la fonction objective.
Donc on choisit y2 en maintenant y1 = 0.
2y1 + y2 + y3 = 70 y2 + y3 = 70 2.16
y1 + y2 + y4 = 40 y2 + y4 = 40 2.17
y1 + 3y2 + y5 = 90 3y2 + y5 = 90 2.18
On réécrit les variables restantes en fonction d'y2 pour chaque équation. Ce qui nous
donne :
y3 = 70 - y2 ≥ 0 → y2 ≤ 70 2.19
y4 = 40 - y2 ≥ 0 → y2 ≤40 2.20
y5 = 90 - 3y2 ≥ 0 → y2 ≤ 30 2.21
27
Chapitre 2 : Programmation linéaire
On remarque bien que y1=0 est toujours maintenu à zéro. Par ailleurs, y5 est passé de 90
a 0 et y2 est passé de 0 a 30 .Donc on déduit que pour cette étape la variable sortante de la
base est y2 et la variable entrante à la base est y5.
Les coefficients de la fonction objective sont positifs. Ce qui permet améliorer d'avantage
la solution obtenue. Dans ce cas on s'arrange pour exprimer toutes les équations en
fonction de y1 et y5. Pour ce faire on retire la valeur de y2 de la troisième équation et on
remplace son expression dans les deux premières. Il en est de même pour F, ce qui nous
donne dans cette étape les équations 2.22, 2.23 et 2.24
Pour cette étape, la variable sortante de la base est y2 et la variable entrante à la base est
y4. L'expression de la nouvelle valeur du critère est : F = 2100 - 30y4 - 10y5,
28
Chapitre 2 : Programmation linéaire
Étape 1
On construit un tableau à deux dimensions rxs où le nombre de colonnes r est égal au
nombre de variables (les variables de décision plus les variables d'écart) dans le système
plus une colonne de solution. Le nombre de lignes est égal au nombre d'équation dans le
système sans considération des contraintes de positivité.
Étape 2
On calcule le minimum du rapport du coefficient du membre de droite de chaque
contrainte sur le coefficient correspondant à la colonne. Dans le cas ou le coefficient dans
la colonne entrante est négatif ou infini, on ne le compte pas dans le calcul du minimum.
On encadre alors la ligne ou le minimum se produit. Cette ligne reçoit le nom de "ligne
pivot".
Étape 3
On reconstruit le tableau du simplexe (il faut conserver la même dimension du tableau).
On commence, d'abord, par construire la nouvelle ligne pivot qui se calcule de la manière
suivante :
29
Chapitre 2 : Programmation linéaire
Formulation du problème :
x1 : quantité de boîtes en bois de type 1
x2 : quantité de boîtes en bois de type 2
Max z = 3x1 + 5 x2
Max z = 3x1 + 5 x2 +0 x3 + 0 x4 +0 x5
Puis, nous faisons juste une translation vers un tableau comme suit :
30
Chapitre 2 : Programmation linéaire
Itération 1
z x1 x2 x3 x4 x5 sol
z -1 3 5 0 0 0 0
x3 0 1 2 1 0 0 10000
x4 0 2 3 0 1 0 12000
x5 0 1 4 0 0 1 15000
Dans ce tableau, nous allons définir la colonne pivot, la ligne pivot et l'élément pivot.
Nous commençons par la colonne pivot. Pour ce faire, nous sélectionnerons la variable
qui a le coefficient le plus élevé dans la ligne de la fonction objective qui est le 5 de la
variable x2. Donc la colonne pivot est la colonne du x2.
Ensuite, nous définirons la ligne pivot en divisant chaque solution par les éléments
correspondants dans la colonne pivot.
10000/2 = 5000
12000/3 = 4000
15000/4 = 3750
On choisit la plus petite valeur. Dans ce cas c'est la valeur de : 3750. Ce qui correspond à
la dernière ligne du tableau qui sera la ligne pivot.
Itération 1
Colonne
pivot
z x1 x2 x3 x4 x5 sol
z -1 3 5 0 0 0 0
x3 0 1 2 1 0 0 10000 5000
x4 0 2 3 0 1 0 12000 4000
x5 0 1 4 0 0 1 15000 3750
Ligne
Pivot Élément Pivot
L'intersection entre la colonne pivot et la ligne pivot, nous donne l'élément pivot qui est
égal à 4
31
Chapitre 2 : Programmation linéaire
Itération 2
Une fois l'élément pivot déterminé, on calcule la nouvelle ligne pivot en divisant
l'ancienne ligne par l'élément pivot, ce qui donne :
0 1 4 0 0 1 15000
4 4 4 4 4 4 4
32
Chapitre 2 : Programmation linéaire
À la fin de cette itération, on vérifie tous les coefficients de ligne z. S'ils sont négatifs ou
nuls on s'arrête. On a trouvé la solution optimale. Ce n'est pas le cas ici, la valeur de x1 est
positive. On construit donc une nouvelle itération et un nouveau tableau de la même
manière que pour l'itération2.
Itération 3
z x1 x2 x3 x4 x5 sol
z -1 0 0 0 -1,4 -0,2 -19800
x3 0 0 0 1 -0,4 -0,2 2200
x1 0 1 0 0 0,8 -0,6 600
x2 0 0 1 0 -0,2 0,4 3600
2.4 Dualité
2.4.1 Exemple : Problème de production.
Deux produits R1 et R2 sont fabriqués en quantité m1 et m2. La fabrication des deux
produits passe par trois machines afin de subir différents traitements. Bien évidemment le
but de l'entreprise est de maximiser son bénéfice total provenant de la vente des 2
produits. Le problème ainsi formulé est donné par le programme suivant :
Max F(x1; x2) = 6x1 + 4x2
Sous contraintes :
3x1 + 9x2 ≤81
4x1 + 5x2 ≤ 55 2.31
2x1 + x2 ≤ 20
x1; x2 ≥ 0
Pour certaines raisons, l'entreprise décide de vendre toutes ses ressources. Un acheteur se
présente et propose à l'entreprise les prix unitaires k1, k2, k3 pour chacune des ressources.
L'entreprise acceptera de lui vendre toutes ses ressources uniquement si le prix de vente
est au moins égal au profit qu'elle ferait en vendant ses produits. De son coté, l'acheteur
cherche à minimiser ses dépenses. Quels prix unitaires k1, k2, k3 l'acheteur doit-il
proposer à l'entreprise pour qu'elle accepte de vendre toutes ses ressources ?
33
Chapitre 2 : Programmation linéaire
La dualité est un programme linéaire qui reflète un programme linéaire d'un problème
donné par sa première de description (principale). Autrement dit, la dualité est une façon
de visualiser un problème donné sous un autre angle. La dualité d'un problème, peut-être
assimilé à l'effet miroir où on arrive à voir la même chose sauf que les coordonnées de la
base utilisée ne sont pas les mêmes.
Ax b AT y c
x 0 y 0
Le fait d'avoir un problème vu selon deux angles différents (primal - dual) liés d'une
certaine manière, met en évidence la dépendance des solutions entre primal - dual.
D'ailleurs on peut facilement trouver une solution de l'un à partir de la solution de l'autre.
Pour passer du primal au dual, certaines transformations doivent être considérées qui sont
définies comme suit :
a) Les termes du second membre des contraintes "bi" dans le problème primal deviennent
les coefficients de la nouvelle fonction objective du dual et les coefficients de la fonction
objective primal deviennent le second membre des contraintes du dual.
b) Les variables de décisions du problème primal deviennent des variables d'écarts dans le
problème dual et les variables d'écarts deviennent les variables de décisions.
34
Chapitre 2 : Programmation linéaire
A chaque contrainte, nous affecterons une variable appelée yi. La transformation est
donnée par le tableau A.
35
Chapitre 2 : Programmation linéaire
On remarque bien que le problème dual est un problème de minimisation. Les tableaux
de Simplexe s'appliquent de la même manière expliquée dans la section 2.3.3. La seule
différence réside dans le choix de la colonne pivot qui se fait, en sélectionnant la variable
qui a le coefficient le plus bas(le plus petit) dans la ligne de la fonction objective.
Itération 1
z y1 y2 y3 y4 e1 e2 sol
z -1 150 440 480 90 0 0 0
e1 0 1 4 1 1 -1 0 100
e2 0 1 2 4 0 0 -1 200
Itération 2 :
z y1 y2 y3 y4 e1 e2 sol
z -1 60 80 390 0 90 0 -9000
y4 0 1 4 1 1 -1 0 100
e1 0 1 2 4 0 0 -1 200
Itération 3 :
z y1 y2 y3 y4 e1 e2 sol
z -1 0 -160 330 -60 150 0 -15000
y1 0 1 4 1 1 -1 0 100
e1 0 0 -2 3 -1 1 -1 100
Itération 4 :
z y1 y2 y3 y4 e1 e2 sol
z 1 0 -60 0 -50 -40 -110 -26000
y1 0 1 4,66667 0 1,33333 -1,3333 0,33333 66,6667
y3 0 0 -0,6667 1 -0,3333 0,33333 -0,3333 33,3333
36
Chapitre 2 : Programmation linéaire
y1 =0 S1 = 0
y2 = - 60 S2 = 60
y3 = 0 S3 = 0
y4 = - 50 S4 = 50
e1 = - 40 x1 = 40
e2 = -110 x2 = 110
w = - 26000 z = 26000
37
TD N° 1
Formulation mathématique
TD N° 1
TD N° 1 : Formulation mathématique
Exercice 2 : Une association culturelle organise une exposition, pendant cette exposition
des tasses de café au lait et des tasses de chocolat au lait sont vendues pour apporter une
aide aux orphelins. Un sponsor a permis de procurer 40 litres de lait, 4 kg de sucre et
assez de café et de chocolat pour faire 150 tasses de chaque boisson.
On prévoit de servir 2 sucres par tasse en moyenne ; chaque paquet d'un kilogramme de
sucre contient 120 morceaux ; il faut 1/4 de litre de lait pour une tasse de chocolat et
1/12 de litre de lait pour une tasse de café.
Le trésorier du club propose de vendre 50 DA chaque tasse de chocolat au lait et 40 DA
chaque tasse de café au lait.
63
TD N° 1
de production de chaque carrière les tailles des stocks (vides) disponibles aux différentes
stations à alimenter sont données dans les tableaux suivants :
Les coûts unitaires de transport d'un kilo de matière première de la carrière i à la station j
sont donnés par le tableau suivant :
1 2 3 4 5 6
1 9 12 9 6 9 10
2 7 3 7 7 5 5
3 6 5 9 11 3 11
4 4 6 11 2 2 10
64
TD N° 2
PL : résolution graphique
TD N° 2
Exercice 2 : Une association culturelle organise une exposition, pendant cette exposition
des tasses de café au lait et des tasses de chocolat au lait sont vendues pour apporter une
aide aux orphelins. Un sponsor a permis de procurer 20 litres de lait, 2 kg de sucre et
assez de café et de chocolat pour faire 150 tasses de chaque boisson.
On prévoit de servir 2 sucres par tasse en moyenne ; chaque paquet de sucre contient 120
morceaux et le poids du paquet indiqué sur la boite est de 500 g ; il faut 1/4 de litre de lait
pour une tasse de chocolat et 1/12 de litre de lait pour une tasse de café. Le trésorier du
club propose de vendre 50 DA chaque tasse de chocolat au lait et 40 DA chaque tasse de
café au lait.
66
TD N° 3
Algorithme des tableaux de simplexe
TD N° 3
Dans les exercices suivants, appliquer l’algorithme tableaux de simplexe pour trouver la
solution optimale de programmation linéaire.
68
TD N° 3
69