Developpez.com - Algorithmique

Le Club des Développeurs et IT Pro

Sortie de Gurobi 9.0

Avec un solveur quadratique non convexe (contraintes et objectifs) et des améliorations appréciables de performance

Le 2019-11-27 01:32:06, par dourouc05, Responsable Qt & Livres
Gurobi est un solveur d'optimisation mathématique bien connu pour ses améliorations de performance : à son arrivée sur le marché, il a relancé la concurrence en termes de performance. La version 9.0 vient de sortir et elle apporte, bien évidemment, son lot d'améliorations de performance, mais pas seulement : désormais, Gurobi peut résoudre des problèmes quadratiques non convexes (que les termes non convexes se trouvent dans l'objectif ou dans les contraintes). CPLEX dispose d'une fonctionnalité similaire depuis quelques années, mais limitées à une non-convexité dans la fonction objectif. Les deux solveurs peuvent travailler avec des variables entières et une non-convexité (présente lors du relâchement des contraintes d'intégrité).


En termes de performance brute, sur la suite de tests de Gurobi, l'implémentation du simplexe pour les problèmes linéaires est sept pour cent plus rapide ; l'algorithme de point intérieur, lui, va sept pour cent plus vite (et jusque onze pour cent si Gurobi peut exploiter les instructions AVX512). Les améliorations de performance sont plus marquées pour les problèmes faisant appel à des variables entières : dix-huit pour cent pour les problèmes linéaires en nombres entiers (vingt-six pour cent pour les modèles qui prenaient plus de cent secondes pour la résolution) ; vingt-quatre pour cent pour les problèmes quadratiques en nombres entiers. Ces améliorations sont notamment dues à de meilleures heuristiques utilisées pour améliorer des solutions existantes.

Pour faciliter la modélisation, Gurobi continue d'améliorer son implémentation des fonctions linéaires par morceaux (PWL). On peut désormais utiliser des approximations par morceaux de contraintes non linéaires, sans devoir utiliser des contraintes linéaires et SOS. Neuf fonctions particulières sont automatiquement transformées en approximation par morceaux : polynômes, exponentielles, logarithmes, fonctions trigonométriques.



Source : Gurobi
  Discussion forum
2 commentaires
  • dourouc05
    Responsable Qt & Livres
    Tu as des versions d'évaluation librement accessibles : https://www.gurobi.com/free-trial/. Elles sont juste limitées dans le temps (avant, c'était surtout une limitation sur la taille des programmes à résoudre).
  • Aiekick
    Membre extrêmement actif
    j'aurais bien testé mais c'est payant...