Vous êtes sur la page 1sur 4

UNIVERSITE DE DJELFA

Département : Génie mécanique Module : Optimisation


Option : Construction mécanique Travaux pratiques
Master 2 Optimisation linéaire
TP : 03
METHODE DE SIMPLEXE
Objectif : Résoudre avec Matlab des problèmes de programmation linéaires en utilisant l’algorithme du simplexe
dans la fonction ‘’linprog‘’

Partie I
1. Prérequis
Dans la fonction ‘’linprog‘’, il est possible d’utiliser l’un de ces algorithmes d’optimisation : Algorithme de
simplexe, algorithme d’ensemble actif et algorithme de points intérieurs pour résoudre un problème de
programmation linéaire. ‘’linprog‘’ trouve le minimum du problème étudié, sa forme générale est
[x, fval ,exitflag, output, lambda] = linprog(f, A, a, B, b, lb, ub, x0, options)
Ou [x, fval ,exitflag, output, lambda] = linprog(problem)
Cette fonction est basée sur la formulation suivante

 Min f T x
 x
 A x  a

 Bx b
lb  x  ub

Les entrées de cette fonction représentent les données d’un problème de programmation linéaire
F Vecteur de la fonction objectif linéaire. lb, ub Vecteurs des valeurs limites.
A, a Matrice et vecteur des coefficients des contraintes x0 Point initial ou point de départ pour x
d’inégalité. (algorithme d’ensemble actif).
B, b Matrice et vecteur des coefficients des contraintes options Une structure qui définit les options utilisées par
d’égalité. la fonction ‘’linprog‘’.

La fonction donne la solution avec des informations sur l’opération d’optimisation dans les sorties
x La solution optimale fval La valeur optimale de la fonction objectif
exitflag décrit la convergence en utilisant des nombres entiers. exitflag > 0 → il existe une convergence.
output Donne des informations sur le résultat de l’optimisation, tel que nombre d’itération et algorithme utilisé.
lambda Structure contenant les multiplicateurs de Lagrange correspondant aux contraintes.

‘’options‘’ contient un ensemble de paramètres qui peuvent être utilisés dans les algorithmes d’optimisation de
cette fonction. Pour voir ces paramètres, il faut taper dans la fenêtre des commandes l’instruction suivante
>> optimset('linprog')
‘’linprog‘’ utilise par défaut l’algorithme de points intérieurs et l’option ‘’LargeScale‘’. Les algorithmes de simplexe
et ensemble actif sont généralement utilisé pour résoudre des problèmes de medium-scale. Dans ce TP, nous nous
intéressons qu’aux paramètres du Simplexe. Pour forcer le Matlab à utiliser l’algorithme du Simplexe on utilisera
la commande ‘’optimset‘’ comme suit
>> options = optimset('Algorithm', 'simplex', 'LargeScale', 'off', 'Simplex', 'on') ou
>> options = optimoptions('linprog','Algorithm','simplex')

Nom : Signature
Prénom :
La date :
Les autres options peuvent être également modifiées, où
Diagnostics Afficher les informations de diagnostique sur la fonction optimisée. Les choix sont 'off' ou 'on'.
Display Type d’affichage. 'off' ou 'none' n’affiche rien, 'iter' affiche dans chaque itération, 'final' affiche juste la valeur
finale.
MaxIter Nombre d’itération maximal. Valeur par défaut sont 85 pour l’algorithme de points intérieurs, 10 × nombre
de variables pour le Simplexe, 10 × max(nombre de variables, nombre d’inégalités, nombre de bornes)
pour l’algorithme d’ensemble actif.
TolFun Tolérance de résiliation.

2. Exemple
Exemple de minimisation

 Minimiser z  5 x1  4 x2  6 x3
 x x x  20
 1 2 3

3x1  2 x2  4 x3  42
 3x  2 x  30
 1 2

 x1 , x2 , x3 0

Solution :
>> f = [-5;-4;-6]; A=[1 -1 1; 3 2 4; 3 2 0]; b=[20; 42; 30]; lb=zeros(3,1);
>> options = optimset('Algorithm', 'simplex', 'LargeScale', 'off', 'Simplex', 'on');
>> [x, fval, exitflag, output, lambda]=linprog(f, A, b, [], [], lb, [], [], options);
La solution optimale x1 = 0, x2 = 15, x3 = 3. La valeur optimale de la fonction objectif fval = -78.
Partie II
Appliquer l’algorithme du simplexe pour résoudre les problèmes de programmation linéaire présentés ci-
dessous et commenter sur les résultats obtenus dans chaque cas

Minimiser z  3x1  x2  9 x3  x4
 x  2x  x 4

(1)  1 3 4

 x2  x3  x4 2

 x1 , x2 , x3 , x4 0

Récrire les commandes tapées


………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Récrire les résultats obtenus
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Remarques
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………...
Minimiser z  3x1  x2  9 x3  x4
 x  2x  x  2

(2)  1 3 4

 x2  x3  x4 2

 x1 , x2 , x3 , x4 0

Récrire les commandes tapées


………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Récrire les résultats obtenus
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Remarques
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………...
Minimiser z  3 x1  2 x2  8 x3  x4
 x  2x  x  2

(3)  1 3 4

 x2  x3  x4 2

 x1 , x2 , x3 , x4 0

Récrire les commandes tapées


………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Récrire les résultats obtenus
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Remarques
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………...
 Minimiser z  2 x1  10 x2  8 x3
 x x x 6
 1 2 3

(4)  x2  2 x3 8
 x  2x  2x 4
 1 2 3

 x1 , x2 , x3 0

Récrire les commandes tapées


………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Récrire les résultats obtenus
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Remarques
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………...
 Maximiser z  4 x1  6 x2  3 x3
 x  6x  2x  24

(5)  1 2 3

 x1  3x2  2 x3 9

 x1 , x2 , x3 0

Récrire les commandes tapées


………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Récrire les résultats obtenus
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
Remarques
………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………...

Vous aimerez peut-être aussi