l algorithme du simplexe

Documents pareils
Programmation linéaire

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Programmation Linéaire - Cours 1

Programmation linéaire

Programmation linéaire et Optimisation. Didier Smets

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Organigramme / Algorigramme Dossier élève 1 SI

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Introduction à MATLAB R

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Cours 02 : Problème général de la programmation linéaire

Cours de recherche opérationnelle I

Algorithmique et structures de données I

Optimisation Discrète

Jean-Philippe Préaux

Algorithmes de recherche

Architecture des Systèmes d Information Architecture des Systèmes d Information

Fonctions de plusieurs variables

RECHERCHE OPERATIONNELLE

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Travaux dirigés n 1. Programmation linéaire

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Polynômes à plusieurs variables. Résultant

Optimisation for Cloud Computing and Big Data

LES MÉTHODES DE POINT INTÉRIEUR 1

Fonctions de plusieurs variables

Programmation linéaire

Chp. 4. Minimisation d une fonction d une variable

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Saisie des chauffe-eau thermodynamiques à compression électrique

INFO-F Algorithmique 3 et Recherche Opérationnelle

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Limitations of the Playstation 3 for High Performance Cluster Computing

MIS 102 Initiation à l Informatique

Plan du cours Cours théoriques. 29 septembre 2014

Résolution de systèmes linéaires par des méthodes directes

Théorie et codage de l information

Cours d analyse numérique SMI-S4

Optimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Algorithmique et Programmation Fonctionnelle

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Résolution d équations non linéaires

Gestion Projet. Cours 3. Le cycle de vie

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

L apport du HPC pour l optimisation. Eric Jacquet-Lagrèze. FORUM TERATEC 28 juin 2011

Cours de Master Recherche

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Arbres binaires de décision

Annexe 6. Notions d ordonnancement.

CARTE DE VOEUX À L ASSOCIAEDRE

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Gestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes.

Chapitre 5 : Flot maximal dans un graphe

Feuille TD n 1 Exercices d algorithmique éléments de correction

Eléments de Théorie des Graphes et Programmation Linéaire

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Quantification Scalaire et Prédictive

Algorithmique et Programmation

Intelligence Economique - Business Intelligence

Le syndrome du nouveau patron. Le syndrome du nouveau patron illustré

Qualité du logiciel: Méthodes de test

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Correction TD algorithmique

Chapitre VI - Méthodes de factorisation

Corrigé des TD 1 à 5

Revue d article : Dynamic Replica Placement for Scalable Content Delivery

de calibration Master 2: Calibration de modèles: présentation et simulation d

Couplage efficace entre Optimisation et Simulation stochastique Application à la maintenance optimale d une constellation de satellites

1 Recherche en table par balayage

Optimisation, traitement d image et éclipse de Soleil

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Programmation par contraintes. Laurent Beaudou

COMMENT FONCTIONNE GOOGLE?

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Problème 1 : applications du plan affine

Quelques algorithmes simples dont l analyse n est pas si simple

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Modélisation multi-agents - Agents réactifs

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Introduction au maillage pour le calcul scientifique

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Bases de programmation. Cours 5. Structurer les données

Cours 1 : Qu est-ce que la programmation?

Introduction au datamining

Théorèmes de Point Fixe et Applications 1

Transcription:

l algorithme du simplexe Algorithme efficace pour résoudre des problèmes de programmation linéaire (ou de trouver qu il n y a pas de solution) Beaucoup utilisé et réussit sur les problèmes réels Théoriquement trop lent pour des problèmes très bizarres p. 1/1

p. 2/1 L idée de base (géométrique) Choisir une solution réalisable de base (sommet du polytope) Si la fonction objective a une valeur supérieure à un sommet voisin, aller à ce sommet Répéter (tant que possible...)

Pourquoi ça marche? Chaque arête parcourue augmente la fonction objective: donc pas de boucles Le nombre de sommets est fini: donc terminaison garantie Pas de maximaux locaux qui ne sont pas de maximaux globaux: donc l algorithme ne peut se terminer qu à une solution optimale (s il y en a) Comment est-ce que ça s arrête? Aucun sommet voisin avec une valeur supérieure de z On a trouvé la valeur optimale (si elle existe) p. 3/1

p. 4/1 C est quoi, un sommet voisin? Le sommet actuel est déterminé par n équations Une arête du polytope qui passe par ce sommet est déterminée par n 1 parmi elles Un voisin est donnée par les n 1 et une nouvelle équation Un ensemble de n 1 des équations actuelles et une nouvelle peut échouer (aucune solution ou plusieurs solutions ou pas réalisable ou valeur pas améliorée) Sur une arête il n y a que deux solutions de base réalisables

