Outils logiciels

Le développement logiciel au GERAD

Depuis la création du GERAD, les membres qui y sont associés ont développé ou collaboré au développement de plusieurs logiciels solutionnant des problèmes théoriques ou industriels complexes, qui sont utilisés de manière exhaustive par l'industrie ou par les communautés de recherche et étudiante. La majorité de ces logiciels sont disponibles gratuitement ou en source libre, certains autres sont commerciaux. Ci-dessous se trouve une brève description des efforts les plus importants dans cette direction ainsi que, le cas échéant, les liens menant vers plus d'information pour accéder aux logiciels.

NOMAD

  • Les professeurs Charles Audet et Sébastien Le Digabel et leur équipe ont développé le logiciel NOMAD – Optimisation de boîtes noires. Un problème d'optimisation par boîte noire consiste à minimiser un objectif soumis à des contraintes, où les différentes fonctions définissant le problème peuvent nécessiter l'exécution d'une ou de plusieurs simulations. Dans le contexte de l'optimisation, l'objectif est de trouver la meilleure solution réalisable compte tenu d'un budget limité d'évaluations. Une extension de ces travaux appliquée à l'optimisation des hyperparamètres des réseaux de neurones profonds a mené à la création du logiciel HyperNOMAD. Ces deux logiciels sont disponibles en source libre.

AutoGraphiX (AGX)

  • Le professeur Gilles Caporossi a développé le logiciel AutoGraphiX (AGX), un logiciel gratuit conçu pour aider les chercheurs en théorie des graphes. L'objectif principal d'AGX est de rechercher des graphes extrémaux, c'est-à-dire des graphes minimisant ou maximisant un invariant de graphe (ou une fonction d'invariants de graphe, qui pourrait aussi être considéré comme un invariant).

GENCOL

  • Les professeurs Guy Desaulniers, Jacques Desrosiers et François Soumis ont développé le logiciel commercial GENCOL. Il est utilisé pour résoudre des applications dont les solutions peuvent être représentées sous forme de chemins dans les réseaux. Ces trajets correspondent par exemple à des horaires d'autobus ou à des rotations (pairs) de pilotes et d'agents de bord qui assurent les vols proposés par une compagnie aérienne. La méthodologie utilisée – la génération de colonnes – permet de résoudre des problèmes avec quelques centaines de millions de tels chemins, et ce, dans les transports scolaires, aériens, urbains, ferroviaires et maritimes. Se combinant à la génération de colonnes, des techniques d'agrégation dynamique de contraintes et de simplexe intégral utilisant la décomposition ont aussi été intégrées dans GENCOL, avec la collaboration du professeur Issmail El Hallaoui, afin de permettre la résolution de problèmes de plus grande envergure.

Le professeur Dominique Orban a développé ou participé au développement de nombreux logiciels particulièrement pour l'optimisation continue et non linéaire :

GALAHAD

  • GALAHAD est une bibliothèque de routines Fortran 2003 disponible en version gratuite permettant de résoudre des problèmes d'optimisation continue non linéaires. Les domaines couverts sont l'optimisation non linéaire avec et sans contraintes, et en particulier l'optimisation quadratique convexe et non convexe, les systèmes d'équations et d'inéquations non linéaires et les problèmes des moindres carrés non linéaires.

JuliaSmoothOptimizers

  • JuliaSmoothOptimizers est un environnement en source libre sur GitHub, contenant une collection de routines Julia pour le développement, les tests et l'analyse comparative de logiciels d'optimisation non linéaire. Sont fournis des outils pour la construction de modèles, l'accès aux référentiels de problèmes, la résolution de sous-problèmes, l'algèbre linéaire et la résolution de problèmes.

PythonOptimizers

  • PythonOptimizers est un environnement Python de modélisation et de résolution de problèmes d'optimisation continue qui est en source libre sur GitHub.

CUTEst

  • Enfin, CUTEst est un environnement en source libre de modélisation et de test pour les logiciels d'optimisation avec et sans contraintes. CUTEst est écrit en Fortran 2003, mais des interfaces en Fortran 77 et en C permettent un appel depuis d'autres langages, tels que MATLAB, Python et Julia.