Document associé : Arbre de décision logiciel

publicité
Arbre de décision logiciel
18 novembre 2010
Soit f une fonction à minimiser, quels logiciels open source choisir ?
Il existe un très grand nombre d’algorithmes disponibles gratuitement sur internet. Mais bien entendu, il n’existe pas d’algorithme miracle résolvant tous les
problèmes. C’est pourquoi avant d’utiliser un algorithme d’optimisation, il est très
important de identifier le type de problème que l’on désire résoudre afin de choisir l’algorithme le plus adapté. Voici quelques éléments permettant d’orienter ce
choix.
1
Optimisation locale sans contrainte : minx∈Rn f (x)
– Si f est deux fois continûment différentiable, sans gradient ni hessienne
disponible,
– f est seulement Lipschitz continue et de dimension raisonnable (quelques
centaines),
– le gradient de f est disponible (soit par calcul direct, soit par différencesfinies) et la dimension raisonnable (quelques centaines),
– f est convexe et différentiable et de grande dimension,
– f générale, de grande dimension mais sans comportement "piégeux",
– f fortement non-quadratique et de grande dimension,
– f est bruitée,
– f est coûteuse à évaluer.
1
1.1
Si f est deux fois continûment différentiable, sans gradient
ni hessienne disponible
Méthode de pattern search basée sur des interpolations/approximations quadratiques ou polynomiales
– NEWUOA : méthode d’optimisation par approximation quadratique sans
contraintes (f77),
– BOBYQA : méthode d’optimisation par approximation quadratique avec
contraintes de type "boîte" (f77),
– DFO : méthode d’optimisation sans dérivée par approximation quadratique
et résolution par méthode de région de confiance (f77, Matlab),
– WEDGE : méthode d’optimisation par interpolation avec région de confiance,
en moyenne dimension (Matlab),
– MCToolbox algorithme de Nelder-Mead (Matlab).
1.2
f est seulement Lipschitz continue et de dimension raisonnable (quelques centaines)
– GradSamp : Non-lisse, non-convexe, optimisation par échantillonnage de
gradient (Matlab),
– HANSO : algorithme hybride pour l’optimisation non-lisse, non-convexe
utilisant les mises à jour de quasi-Newton et l’echantillonage de gradient
(Matlab),
– SolvOpt : Solveur pour problèmes non-lisses sans ou avec contraintes (Matlab, f90 and C),
– OBOE : méthode d’optimisation pour problèmes convexes utilisant un solveur de points intérieurs annexe (C++).
1.3 le gradient de f est disponible (soit par calcul direct, soit
par différences-finies) et de dimension raisonnable
Méthode de pattern search, quasi-Newton, BFGS ou région de confiance
– netlib/toms/500 : implémentation de BFGS et du gradient conjugué,
– netlib/toms/611 : méthode de région de confiance utilisant BFGS,
– netlib/toms/739 : méthode de quasi-Newton pour f fortement non quadratique,
– NMTR : méthode de région de confiance,
– csminwel : implémentation particulière de BFGS dédiée aux cas où f est
non-lisse (Matlab).
2
1.4 f est convexe et différentiable, de grande dimension
– netlib/opt/ve08 : méthode spéciale de quasi-Newton dans le cas où f est une
somme de fonctions convexes, chacunes dépendant de peu de variables,
– NESTA : Méthode de Nesterov.
1.5 f générale, de grande dimension mais f sans comportement "piégeux"
– netlib/toms/630 : méthode de quasi-Newton et de gradient conjugué,
– MINPACK-2 : une autre méthode de quasi-Newton, résolution de problème
de moindre carré,
– LBFGS : une méthode de quasi-Newton utilisant une représentation matricielle avantageuse d’un point de vue mémoire (Java, f90,C++, Delphi, VB6,
Matlab),
– CG+ : implémentations classiques du gradient conjugué,
– LM : méthodes d’optimisation sans contraintes et contraintes de boîtes (f90).
1.6 f fortement non-quadratique et de grande dimension
– netlib/opt/tn : méthode de Newton tronquée, basée sur la méthode de Lanczos (C),
– netlib/toms/702 : autre implémentation de la méthode de Newton tronquée
basée sur la méthode de Lanczos (C),
– TRON : méthode de région de confiance (avec contraintes de boite) utilisant
la direction du gradient conjugué préconditionné,
– PL2 : autre implémentation de la méthode de Newton tronquée, basée sur la
méthode de Lanczos dédiée au cas où n est grand.
1.7 f est bruitée
– CMA-ES : algorithme évolutionnaire avec Covariance Matrix Adaptation
(Matlab),
– SNOBFIT : Stable Noisy Optimization by Branch and FIT (Matlab),
– NEWUOA : méthode d’optimisation par approximation quadratique sans
contraintes (f77),
– BOBYQA : méthode d’optimisation par approximation quadratique avec
contraintes de type "boîte" (f77),
– netlib/opt/subplex : modification de l’algorithme de Nelder-Mead en petite
dimension (Matlab).
3
1.8 f est coûteuse à évaluer
– NOMAD : recherche directe, implémentation de l’algorithme MADS (C++),
– Spacemap : méthode d’optimisation utilisant les Surrogate Models (Matlab)
– DACE : méthode d’optimisation utilisant l’approximation à l’aide de modèle de Krigeage (Matlab).
– DFO : méthode d’optimisation sans dérivée par approximation quadratique
et région de confiance (f77, Matlab),
2
Optimisation avec contraintes
L’optimisation avec contraintes a été extrêmement étudiée ces dernières années. Actuellement, le projet COIN-OR est sans nul doute celui qui a su fédérer le
plus grand nombre d’algorithmes open sources, dont beaucoup sont actuellement
les plus performants de leur domaine. Ce projet est financé par IBM et met également à disposition un serveur gratuit NEOS afin de tester tous les algorithmes
de façon simple directement par une interface web. Un autre avantage est que la
plus part de ces algorithmes disposent d’une interface avec les logiciels AMPL et
GAMS, qui sont actuellement les langages de modélisation les plus utilisés.
– COIN-OR : http ://www.coin-or.org
– NEOS : http ://www-neos.mcs.anl.gov/
3
Optimisation globale
(se rapporter à l’exposé de Marcel Mongeau pour plus de détails)
– Multistart Method
– Metaheuristic Methods
– Taboo Research, (Glover and Hansen),
– Variable Neighborhood Search : VNS, (Mladenovitch and Hansen),
– Kangourou Method...
– Stochastic Global Optimization Methods
– Simulated Annealing, Genetic Algorithms, Evolutionary Algorithms...
– Deterministic Global Optimization Methods
– Particular structure of problems :
– Convex functions + Theory,
– Linear programs : Simplex Algorithm (Danzig)
– Quadratic programs : (Sherali, Audet, Hansen et al.)...,
– More General Problems =⇒ Branch and Bound Techniques
– Difference of convex or monotonic functions, (Horst and Tuy),
– Interval analysis (Ratsheck, Rokne, E. Hansen)...
4
Téléchargement