La méthode du simplexe.

Slides:



Advertisements
Présentations similaires
Chapitre 3 : EQUATiON DU 2ème DEGRE
Advertisements

Programmation linéaire et Recherche opérationnelle
CHAPITRE 7 DROITES ET SYSTEMES.
Résolution Graphique d'un Programme Linéaire
Eléments d'algèbre linéaire
La Méthode de Simplexe Standardisation
Explorer un espace d’états
Gestion de portefeuille
3. Variantes de l’algorithme
2. Méthodes du simplexe et son analyse.
Comment décimer les sons numériques
Résolution d’un programme linéaire
Références à une cellule dans EXCEL
CHAPITRE 13 Systèmes de deux équations à deux inconnues
Oscillations libres des systèmes à deux degrés de liberté
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
Les systèmes linéaires. 1)PRESENTATION avec x, y, z les inconnues.
Simplex en 4 Slides – explication:
Le logarithme décimal : quelques exemples (introduction, utilisation)
Cours S.S.I., SI1, avril 2007 – Comment utiliser les outils déjà présentés. Page 1 Comment utiliser les outils déjà présentés dans le cours S.S.I. et pourquoi.
CHAPITRE 8 Equations - Inéquations
5. Algorithme du simplexe
Génération de colonnes
ALGEBRE DE BOOLE Mohamed Yassine Haouam
CHAPITRE 13 Systèmes de deux équations à deux inconnues
Algorithmique et Programmation
6. Analyse postoptimale. Analyse postoptimale Mesurer linfluence sur la solution optimale de modifier certains coefficients du problème Indiquer à lutilisateur.
On souhaite résoudre le système suivant: Le but de la méthode est d'obtenir des coefficients opposés pour une inconnue (on choisira de le faire pour.
CHAPITRE 9 Equations - Inéquations
Optimisation linéaire
Méthode du Simplex (Dantzig)
Algorithme d’addition #1
Equation du second degré
Équations différentielles.
Systèmes d’équations linéaires
Calcul Intégral Au XVIIIème siècle, les mathématiciens progressent dans deux domaines séparés : les problèmes des tangentes (et la longueur des arcs) et.
Chapitre 3bis Applications linéaires et Matrices
Chapitre 5 Choix et demande.
Chapitre 8 Equations.
Mais en mathématiques, qu'est ce qu'une ligne de niveau?
5.1 SYSTÈME DÉQUATIONS LINÉAIRES Cours 13. Au dernier cours nous avons vus Léquations vectoriel et léquation normale dun plan. Lintersection de deux plans.
Optimisation linéaire
Systèmes semi-linéaires
Les fonctions leurs propriétés et.
La droite dans R3 Montage préparé par : André Ross
Références à une cellule dans EXCEL
Sous-espaces vectoriels engendrés
LA THEORIE DU PRODUCTEUR
Programmation linéaire en nombres entiers : les méthodes de troncature
l’algorithme du simplexe
MAXIMISER les RESULTATS
CHAPITRE 3: LES NOMBRES.
Optimisation et complexité
Réponses temporelles des circuits électriques
P rogrammation M athématique L inéaire TAI Optimisation & Complexité Adeline Dubois Nicolas Hubert Antonin Lapiche 28/05/2010.
Les fonctions Les propriétés.
Programmation linéaire en nombres entiers
1 SYSTEMES D’EQUATIONS Type d ’activité : leçon illustrée.
Leçon 4 NOTION DE FONCTION Fabienne BUSSAC.
- 5 - Optimisation linéaire et non-linéaire
Post-optimisation, analyse de sensibilité et paramétrage
2. Méthode du simplexe et son analyse.
3. Variantes de l’algorithme
1. Méthode du simplexe et son analyse.
Pierre Joli Cours de Mathématique Pierre Joli
Chapitre 2 Résolution de Programmes Linéaires. La méthode graphique Cette méthode est simple et s’applique à des problèmes de programmation linéaire à.
Techniques d'Optimisation Master
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Transcription de la présentation:

La méthode du simplexe

1) Algorithme du simplexe Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation linéaire à n variables. Le principe de la méthode est de transformer les contraintes qui sont des inéquations en équations en ajoutant des variables positives que l’on appelle variables d’écart. Puis on transforme ce système d’équations linéaires jusqu’à trouver la solution optimale.

