Global Optimization Toolbox

Principales fonctionnalités

  • Outils interactifs permettant de définir et de résoudre des problèmes d'optimisation, ainsi que de surveiller la progression de la solution.
  • Solveurs de recherche globale et multistart permettant de trouver les optimums globaux uniques ou multiples
  • Solveur d'algorithme génétique prenant en charge les contraintes linéaires, non linéaires et liées
  • Algorithme génétique multi-objectif avec identification du front de Pareto, y compris les contraintes linéaires et liées
  • Solveur de recherche de formes prenant en charge les contraintes linéaires, non linéaires et liées
  • Outils de simulation de recuit mettant en œuvre une méthode de recherche aléatoire et comprenant des options de définition du processus de recuit, de planification de la température et de critères d'acceptation.
  • Prise en charge du traitement parallèle par les solveurs multistart, d'algorithme génétique et de recherche de formes
  • Prise en charge des types de données personnalisés dans les solveurs d'algorithme génétique, d'algorithme génétique multi-objectif et de simulation de recuit.
Plot of a nonsmooth objective function (bottom) that is not easily solved using traditional gradient-based optimization techniques. The Optimization Tool (middle) shows the solution found using pattern search in Global Optimization Toolbox. Iterative results for function value and mesh size are shown in the top figure.

Tracé d'une fonction objectif non lisse (en bas) qui n'est pas facilement résolue avec les techniques d'optimisation basées sur les gradients traditionnelles. L'outil Optimization Tool (au milieu), montre la solution découverte en utilisant la recherche de formes dans Global Optimization Toolbox. Les résultats itératifs pour la valeur de la fonction et la taille du maillage sont montrés dans la figure du haut.

Définition, résolution et évaluation des problèmes d'optimisation

Global Optimization Toolbox propose des fonctions auxquelles vous pouvez accéder depuis la ligne de commande et depuis l'application d'optimisation dans Optimization Toolbox™. La ligne de commande et l'application vous permettent toutes deux de :

  • Sélectionner un solveur et définir un problème d'optimisation
  • Définir et vérifier les options d'optimisation
  • Exécuter des problèmes d'optimisation puis visualiser les résultats intermédiaires et finaux
  • Utiliser les solveurs Optimization Toolbox pour raffiner les résultats d'algorithme génétique, de simulation de recuit et de recherche de formes.
  • Importer et exporter les problèmes d'optimisation et les résultats dans votre espace de travail MATLAB®
  • Capturer et réutiliser le travail effectué dans l'application Optimization à l'aide de la génération de code MATLAB

Vous pouvez également personnaliser les solveurs en fournissant vos propres options d'algorithme et fonctions personnalisées. Les solveurs multistart et de recherche globale sont accessibles uniquement depuis la ligne de commande.

Visualization of Rastrigin's function that contains many local minima and one global minimum (0,0). The genetic algorithm helps you determine the best solution for functions with several local minima, while the Optimization app provides access to all key components for defining your problem, including the algorithm options.

Visualisation d'une fonction de Rastrigin (à droite) contenant de nombreux minima locaux et un minimum global (0,0). L'algorithme génétique vous aide à déterminer la meilleure solution pour les fonctions ayant plusieurs minima locaux, tandis que l'application Optimization (à gauche) donne accès à tous les composants clés pour définir votre problème, y compris les options d'algorithme.

La boîte à outils comprend un certain nombre de fonctions de tracés permettant de visualiser une optimisation. Ces visualisations offrent un retour d'information 'live' sur la progression de l'optimisation, vous permettant de décider de modifier certaines des options du solveur, ou de l'arrêter. La boîte à outils fournit des options de tracé personnalisées, à la fois pour l'algorithme génétique et pour les algorithmes de recherche de formes. Ces options comportent notamment : valeur de la fonction objectif, non-respect de contrainte, histogramme de score, généalogie, taille de maillage et évaluations de fonctions. Il est possible d'afficher plusieurs tracés ensemble, d'ouvrir des tracés spécifiques dans une nouvelle fenêtre pour les examiner de plus près d'ou ajouter vos propres fonctions de tracés.

Run-time visualizations generated while the function is being optimized using genetic algorithm plot functions selected in the Optimization app.

Visualisation du temps d’exécution (à droite) généré pendant l'optimisation de la fonction à l'aide de fonctions de tracés d'algorithme génétique sélectionnées dans l'application Optimization (à gauche).

En utilisant la fonction de sortie, vous pouvez écrire les résultats dans des fichiers, créer vos propres critères d'arrêt et écrire vos propres applications pour exécuter les solveurs de la toolbox. Lorsque vous travaillez depuis l'application Optimization, vous pouvez exporter le problème et les options d'algorithme dans l'espace de travail MATLAB, sauvegarder votre travail et le réutiliser ultérieurement ou générer du code MATLAB qui capture le travail que vous avez effectué.

