Yan Gerard LAIC (Université d’Auvergne)

Slides:



Advertisements
Présentations similaires
Résolution Graphique d'un Programme Linéaire
Advertisements

Eléments d'algèbre linéaire
La Méthode de Simplexe Standardisation
CHAPITRE 5 Suites réelles.
Algorithmes et structures de données avancées Cours 7
3. Variantes de l’algorithme
Algorithmes et structures de données avancés
I. Bases de logique , théorie des ensembles
Statistique et probabilités au collège
INTRODUCTION.
Image Processing using Finite Automata Jean-Christophe Janodet Journée SATTIC.
Chapitre II.Rappels mathématiques et complexité
Génération de colonnes
indépendance linéaire
Optimisation linéaire
Méthode du Simplex (Dantzig)
ENSIIE-Master MPRO Alain Faye
TD4 2 MIC Romaric GUILLERM Algo-Prog en Ada.
Densité des N-uplets pythagoriciens
Rappel... Solution itérative de systèmes linéaires (suite et fin).
La droite dans R2 Montage préparé par : André Ross
Rappel... Systèmes dynamiques: discrets; continus.
Inéquations du 1er degré
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.
Algorithmes d ’approximation
Optimisation linéaire
Optimisation linéaire
Conception et analyse des algorithmes Les algorithmes probabilistes
Suites Numériques.
Régression linéaire (STT-2400)
Inéquations du premier degré à une inconnue
Programmation linéaire en nombres entiers : les méthodes de troncature
IFT Complexité et NP-complétude Chapitre 0 Rappels.
l’algorithme du simplexe
ASI 3 Méthodes numériques pour l’ingénieur
Tangentes Nombre dérivé.
Cours du 25 octobre Mardi le 24 octobre
MAXIMISER les RESULTATS
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Quand le français est plus important que les calculs en mathématiques
Elaboré par M. NUTH Sothan
ASI 3 Méthodes numériques pour l’ingénieur
SUITES cours 24.
D.E ZEGOUR Ecole Supérieure d’Informatique
Suites numériques Définitions.
Chapitre 3-B : AUTOMATIQUE : LES S.L.C.I.
La Logique du premier ordre LPO
INTRODUCTION.
بسم الله الرحمن الرحيم.
Master 1 en informatique Juin 2007 Visualisation d'un ensemble convexe en 2D et en 3D pour la programmation linéaire 2 / 30.
Chapitre 2 : Inéquations.
Séquence FONCTION DE VARIABLE(S) REELLE(S) :
Inéquations du premier degré à une inconnue
L’endomorphisme le plus simple est l’ homothétie
Rappels de statistiques descriptives
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.
LES LENTILLES CONVERGENTES
Théorie du point fixe 1. Rappel Ensemble ordonné Majorant, Minorant
Programmation linéaire en nombres entiers
Micro-intro aux stats.
Probas-Stats 1A novembre 10 1 Probabilités et Statistiques Année 2010/2011
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
CHAPITRE 1: LES FONCTIONS.
Thème: Les fonctions Séquence 1 : Généralités sur les fonctions
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Programmation fonctionnelle Preuve
programmation linéaire
Pierre Joli Cours de Mathématique Pierre Joli
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

Yan Gerard LAIC (Université d’Auvergne) gerard@laic.u-clermont1.fr Programmation linéaire, polarité et lancer de rayons (la programmation linéaire autrement) Yan Gerard LAIC (Université d’Auvergne) gerard@laic.u-clermont1.fr

Une escroquerie (ni expert en Programmation Linéaire ni expert en Géométrie Algorithmique) Un imposteur: Y.G Une escroquerie : Vous vendre la théorie bien connue de la Programmation Linéaire sous une forme différente (plus géométrique)

Escroc sans le savoir ? Reconnaissance de morceaux de plans discrets Données: une partie finie S de Z3 ? = Réponse à la question: S appartient-elle à un plan discret ?

Escroc sans le savoir ? ? = Escroquerie: vendre la Programmation Linéaire sous une forme méconnaissable…