2) Les étapes de la méthode Première étape : La formulation mathématique du problème Deuxième étape : Mise sous forme standard du problème Troisième étape : Application de l’algorithme du simplexe

3) La formulation mathématique du problème (1) A partir de l’énoncé du problème qui est donné en langage naturel, il faut obtenir sa formulation mathématique. C’est la phase de modélisation. Il faut déterminer et décrire avec précision les variables du problème (unités et périodes de temps de l’observation). Il faut déterminer et classer les contraintes en vérifiant l’homogénéité des unités.

3) La formulation mathématique du problème (2) Il faut déterminer la fonction économique (ou objectif) et donner le type d’optimisation recherchée (maximum ou minimum) Les contraintes et la fonction économique doivent être linéaires par rapport aux variables du problème sinon l’algorithme du simplexe n’est pas applicable.

4) Mise sous forme standard du problème Un problème de programmation linéaire est dit sous forme standard s’il vérifie les conditions suivantes : Les variables du problème doivent toutes être positives. Le type d’optimisation doit être une recherche de maximum. Les contraintes sont des contraintes d’égalité.

4-a) Transformation des variables Si une variable x est négative, on pose y = -x. La nouvelle variable y est positive et les contraintes et la fonction économique restent bien linéaires après avoir remplacé l’ancienne variable x par –y.

4-a) Transformation des variables Si une variable x est de signe quelconque, on pose x = x1-x2 où x1 et x2 sont deux nouvelles variables positives. Les contraintes et la fonction économique restent bien linéaires après avoir remplacé l’ancienne variable x par x1-x2.

4-a) Transformation des variables Si le type d’optimisation est une recherche de minimum pour la fonction économique Z, on procède à un changement de fonction économique en considérant –Z (qui est toujours une fonction linéaire des variables). On a la propriété min(Z) = - Max(-Z).

4-b) Transformation des inégalités en égalités Pour cela, il faut ajouter des variables dites variables d’écart qui doivent être également positives. On suppose qu’initialement les variables sont : x1, x2, … , xn

Cas d’une contrainte de type  ou  Au départ on a la contrainte : a1x1 + a2x2 + …. + anxn  b On ajoute une variable d’écart e positive, la contrainte devient : a1x1 + a2x2 + …. + anxn + e = b Les nouvelles variables sont : x1, x2, … , xn, e

Cas d’une contrainte de type  ou  Au départ on a la contrainte : a1x1 + a2x2 + …. + anxn  b On retranche une variable d’écart e positive, la contrainte devient : a1x1 + a2x2 + …. + anxn - e = b Les nouvelles variables sont : x1, x2, … , xn, e

Exemple Forme canonique du programme linéaire : 2x+y ≤ 800 x+2y ≤ 700 y ≤ 300 x 0, y 0 Fonction économique à maximiser : Z = 30000x + 40000y

Forme standard Le problème est mis sous forme standard en ajoutant trois variables d’écart positives, e1, e2, e3. 2x+y+e1 = 800 x+2y+e2 = 700 y+e3 = 300 x 0, y 0, e1 0, e2 0, e3 0 Max(30000x+40000y)

Tableau du simplexe Variables x y e1 e2 e3 2ème membre Ratio 2 1 800 en base x y e1 e2 e3  2ème membre Ratio 2 1 800 700 300 Z 30000 40000

Variables en base et hors-base On distinguera les variables dites « en base » et les variables dites «  hors base ». Les variables hors base ont toujours une valeur nulle, les variables en base sont celles pour lesquelles ne figurent qu’un seul 1 sur leur colonne, les autres coefficients sont nuls sur la colonne. Au départ Base={ e1, e2, e3} HorsBase={ x,y} Les coefficients de la fonction économique sont appelés taux marginaux de substitution (ou TMS). Ici 30000 et 40000.

Remarque 1 Si la fonction économique a dans son expression un coefficient constant, il faut le faire figurer dans l’avant-dernière colonne (celle des seconds membres) avec le signe opposé. C’est dans cette même cellule que l’on trouvera l’opposé de la valeur de la fonction économique pour la solution en cours et donc l’opposé de l’optimum quand il sera atteint.

Remarque 2 On remarque, dans le tableau initial, que pour chaque variable en base on a un seul un sur la colonne et les autres coefficients sont nuls. A chaque étape, le tableau devra répondre à cette exigence.

