Introduction
La difficulté actuelle de la programmation linéaire n'est pas la résolution
du système d'inéquations composant les contraintes, mais plutôt la construction de ce système.
Afin de réduire cette difficulté, les modeleurs de programmes linéaires ont fait leur apparition.
Nous proposons ici le modeleur que nous avons développé dans le cadre d'un projet réalisé lors
de notre deuxième année à l'ISIMA sous la direction de
Christophe Duhamel. Ce modeleur répond au doux nom de Modelib, il est gratuit. En comparaison, il existe déjà
plusieurs modeleurs de programmes linéaires professionnels, comme
OPL Studio
ou XPRESS-MOSEL.
Possibilités
Modelib a plusieurs objectifs. Dans un premier temps, il permet d´écrire des programmes
linéaires simples avec une syntaxe proche de celle d'OPL Studio, c´est-à-dire proche de celle
des mathématiques. Il permet le chargement, la modification et la sauvegarde de programmes linéaire.
Il permet d´appeler des solveurs pour le résoudre, avec pour le moment un choix entre
CPLEX et GLPK. Il permet de visualiser les résultats sous forme de texte
console épuré, de fichier HTML ou encore de fichier LaTeX. Il dispose aussi d'une collection d'objets
facilitant la création de gros programme linéaire, facilitant la programmation linéaire à partir de graphes
et de matrice de valeurs.
Caractéristiques
Modelib a été entierement programmé en C++. Il se présente sous la forme d'une bibilothèque statique.
Nous nous sommes efforcés d'assurer sa portabilité, il a été développé en parallèle sous
Linux (2.6) et Windows. Il utilise des outils basiques du C++, notamment la STL. La configuration
requise dépend étroitement de la taille des programmes linéaires à modeliser.
Pour construire un programme linéaire de deux millions de variables, il faut moins d'une minute avec un
processeur Athlon XP 2600+ et 512 Mo de DDR. En pratique, l´ordre de grandeur de la modélisation
sera inférieur à celle de la résolution.
Le format utilisé pour stocker les programmes linéaires est le format LP.