Plan de l’exposé A) Programmation Linéaire 1 Introduction 2 Lemme de Farkas 3 Géométrie des solutions B) Lancer de Rayon 4 Problèmes de Lancer de Rayon 5 Algorithmes de Lancer de Rayon

A) Programmation Linéaire 1 Introduction 2 Lemme de Farkas 3 Géométrie des solutions

1 Introduction

1.1 Bref rappel: Qu’est-ce qu’un programme linéaire ? 1 Introduction 1.1 Bref rappel: Qu’est-ce qu’un programme linéaire ? L’objectif de la programmation linéaire est de résoudre des systèmes d’inégalités linéaires Exemple : 2 x1 - 3 x2+ 4 x3 ≤ 6 - 3 x2 ≤ 0 1 x1 - 2 x3 ≤ 4 4 x1 + x3 ≤ -5 - x1 +2 x2+ x3 ≤ -1 On peut mettre sous forme matricielle. et de trouver une solution x Є Rd (si il en existe) pour laquelle une forme linéaire donnée c.x (c Є Rd ) ait une valeur maximale. Exemple : Maximiser x1 + 4 x2

Un programme linéaire est donc un problème d’optimisation de la forme suivante: Données : - Des inégalités linéaires dans Rd a1 x1+a2 x2+…+ aj xj+…+ad xd ≤ ad+1 - Une forme linéaire de Rd c.x où c Є Rd (non nul) Questions : Existe-t-il une solutions aux inégalités? Si oui, trouver une solution telle que c.x soit maximal Vocabulaire: Si un programme linéaire a des solutions, il est dit réalisable. Algorithmes de résolution: simplex (Dantzig 1947) , l’ellipsoïde (Khachiyan 1979) – polynomial - points intérieurs (Kamarkar 1984) …

1.2 Une inégalité linéaire ≈ un point Exemple : 2 x1 - 3 x2+ 4 x3 ≤ 6 (2,- 3, 4, 6) - 3 x2 ≤ 0 (0,- 3, 0, 0) 1 x1 - 2 x3 ≤ 4 (1, 0, -2, 4) 4 x1 + x3 ≤ -5 (0, 4, 1, -5) - x1 +2 x2+ x3 ≤ -1 (-1, 2, 1,-1) Notation: On formalise l’identification inégalité linéaire/point en introduisant la relation binaire # : Soient a Є Rd+1 et b Є Rd , la relation a # b est satisfaite a1 b1+a2 b2+…+ aj bj+…+ad bd ≤ ad+1 L’inégalité linéaire a1 x1+a2 x2+…+ aj xj+…+ad xd ≤ ad+1 se note donc simplement a # x où a Є Rd+1 . Exemple : L’inégalité linéaire 2 x1 - 3 x2+ 4 x3 ≤ 6 est notée (2, -3, 4, 6) # x

1.3 Les demi-droites True et False Il y a certains points a Є Rd+1 pour lesquels l’inégalité linéaire a # x a la propriété d’être toujours vraie ou toujours fausse, indépendamment du point x Є Rd considéré. La demi-droite True Prenons le point (0,0,…,0,1) Є Rd+1 , l’inégalité linéaire (0,0,…,0,1) # x est 0 x1+0 x2+…+ 0 xj+…+0 xd ≤ 1 soit 0 ≤ 1 Elle est toujours vraie. Cette propriété s’étend à tous les points a Є Rd+1 dont les d premières coordonnées sont nulles et la dernière ad+1 est positive (ad+1 ≥ 0).

La demi-droite True Prenons le point (0,0,…,0,1) Є Rd+1 , l’inégalité linéaire (0,0,…,0,1) # x est 0 x1+0 x2+…+ 0 xj+…+0 xd ≤ 1 soit 0 ≤ 1 Elle est toujours vraie. Cette propriété s’étend à tous les points a Є Rd+1 dont les d premières coordonnées sont nulles et la dernière ad+1 est positive (ad+1 ≥ 0).