Constitution du tableau Quand le problème est mis sous forme standard, on peut appliquer l’algorithme du simplexe. Les différentes équations linéaires sont placées dans un tableau. Chaque équation est une ligne du tableau, la dernière ligne est réservée pour la fonction économique. Les colonnes correspondent aux variables du problème. A droite du tableau l’avant dernière colonne contient les seconds membres des équations. La dernière colonne contient ce que l’on appelle les ratios qui seront expliqués plus loin.

5) Application de l’algorithme du simplexe Les calculs qui sont effectués sont des calculs de combinaisons linéaires sur les lignes du tableau. On suppose comme cela est signalé dans la remarque ci-dessus que toutes les variables d’écart ont un coefficient 1. On recherche un maximum de la fonction économique.

Départ de l’algorithme Au départ, on a une solution réalisable du problème en considérant que les variables d’écart sont égales aux seconds membres et que les autres variables sont nulles. Cette solution respecte bien les contraintes de positivité et les égalités sont satisfaites

Principe de l’algorithme A chaque étape de l’algorithme, on choisit une variable hors base que l’on appelle variable entrante et une variable en base que l’on appelle variable sortante afin d’améliorer la solution précédente. Puis on transforme le tableau pour le remettre sous sa forme standard. En effet, les colonnes des variables en base ne doivent avoir qu ‘un seul 1 et des 0 ailleurs. Cette transformation se fait par combinaison linéaire des lignes.

Choix de la variable entrante On choisit celle dont le TMS est strictement positif et le plus grand possible. Si tous les TMS sont négatifs ou nuls, l’optimum est atteint. L’algorithme s’arrête

Choix de la variable sortante Après avoir choisi la variable entrante, on calcule pour chaque ligne représentant une contrainte, le ratio qui est le rapport entre le coefficient du deuxième membre de la contrainte et le coefficient sur la colonne de la variable entrante. Ce ratio peut être infini si le coefficient est nul. La variable sortante est celle dont le ratio est le plus petit strictement positif.

Transformation du tableau Après choix de la variable entrante et de la variable sortante, on transforme le tableau. L’intersection de la colonne de la variable entrante et de la ligne de la variable sortante s’appelle le pivot. Il faut transformer le tableau par combinaisons linéaires sur les lignes pour faire apparaître un 1 sur le pivot et des 0 ailleurs sur la colonne de la nouvelle variable en base.

Fin de l’algorithme L’optimum est atteint lorsque tous les TMS sont négatifs. Les variables hors base sont nulles. Les valeurs des variables en base se lisent directement sur le tableau puisque leur coefficient est 1 et que les autres variables qui ont un coefficient non nuls sur la même ligne sont hors base. La valeur de l’optimum est l’opposé de la valeur qui figure sur la ligne de la fonction économique à l’avant dernière colonne. On vérifiera cette valeur en remplaçant les valeurs des variables dans la fonction économique.

Méthode appliquée à l’exemple Base x y e1 e2 e3  2ème membre Ratio 2 1 800 700 300 Z 30000 40000 A ce stade les variables en base sont e1, e2 et e3. On remarque que pour chaque variable en base on a un seul 1 sur la colonne et que les autres coefficients sont nuls. Base={e1, e2, e3} Les variables hors base sont x et y. HorsBase={x, y}

Remarques sur le tableau initial On admettra qu’à chaque étape, les variables hors base sont nulles. Les variables en base se calculent dans le tableau en tenant compte du fait que les variables hors base sont nulles. Avec ce tableau initial, on a une solution intermédiaire (au départ) : x=0 et y=0 (car ces variables sont hors base) e1=800, e2=700, e3=300. En effet, chaque ligne du tableau correspond à une égalité.

Remarques sur le tableau initial La valeur de Z est l’opposé de la case 2ème membre de la ligne de Z. On peut la recalculer, par vérification, avec la formule Z=40000x+30000y. Initialement on a donc : Z=0 (puisque x et y sont nuls) On n’est pas à l’optimum car les TMS (Taux Marginaux de Substitution : coefficients de Z) ne sont pas tous négatifs ou nuls.

