I. Résumé▲
L'une des premières nouveautés est une API Python entièrement rénovée. Elle devrait faciliter la modélisation dans ce langage, tant pour de l'optimisation mathématique que par contraintes. En réalité, elle existe déjà depuis un certain temps : docplex était disponible comme paquet installable et est maintenant livrée avec CPLEX. De même, l'API C++ pour CP Optimizer a été revue pour être plus cohérente.
CPLEX Optimization Studio est livré avec un environnement de développement intégré basé sur Eclipse, Oplide, pour le langage de modélisation OPL. Ce dernier était limité à Windows et Linux, mais est maintenant disponible pour macOS.
L'amélioration de la performance est continue, surtout pour les modèles les plus difficiles. À ressources de calcul égales, sur dix ans, pour les problèmes qui prenaient plus de mille secondes en 2007 (CPLEX 11.0), la dernière version met seize fois moins de temps pour trouver la solution optimale ! Les plus gros progrès viennent cependant plutôt de CP Optimizer, dont la vitesse a été plus que doublée sur un an pour des problèmes combinatoires classiques.
À proximité de la performance, le solveur de programmation mathématique génère de nouveaux avertissements lorsqu'il rencontre, dans les modèles, certaines constructions qui peuvent nuire à la performance.
Cependant, là où cette nouvelle version change radicalement par rapport aux précédentes, c'est au niveau des fonctions de rappel (callbacks). Elles servent à adapter finement le fonctionnement de CPLEX : d'en récupérer certaines informations et d'en fournir d'autres sur le problème en cours de résolution. L'API courante a évolué depuis le début de CPLEX, il y a plus de trente ans, sans être profondément retravaillée. La situation est devenue problématique dès 1996, quand CPLEX est devenu multifil : ce changement a la possibilité de casser toutes les fonctions de rappel utilisées ! Les évolutions de CPLEX depuis lors ont continué… en étant parfois incompatibles avec l'utilisation des fonctions de rappel. C'est pourquoi une nouvelle API, plus générique, a été proposée. Elle sera disponible en parallèle avec l'ancienne (une seule des deux peut être utilisée à la fois) pendant encore un certain temps. Avec cette nouvelle API, CPLEX ne désactive plus certaines fonctionnalités, ce qui peut apporter des gains de performance considérables.
II. Vidéo▲
Cliquez pour lire la vidéo