La demi-droite True Prenons le point (0,0,…,0,1) Є Rd+1 , l’inégalité linéaire (0,0,…,0,1) # x est 0 x1+0 x2+…+ 0 xj+…+0 xd ≤ 1 soit 0 ≤ 1 Elle est toujours vraie. Cette propriété s’étend à tous les points a Є Rd+1 dont les d premières coordonnées sont nulles et la dernière ad+1 est positive (ad+1 ≥ 0). Il s’agit de la demi-droite [O,xd+1[ qu’on notera désormais True. Par construction, l’inégalité a # x est toujours vraie ssi a Є True .

La demi-droite False On s’intéresse aux inéquations linéaires qui sont toujours fausses: Prenons par exemple l’inéquation linéaire (0,0,…,0,-1) # x . Elle s’écrit 0 x1+0 x2+…+ 0 xj+…+0 xd ≤ -1 soit 0 ≤ -1 D’une manière générale, l’inéquation a # x est toujours fausse ( indépendamment de x ) ssi a est dans la demi droite Є ]O, - xd+1 [ . Cette demi-droite (ouverte) est appelée False.

pour tout élément a Є A et b Є B, on a a # b. 1.4 Un système d’inégalités linéaires ≈ un ensemble de points La relation binaire # définie sur les paires de points s’étend facilement aux paires d’ensembles de points soient A C Rd+1 et B C Rd , la relation A # B est satisfaite si et seulement si pour tout élément a Є A et b Є B, on a a # b. Le système d’inégalités linéaires a1,1 x1+a1,2 x2+…+ a1,j xj+…+a1,d xd ≤ a1,d+1 a2,1 x1+a2,2 x2+…+ a2,j xj+…+a2,d xd ≤ a2,d+1 … ai,1 x1+ai,2 x2+…+ ai,j xj+…+ai,d xd ≤ ai,d+1 … an,1 x1+an,2 x2+…+ an,j xj+…+an,d xd ≤ an,d+1 se note simplement A # x où A est une partie de Rd+1 .

Le système d’inégalités linéaires a1,1 x1+a1,2 x2+…+ a1,j xj+…+a1,d xd ≤ a1,d+1 a2,1 x1+a2,2 x2+…+ a2,j xj+…+a2,d xd ≤ a2,d+1 … ai,1 x1+ai,2 x2+…+ ai,j xj+…+ai,d xd ≤ ai,d+1 … an,1 x1+an,2 x2+…+ an,j xj+…+an,d xd ≤ an,d+1 se note simplement A # x où A est une partie de Rd+1 .

Le système d’inégalités linéaires a1,1 x1+a1,2 x2+…+ a1,j xj+…+a1,d xd ≤ a1,d+1 a2,1 x1+a2,2 x2+…+ a2,j xj+…+a2,d xd ≤ a2,d+1 … ai,1 x1+ai,2 x2+…+ ai,j xj+…+ai,d xd ≤ ai,d+1 … an,1 x1+an,2 x2+…+ an,j xj+…+an,d xd ≤ an,d+1 se note simplement A # x où A est une partie de Rd+1 . Exemple : 2 x1 - 3 x2+ 4 x3 ≤ 6 - 3 x2 ≤ 0 Le système d’inégalités linéaires 1 x1 - 2 x3 ≤ 4 4 x1 + x3 ≤ -5 - x1 +2 x2+ x3 ≤ -1 se note simplement A # x où A = { (2,-3,4,6) , (0,-3,0,0) , (1,0,-2,4) , (0,4,1,-5) , (-1,2,1,-1) } .

Exemple : 2 x1 - 3 x2+ 4 x3 ≤ 6 - 3 x2 ≤ 0 Le système d’inégalités linéaires 1 x1 - 2 x3 ≤ 4 4 x1 + x3 ≤ -5 - x1 +2 x2+ x3 ≤ -1 se note simplement A # x où A = { (2,-3,4,6) , (0,-3,0,0) , (1,0,-2,4) , (0,4,1,-5) , (-1,2,1,-1) } .