Variable entrante Base x y e1 e2 e3  2ème membre Ratio 2 1 800 700 300 Z 30000 40000 Variable entrante = Celle qui correspond au plus grand TMS strictement positif (taux marginal de substitution) coefficient >0 de la fonction objectif. Ici y est la variable entrante.

Calcul des ratios Base x y e1 e2 e3  2ème membre Ratio 2 1 800 800/1 700 700/2 300 300/1 Z 30000 40000 On calcule les ratios en divisant pour chaque variable de la base (pour chaque ligne), le coefficient du second membre par le coefficient de la colonne de la variable entrante.

Variable sortante Base x y e1 e2 e3  2ème membre Ratio 2 1 800 800/1 700 700/2 300 300/1 Z 30000 40000 Variable sortante = Celle correspondant au plus petit ratio strictement positif (coefficient du 2ème membre/coefficient colonne de la variable entrante). Ici e3 est la variable sortante.

Transformation du tableau Pivot = intersection variable entrante et sortante Dans la colonne du pivot : Il faut mettre un 1 à la place du pivot et un 0 ailleurs. En effet, il s’agit de la nouvelle variable en base.

Faire apparaître un 1 sur le pivot Si le pivot n’est pas égal à 1, il faut diviser toute la ligne par le pivot. Ici le pivot est déjà à 1.

Faire apparaître des 0 sur le reste de la colonne de la nouvelle variable en base Il faut retrancher à chaque ligne un certain nombre de fois la ligne du pivot pour faire apparaître un 0. Base x y e1 e2 e3  2ème membre Ratio 2 1 800 800/1 700 700/2 300 300/1 Z 30000 40000 Pour la ligne de e1, il faut lui retrancher la ligne du pivot. On remplace la ligne L1 par L1-L3 pivot

Autres transformations Pour la ligne de e2, il faut lui retrancher deux fois la ligne du pivot.. On remplace L2 par L2-2L3 Pour la ligne de Z, il faut lui retrancher 40000 fois la ligne du pivot.. On remplace L4 par L4 – 40000L3

Tableau 2 L’optimum n’est pas atteint (1 TMS est >0) Variables en base x y e1 e2 e3  2ème membre Ratio 2 1 -1 500 -2 100 300 Z 30000 -40000  -12000000 L’optimum n’est pas atteint (1 TMS est >0)

Variable entrante, ratios et variable sortante du tableau 2 en base x y e1 e2 e3  2ème membre Ratio 2 1 -1 500 500/2=250 -2 100 100/1=100 300 300/0= Z 30000 -40000  -12000000 Variable entrante x et sortante e2

Transformations sur le tableau 2 Le pivot est déjà à 1. Il faut remplacer L1 par L1 - 2*L2 L3 ne doit pas être changée (il y a déjà un 0) L4 doit être remplacée par L4 – 30000*L2

Tableau 3 L’optimum n’est pas atteint (1 TMS est >0) Variables en base x y e1 e2 e3  2ème membre Ratio 1 -2 3 300 100 Z -30000 20000  -15000000 L’optimum n’est pas atteint (1 TMS est >0)

Variable entrante, ratios et variable sortante du tableau 3 en base x y e1 e2 e3  2ème membre Ratio 1 -2 3 300 =300/3=100 100 =-100/2=-50 =300/1=300 Z -30000 20000  -15000000 Variable entrante e3 et sortante e1

Etape 1: Division du pivot par 3  Variables en base x y e1 e2 e3  2ème membre Ratio 1/3 -2/3 1 300/3=100 -2 100 300 Z -30000 20000  -15000000

Etape 2: Apparition des 0 sur le reste de la colonne  Variables en base x y e1 e2 e3  2ème membre Ratio 1/3 -2/3 1 300/3=100 -2 100 300 Z -30000 20000  -15000000 Il faut remplacer L2 par L2 + 2*L1, L3 par L3-L1 et L4 par L4 -20000*L1

Tableau 4 L’optimum est atteint (Tous les TMS sont négatifs) Variables en base x y e1 e2 e3  2ème membre Ratio 1/3 -2/3 1 100 2/3 -1/3 300 200 Z -20000/3 -50000/3  -17000000 L’optimum est atteint (Tous les TMS sont négatifs)

Résultats Optimum : 17 000 000 X=300 Y=200 Vérification : Z=30000X + 40000Y=30000*300 + 40000*200=17 000 000