Introduction à la Programmation Linéaire

En mathématiques, les problèmes de programmation linéaire sont des problèmes d'optimisation où la fonction objectif est une fonction linéaire de chaque variable considérée et ou les contraintes sont toutes linéaires. Les problèmes de programmation linéaire sont les problèmes d'optimisation les plus faciles à rèsoudre car toutes les contraintes sont linéaires. Beaucoup de problèmes réels de recherche opérationnelle peuvent être exprimés comme un problème de programmation linéaire. Pour cette raison un grand nombre d'algorithmes pour la résolution d'autres problèmes d'optimisation sont fondés sur la résolution de problèmes linéaires. La programmation linéaire est vraiment née dans les années 1950 lors que George Dantzig conçu l´algorithme du simplexe. Beaucoup utilisée au départ par l'armée pour la logistique, elle s'est développée au cours des années 1980 sous l'impulsion de la méthode des ellipsoïdes puis des points intérieurs. Grâce à l'introduction de la mixité, la programmation linéaire est maintenant un outil incontournable pour l'optimisation, notamment pour les ordonnancement.

Définition de la programmation linéaire

Un programme linéaire est un objet mathématique qui se compose :
On peut donc mettre un programme sous la forme normalisée suivante, avec x un vecteur de variable réelles :
	Min z = c*x
	s.c. Ax <= b
	x >= 0

Format de fichier LP

Le format de fichier LP est un format qui privilégie l'écriture d'un programme linéaire en ligne (comme la forme normalisée). Ce type de fichier de décompose en plusieurs champs :
Un fichier LP se présente sous la forme d'un fichier éditable avec un éditeur de texte et ayant les champs définis suivant les problèmes à traiter.
Exemple de fichiers LP :
	Maximize                         \ commentaire
	Obj : 9*x1 + 7*x2 + 3*x3 - x4    \ fonction objectif

	Subject to                       \ les contraintes
	C1 : x1 - 3*x2 + x5 > 12
	C2 : x3 + 9*x4 + x5 < 42

	Bounds                           \ bornes des variables
	-3 <= x1 < 45
	x2 <= 12

	Generals
	x3

	Binaries                         \ variables booléennes
	x4 , x5

	End                              \ fin du fichier LP