Exemple : 2 x1 - 3 x2+ 4 x3 ≤ 6 - 3 x2 ≤ 0 Le système d’inégalités linéaires 1 x1 - 2 x3 ≤ 4 4 x1 + x3 ≤ -5 - x1 +2 x2+ x3 ≤ -1 se note simplement A # x où A = { (2,-3,4,6) , (0,-3,0,0) , (1,0,-2,4) , (0,4,1,-5) , (-1,2,1,-1) } . A est un ensemble de points. Le fait que le système d’inégalités linéaires A # x soit ou non réalisable a-t-il une interprétation géométrique sur A ? Peut-on caractériser géométriquement les ensembles A dont le système d’inégalités linéaires A # x est réalisable ?

Peut-on caractériser géométriquement les ensembles A dont le système d’inégalités linéaires A # x est réalisable ?

Un système d’inégalités linéaires est réalisable Peut-on caractériser géométriquement les ensembles A dont le système d’inégalités linéaires A # x est réalisable ? 2 Lemme de Farkas En Programmation Linéaire, les lemmes qui caractérisent les systèmes d’inégalités linéaires réalisables sont appelés lemmes de Farkas. 2.1 Lemme de Farkas standard Un système d’inégalités linéaires est réalisable si et seulement si aucune combinaison linéaire à coefficients positifs des inégalités n’est aberrante ( 0 ≤ -1 ).

2.2 Hauteur dans Rd+1 On considère que la coordonnée verticale est la dernière: xd+1 On prend l’intersection de l’enveloppe convexe de A et de l’axe vertical Oxd+1. - Si l’intersection est vide, par convention la hauteur de A est +∞ - Sinon, c’est la borne inférieure des coordonnées xd+1 des points de l’intersection.

2.3 Lemme de Farkas géométrique Le système A # x (où A est une partie de Rd+1 ) est réalisable ssi la hauteur de A est positive ( hauteur(A) ≥ 0 ). Exemples : hauteur(A) ≥ 0 hauteur(A) ≥ 0 hauteur(A)<0 A # x non réalisable A # x réalisable A # x réalisable

2.3 Lemme de Farkas géométrique Le système A # x (où A est une partie de Rd+1 ) est réalisable ssi la hauteur de A est positive ( hauteur(A) ≥ 0 ). On sait caractériser géométriquement les ensembles A dont le système d’inégalités linéaires A # x est réalisable. nouvelle question Y a-t-il une relation géométrique entre l’ensemble A et l’ensemble des solutions ?

3 Géométrie des solutions 3.1 Remarque préliminaire L’ensemble A est une partie de Rd+1. L’ensemble des solutions de A # x est une partie de Rd. Comment relier géométriquement une partie de Rd+1 à une partie de Rd ? Il faut plonger Rd dans Rd+1. 3.2 Quel plongement de Rd dans Rd+1 ?

3.2 Quel plongement de Rd dans Rd+1 ?

3.2 Quel plongement de Rd dans Rd+1 ? L’espace affine Rd. L’espace affine Rd+1. Pourquoi l’hyperplan xd+1=-1 ? L’espace Rd se plonge naturellement dans l’hyperplan xd+1=0 de Rd+1. Parce que si on considère une inégalité linéaire a # x : a1 x1+a2 x2+…+ aj xj+…+ad xd ≤ ad+1 avec a Є Rd+1 et x Є Rd , elle se réécrit simplement On utilisera un autre plongement: L’espace Rd se plonge dans l’hyperplan xd+1=-1 de Rd+1. a.(x,-1) ≤ 0

3.2 Quel plongement de Rd dans Rd+1 ? 3.3 Propriété du plongement de Rd dans Rd+1 Soit a Є Rd+1 . En plongeant Rd dans l’hyperplan xd+1=-1 de Rd+1 on a l’équivalence x Є Rd est solution de l’inégalité linéaire a # x ssi le produit scalaire de a et du plongement de x ((x,-1) Є Rd+1) est négatif.

x Є Rd est solution du système d’inégalités A # x 3.2 Quel plongement de Rd dans Rd+1 ? 3.3 Propriété du plongement de Rd dans Rd+1 Soit a Є Rd+1 . Soit A C Rd+1 . x Є Rd est solution du système d’inégalités A # x ssi le plongement de x a des produits scalaires négatifs avec tous les points de A.

