Nouveautés de CPLEX 12.8

Xavier Nodet

IBM CPLEX Optimisation Studio est une suite complète pour l'optimisation, comportant un solveur de programmation mathématique (CPLEX), un solveur par contraintes (CP Optimizer) ainsi qu'un environnement complet pour développer ses modèles. Les solveurs sont utilisables indépendamment de cet environnement. La dernière version, la 12.8, est sortie en décembre 2017, voici un petit récapitulatif.

Commentez

- Titre : Nouveautés de CPLEX 12.8

- Auteur : Xavier Nodet

- Parution : 20 avril 2018

- Mise à jour : 29 mai 2018

- Licence : Copyright ® 2018 IBM. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Résumé

- II. Vidéo

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

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=sUbQ_TEWrzY