MATLAB file of an optimization created using the automatic code generation feature in the Optimization app. You can export an optimization from the app as commented code that can be called from the command line and used to automate routines and preserve your work.

Fichier MATLAB d'une optimisation créée en utilisant la fonction de génération de code automatique dans l'application Optimization. Vous pouvez exporter une optimisation depuis l'application sous forme de code commenté qui peut être appelé à partir d’une ligne de commande et utilisé pour automatiser les routines et préserver votre travail.

Pendant l'exécution d'une optimisation, vous pouvez modifier certaines des options pour raffiner la solution et mettre à jour les résultats de performance dans les solveurs d'algorithme génétique, d'algorithme génétique multi-objectif, de simulation de recuit et de recherche de formes. Vous pouvez, par exemple, activer ou désactiver les fonctions de tracé, les fonctions de sortie et l'affichage itératif de la ligne de commande pendant l'exécution afin d'afficher des résultats intermédiaires et d'interroger la progression de la solution, tout cela sans avoir à arrêter et redémarrer le solveur. Vous pouvez également modifier les conditions d'arrêt pour affiner la progression de la solution ou réduire le nombre d'itérations requises pour parvenir à la tolérance souhaitée en fonction du retour d'information sur la performance pendant l'exécution.

Solveurs de recherche globale et multistart

Les solveurs de recherche globale et multistart utilisent des méthodes basées sur les gradients pour renvoyer des minimums locaux et globaux. Ces deux solveurs démarrent un solveur local (dans Optimization Toolbox) à partir de plusieurs points de départ et stockent les solutions locales et globales découvertes pendant le processus de recherche.

Le solveur de recherche globale :

  • Utilise un algorithme de recherche dispersée pour générer plusieurs points de démarrage
  • Filtre les points de démarrage non prometteurs sur la base de valeurs de fonctions objectif et de contrainte et de minimums locaux déjà découverts
  • Exécute un solveur d'optimisation non linéaire contraint pour rechercher un minimum local à partir des points de départ restants

Le solveur multistart utilise soit des points de départ répartis uniformément à l'intérieur de limites prédéfinies, soit des points de départ définis par l'utilisateur pour trouver plusieurs minimums locaux, y compris un minimum global unique s'il en existe un. Le solveur multistart exécute le solveur local à partir de tous les points de départ et peut être exécuté en série ou en parallèle (via Parallel Computing Toolbox™). Le solveur multistart permet aussi d'être flexible quant au choix des différents solveurs non linéaires locaux. Parmi les solveurs locaux disponibles se trouvent notamment les suivants : non linéaire non contraint, non linéaire contraint, moindres carrés non linéaire et ajustement de courbe moindre carrés non linéaire.

Optimisation non linéaire avec Global Search Solver
Trouvez les minima locaux et globaux de la fonction peaks.

Régression non linéaire avec Multistart Solver
Trouvez les paramètres les mieux adaptés pour un modèle exponentiel.

Solveur d'algorithme génétique

L'algorithme génétique résout les problèmes d'optimisation en imitant les principes de l'évolution biologique et en modifiant de façon répétée une population de points individuels avec des règles copiant les combinaisons de gènes dans la reproduction biologique. En raison de sa nature aléatoire l'algorithme génétique améliore vos chances de trouver une solution globale. Il vous permet de résoudre des problèmes d'optimisation non contrainte, sous contraintes liées et générales et ne requiert pas que les fonctions soient dérivables ou continues.

Le tableau suivant montre les options d'algorithme génétique standard proposées par Global Optimization Toolbox.

EtapeOption d'algorithme génétique
CréationUniforme, faisable
Etalonnement d'adéquationBasé sur le rang, proportionnel, de premier niveau (tronquage), linéaire shift
SélectionRoulette, sélection uniforme stochastique (SUS), par tournoi, uniforme, par reste
EnjambementArithmétique, heuristique, intermédiaire, diffusé, à point unique, à deux points
MutationFaisable adaptatif, gaussien, uniforme
TracésMeilleure adaptation meilleur individu, distance entre les individus, diversité de population, attente des individus, contrainte max., plage, index de sélection, conditions d'arrêt

Global Optimization Toolbox vous permet aussi de spécifier :

  • Taille de la population
  • Nombre d'élites parmi les enfants
  • Fraction d'enjambement
  • Migration parmi les sous-populations (avec une topologie en anneau)
  • Limites, contraintes linéaires et non linéaires pour un problème d'optimisation

