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.