x Є Rd est solution du système d’inégalités A # x ssi le plongement de x a des produits scalaires négatifs avec tous les points de A.

x Є Rd est solution du système d’inégalités A # x ssi le plongement de x a des produits scalaires négatifs avec tous les points de A. Soit A C Rd+1 . Soit A C Rd+1 et le plongement des solutions du système d’inégalités linéaires A # x . Soit A C Rd+1 et son enveloppe convexe conique et b une solution du système linéaire A # x . Le bord de l’ensemble des solutions est donné par les faces du cône de A.

cône polaire(A)={x Є Rd+1 / forall y Є A, x.y ≤ 0} 3.4 Polarité conique Cône A Cône polaire de A Définition analytique Le cône polaire d’une partie A de Rd+1 est l’ensemble des points de Rd+1 ayant un produit scalaire négatif avec tous les points de A : cône polaire(A)={x Є Rd+1 / forall y Є A, x.y ≤ 0}

3.5 Polarité et solutions Cône convexe engendré par A Cône polaire de A L’ensemble des solutions du système d’inégalités A # x est donné par l’intersection de l’hyperplan xd+1=-1 et du cône polaire de A .

3.6 Solution optimale On cherche maintenant une solution du système d’inégalités A # x telle que le produit scalaire c.x soit maximal (c Є Rd ). Cône convexe engendré par A Cône polaire de A La formulation duale du programme linéaire affirme que la solution est donnée par la face du cône rencontrée par le rayon vertical passant par (c,0) (ou (c,-1) ).

3.6 Solution optimale On cherche maintenant une solution du système d’inégalités A # x telle que le produit scalaire c.x soit maximal (c Є Rd ). Cône convexe engendré par A Cône polaire de A Solution optimale Parler du primal (en bas) et du dual (en haut): un point du primal est un hyperplan du dual et inversement un point du dual est un hyperplan du primal La formulation duale du programme linéaire affirme que la solution est donnée par la face du cône rencontrée par le rayon vertical passant par (c,0) (ou (c,-1) ).

3.7 Point de vue conique Si on s’intéresse à la solution optimale, en quoi consiste son calcul ? La recherche de la solution optimale consiste à déterminer la face du cône convexe engendré par A qui est touchée par le rayon vertical passant par (c,0) . C’est un problème de lancer de rayon sur un cône.

3.7 Point de vue sphérique Si on assimile géométrie conique et sphérique… La programmation linéaire consiste à déterminer la face de l’enveloppe convexe (sphérique) de A’ touchée par le rayon dans la direction c. C’est un problème de lancer de rayon dans la sphère.

3.8 Conclusion Géométriquement, la programmation linéaire est un problème de lancer de rayon sur un cône convexe engendré par un ensemble de points ou de façon équivalente, un problème de lancer de rayon sur l’enveloppe convexe (sphérique) d’un ensemble de points de la sphère. La programmation linéaire est un problème de lancer de rayon posé dans la sphère Sd (de Rd+1 ). nouvelle question Quelle relation entre le problème de lancer de rayon dans la sphère Sd et le problème posé dans Rd.

B) Lancer de Rayon 4 Problèmes de Lancer de Rayon 5 Algorithmes de Lancer de Rayon

4 Problèmes de Lancer de Rayon 4.1 Lancer de Rayon dans Sd Données : - Une partie finie A de la sphère Sd - Un demi-cercle C vertical allant de False à True. Questions : Le point False est-il dans l’enveloppe convexe de A ? Sinon, trouver la face de l’enveloppe convexe de A rencontrée par C.

4 Problèmes de Lancer de Rayon 4.2 Lancer de Rayon dans Rd Données : - Une partie finie A de l’espace affine Rd - Une droite orientée D. Question : Trouver la face de l’enveloppe convexe de A rencontrée par D.