p. 5/1 Un très petit exemple de parcours itératif calculé de façon naïve Deux variables x 1 et x 2 Deux contraintes explicites: 3x 1 + 2x 2 30 2x 1 + x 2 8 les 2 contraintes implicites: x 1, x 2 0 z = 3x 1 + 2x 2 à maximiser. La solution de base x 1 = x 2 = 0 est réalisable avec z = 0. Les solutions voisines sont obtenues en supprimant une des équations x 1 = 0 ou x 2 = 0 et en ajoutant une des équations 3x 1 + 2x 2 = 30 ou 2x 1 + x 2 = 8

p. 6/1 Donc quatre possibilités: x 1 = 0, 3x 1 + 2x 2 = 30: x 2 = 15 n est pas réalisable. x 1 = 0, 2x 1 + x 2 = 8: x 2 = 8 réalisable avec z = 16. x 2 = 0, 3x 1 + 2x = 30: x 1 = 10 réalisable avec z = 30. x 2 = 0, 2x 1 + x 2 = 8: x 1 = 4 n est pas réalisable.

On continue de la solution: x 1 = 0, 2x 1 + x 2 = 8, z = 16. Supprimer une des équations: x 1 = 0, 2x 1 + x 2 = 8 Ajouter une équation choisie parmi x 2 = 0, 3x 1 + 2x = 30 En fait on ne trouve qu une nouvelle solution: 3x 1 + 2x 2 = 30, 2x 1 + x 2 = 8: x 1 = 2, x 2 = 12 réalisable avec z = 18, donc une amélioration. Et ainsi de suite (mais pour ce petit exemple il n y a plus de possibilités d amélioration). p. 7/1

Impressionnant? Non! On a fait 3 itérations et pour chaque itération on calcule 4 voisins; donc 12 sommets calculés sur les 6 qui existent! Mais pour un exemple de taille raisonnable c est mieux : 10 variables et 10 contraintes explicites : 184756 sommets Si l algorithme prend 40 itérations (un peu pessimiste), on n en calcule que 40 10 10 = 4000. (Et on va voir que le vrai algorithme fait encore moins de calcul) Plus la taille du problème est élevée, plus cette méthode gagne par rapport à la méthode très naïve de calculer toutes les solutions de base. p. 8/1

Le vrai algorithme du simplexe de Dantzig p. 9/1 Calcul beaucoup plus vite d un bon voisin On considère d abord le cas où (0, 0,..., 0) est une solution de base réalisable et l algorithme part de là: On va supprimer une seule des équations x j = 0; donc cette variable x j va devenir positive et les autres resteront nulles. Donc, il faut choisir une variable à coefficient positif en z. En choisir une (peut-être mais pas forcément celle au coefficient le plus élevé?) Chaque contrainte avec un coefficient a i,j > 0 donne une borne supérieure sur la nouvelle valeur de x i ; Choisir la plus petite de ces bornes; c est la contrainte qu il faut rajouter.

p. 10/1 Efficacité améliorée Une manipulation simple algébrique (le pivotage) remet le programme dans une forme où la nouvelle solution de base est (0, 0,..., 0) pour un choix différent de variables, ce qui permet de continuer de la même façon.

Deux Problèmes avec l algorithme du simplexe p. 11/1 (1) Amélioration nulle Comment? Si le nombre d équations des contraintes vérifiées à une solution est supérieure à n. Une itération jette une contrainte et en ajoute une autre ; ça peut donner la même solution. Et l algorithme pourrait boucler (même point ; ensembles différents d équations). Pourquoi ne pas jeter les contraintes inutiles? Trop difficile de les trouver! Un programme robuste doit être capable de traiter ce cas. Et une règle simple suffit: à chaque choix (colonne ou ligne du pivot), choisir la première variable possible pour sortir ou entrer.

p. 12/1 Trouver une solution de base pour commencer Modifier le problème de sorte que le nouveau problème auxiliaire aie une solution de base triviale et une solution optimale du nouveau problème soit forcément une solution réalisable (de base) de l ancien ; Résoudre ce nouveau problème par l algorithme du simplexe! Enfin commencer a résoudre le vrai problème.

Pour construire le nouveau problème: Ajouter une nouvelle variable, disons y (avec y 0) Remplacer toute contrainte lin const par lin y const (et transformer dans la forme canonique) Il existe une solution réalisable de base avec n + 1 équations vérifiées Minimiser y (maximiser y) ; si le résultat est nul, on a trouvé une solution réalisable de base de l ancien problème ; sinon il n y en a pas. p. 13/1