Vous pouvez personnaliser ces options d'algorithmes en fournissant des options définies par l'utilisateur et représenter le problème dans de nombreux formats de données, par exemple, en définissant les variables qui sont des entiers, des entiers mixtes, catégoriques ou complexes.

Vous pouvez baser les critères d'arrêt pour l'algorithme sur le temps, les blocages, la limite d'adaptation ou le nombre de générations. Et vous pouvez représenter votre fonction d'adaptation sous forme de vecteur pour améliorer la vitesse d'exécution ou exécuter les fonctions objectif et de contrainte en parallèle (à l'aide de Parallel Computing Toolbox).

Optimal Component Selection Using the Mixed-Integer Genetic Algorithm
Use the mixed-integer genetic algorithm to solve an engineering design problem.

Solveur d'algorithme génétique multi-objectif

L'optimisation multi-objectif cherche à minimiser plusieurs fonctions objectif soumises à un ensemble de contraintes. Le solveur d'algorithme multi-objectif sert à résoudre les problèmes d'optimisation multi-objectif en identifiant le front de Pareto, c'est-à-dire l'ensemble de solutions optimales non dominées réparties uniformément. Vous pouvez utiliser ce solveur pour résoudre les problèmes d'optimisation lisses et non lisses avec ou sans limites et contraintes linéaires. L'algorithme génétique multi-objectif ne requiert pas que les fonctions soient dérivables ou continues.

Le tableau suivant montre les options d'algorithme génétique multi-objectif standard proposées par Global Optimization Toolbox.

EtapeOption d'algorithme génétique multi-objectif
CréationUniforme, faisable
Etalonnement d'adéquationBasé sur le rang, proportionnel, de premier niveau (tronquage), linéaire shift
SélectionDe tournoi
EnjambementArithmétique, heuristique, intermédiaire, diffusé, à point unique, à deux points
MutationFaisable adaptatif, gaussien, uniforme
TracésDistance de Pareto moyenne, répartition de Pareto moyenne, distance entre les individus, diversité de population , attente des individus, front de Pareto, histogramme de rang, index de sélection, conditions d'arrêt

Global Optimization Toolbox vous permet aussi de spécifier :

  • Taille de la population
  • Fraction d'enjambement
  • Fraction de Pareto
  • Mesure de la distance entre les individus
  • Migration parmi les sous-populations (avec une topologie en anneau)
  • Contraintes linéaires et liées pour un problème d'optimisation

Vous pouvez personnaliser ces options d'algorithmes en fournissant des options définies par l'utilisateur et représenter le problème dans de nombreux formats de données, par exemple, en définissant les variables qui sont des entiers, des entiers mixtes, catégoriques ou complexes.

Vous pouvez baser les critères d'arrêt pour l'algorithme sur le temps, la limite d'adaptation ou le nombre de générations. Et vous pouvez représenter votre fonction d'adaptation sous forme de vecteur pour améliorer la vitesse d'exécution ou exécuter les fonctions objectif et de contrainte en parallèle (à l'aide de Parallel Computing Toolbox).

Multiobjective genetic algorithm defined in the Optimization app, used to identify the Pareto front containing disconnected regions for the Kursawe function.

Algorithme génétique multi-objectif définie avec l'application d'optimisation (en haut), utilisée pour identifier le front de Pareto contenant des régions déconnectées (au milieu) pour la fonction de Kursawe (en bas).

Solveur de recherche de formes

Global Optimization Toolbox contient trois algorithmes de recherche directe : recherche de formes généralisée, recherche d'ensemble de génération (GSS) et recherche adaptative (MADS) Alors que les algorithmes d'optimisation plus traditionnels utilisent des informations exactes ou approximatives sur le gradient ou les dérivées plus élevées pour rechercher un point optimal, ces algorithmes utilisent une méthode de recherche de formes qui met en œuvre une forme à base positive minimale et maximale. La méthode de recherche de formes gère les problèmes d'optimisation avec contraintes non linéaires, linéaires et liées, et ne requiert pas que les fonctions soient dérivables ou continues,

Le tableau suivant montre les options d'algorithme de recherche de formes proposées par Global Optimization Toolbox. Il est possible de changer ces options dans la ligne de commande ou l'outil Optimization Tool.