4.3 De l’espace Rd à la sphère Sd Quelle relation entre le problème de lancer de rayon dans la sphère Sd et le problème posé dans Rd ? Le problème dans Rd se projette facilement dans Sd . Et l’inverse ?

4.4 De la sphère Sd à l’espace Rd ? Il faut avoir un plan de projection sur lequel se projettent tous les points de la partie de la sphère. Et l’inverse ?

4.4 De la sphère Sd à l’espace Rd ? Il faut avoir un plan de projection sur lequel se projettent tous les points de la partie de la sphère. autrement dit un plan qui sépare l’origine de l’ensemble A. Pour trouver un tel plan on peut faire un lancer de rayon sur l’ensemble A en tant que partie de Rd+1 (un rayon partant de l’origine et dirigé par exemple vers le barycentre de A).

4.5 Synthèse Lancer de rayon dans Rd Réduction Lancer de rayon dans Sd Réduction Lancer de rayon dans Rd+1

5 Algorithmes de Lancer de Rayon 4 algorithmes de Lancer de Rayon dans Rd - Simplex - QuickFace - Megiddo (d=2) - SpherePush

Données : une partie finie A de Rd et une droite orientée D Résultat : le premier simplex à sommets dans A rencontré par D

5.1 Simplex Routine Initialisation Pivot autour d’une (d-2)-arête (Gift-Wrapping) une (d-1)-face de l’enveloppe convexe de A

5.2 QuickFace calcul de la normale au (d-1)-simplex orienté vers D calcul du point extrémal dans cette direction Initialisation Routine un (d-1)-simplex de A qui coupe D calcul de la face entrante du d-simplex

Quelques résultats expérimentaux 5.2 QuickFace Quelques résultats expérimentaux (Stage recherche M1 –Christian Franco) Caractéristiques du problème (LP) C-plex (points intérieurs) QuickFace 15 s 2.5 s 2400 contraintes 100 variables 2400 contraintes 200 variables 156 s 8.5 s 2400 contraintes 300 variables 702 s 17 s 2400 contraintes 400 variables 1880 s 28,2 s Sensibilité exponentielle à la dimension ?

5.3 Megiddo (2D) Étape 1 On apparie les points de A (de façon quelconque)

On distingue 4 types de sommets (gauche et droite) 5.3 Megiddo (2D) On distingue 4 types de sommets (gauche et droite) On distingue 2 types de cordes Étape 3 Étape 2 On détermine une direction médiane (temps linéaire) On reporte les cordes

L’arête optimale (recherchée) ne peut pas être dans le domaine grisé 5.3 Megiddo (2D) La direction de l’arête optimale étant dans le domaine rose, elle ne peut avoir un sommet vert L’arête optimale (recherchée) ne peut pas être dans le domaine grisé De quel côté de D se trouve le point extrémal dans la direction médiane ? Étape 3

5.3 Megiddo (2D) On élimine les points verts (un quart des points) et on recommence Étape 4 ……. (temps linéaire)

5.3 Megiddo (2D) L’algorithme de Megiddo est basé sur un appariement des points. Intérêt à faire des groupes de plus points ? (comme dans l’algorithme d’enveloppe convexe de Chan)

5.4 SpherePush 5.4 Sphere Push Routine Initialisation une sphère contenant A On exerce une pression selon la droite D

5.4 SpherePush A chaque étape, SpherePush fournit un hyperplan extérieur à l’ensemble A qu’on pousse progressivement le long de D. Par dualité et en termes de programmation linéaire, SpherePush est donc un algorithme de points intérieurs. Peut-on comprendre par ce biais les algorithmes classiques de points intérieurs ?

5.5 Conclusion Lancer de Rayon dans Rd Réduction Lancer de Rayon dans Sd Réduction Lancer de Rayon dans Rd+1 Les algorithmes de Programmation Linéaire peuvent s’interpréter géométriquement comme des algorithmes de Lancer de Rayon. Inversement, les algorithmes de Lancer de Rayon permettent de résoudre géométriquement des programmes linéaires. Devenir un escroc de la programmation linéaire, c’est facile…

Merci de votre attention…