Option de recherche de formesDescription
Méthodes de scrutationDécide comment générer et évaluer les points dans une forme et le nombre maximum de points générés à chaque étape. Vous pouvez également contrôler l'ordre de scrutation des points pour améliorer l'efficacité.
Méthodes de rechercheChoisit une étape de recherche facultative qui peut être plus efficace qu'une étape de scrutation. Il est possible d'effectuer une recherche dans une forme ou dans tout l'espace de recherche. Les méthodes de recherche globale, comme l'algorithme génétique, peuvent être utilisées pour obtenir un bon point de départ.
MaillageContrôle les modifications de forme au cours des itérations et ajuste le maillage en fonction des problèmes variant en échelle dans les cotes. Vous pouvez choisir la taille de maillage initiale, le facteur de raffinement du maillage ou le facteur de contraction du maillage. L'accélérateur de maillage accélère la convergence quand elle est proche d'un minimum.
CacheStocke les points évalués pendant l'optimisation de fonctions objectif exigeant des calculs complexes. Vous pouvez spécifier la taille et la tolérance du cache utilisé par l'algorithme de recherche de formes et en varier la tolérance à mesure que l'algorithme s'exécute, améliorant ainsi la rapidité et l'efficacité de l'optimisation.
Paramètres d'algorithme de contraintes non linéairesSpécifie un paramètre de pénalité pour les contraintes non linéaires, ainsi qu'un facteur de mise à jour de pénalité.

Using the Optimization Tool (top) to find the peak, or global optima, of the White Mountains (middle and bottom) using pattern search.

Utilisation de l'application d'optimisation (en haut) pour trouver le sommet, ou les optimums globaux des White Mountains (au milieu et au centre) à l'aide d'une recherche de formes.

Solveur de simulation de recuit

La simulation de recuit résout les problèmes d'optimisation via un algorithme de recherche probabiliste qui reproduit le processus physique du recuit, dans lequel un matériau est chauffé puis la température réduite lentement pour diminuer les défauts, minimisant ainsi l'énergie du système. Par analogie, chaque itération d'un algorithme de simulation de recuit cherche à améliorer le minimum courant en réduisant lentement l'étendue de la recherche.

L'algorithme de simulation de recuit accepte tous les points nouveaux qui abaissent l'objectif, mais aussi, avec une certaine probabilité, les points qui le remontent. En acceptant les points qui remontent l'objectif, l'algorithme évite d'être pris dans les minimums locaux dans les premières itérations, et peut rechercher globalement de meilleures solutions.

La simulation de recuit vous permet de résoudre des problèmes d'optimisation non contrainte, sous contrainte liées, et ne requiert pas que les fonctions soient dérivables ou continues. Vous pouvez utiliser les fonctions de boîte à outils depuis la ligne de commande ou l'application d'optimisation pour :

  • Résoudre les problèmes en utilisant des algorithmes adaptatifs de simulation de recuit, de recuit de Boltzmann ou de recuit rapide.
  • Créer des fonctions personnalisées pour définir le processus de recuit, les critères d'acceptation, le planning des températures, les fonctions de tracé, la sortie de simulation ou des types de données personnalisés.
  • Effectuer une optimisation hybride en spécifiant une autre méthode d'optimisation qui sera exécutée à des intervalles définis ou à la fin normale de l'exécution du solveur.
Using simulated annealing to solve a challenging problem that contains flat regions between basins.

Utilisation d'une simulation de recuit pour résoudre un problème difficile contenant des régions plates situées entre des bassins.

Résolution de problèmes d'optimisation à l'aide du traitement parallèle

Vous pouvez combiner Global Optimisation Toolbox et Parallel Computing Toolbox pour résoudre les problèmes qui bénéficient du traitement parallèle. En utilisant des fonctions de traitement parallèle intégré ou en définissant un déploiement personnalisé du traitement parallèle de votre problème d'optimisation, vous diminuez le temps nécessaire pour arriver à une solution.

La prise en charge du traitement parallèle accélère l'évaluation des fonctions objectif et de contrainte dans les solveurs d'algorithme génétique, d'algorithme génétique multi-objectif et de recherche de formes. Vous pouvez accélérer le solveur multistart en répartissant les multiples appels de solveur local sur plusieurs travailleurs MATLAB ou en activant l'estimation de gradient parallèle dans les solveurs locaux.

Optimisation d’un programme de passage des vitesses pour maximiser les économies de carburant
Optimisez 20 paramètres dans un programme de passage des vitesses afin de maximiser les économies de carburant dans le cas d’une transmission à double plateau. Utilisez des algorithmes d’optimisation globale et des traitements parallèles pour accélérer cette maximisation.

Une implémentation de traitement parallèle personnalisé implique de définir explicitement le problème d'optimisation de façon pour utiliser la fonction de traitement parallèle. Vous pouvez définir votre fonction objectif ou votre fonction de contrainte afin d'utiliser le traitement parallèle, ce qui vous permet de réduire le temps requis pour évaluer l'objectif ou la contrainte.

Régression non linéaire avec Multistart Solver
Trouvez les paramètres les mieux adaptés pour un modèle exponentiel.

Accélérer vos simulations MATLAB mais aussi Simulink avec le calcul parallèle et distribué

Visionner le webinar