Optimization Toolbox

Résoudre des problèmes d'optimisation linéaire, quadratique, en nombres entiers et non linéaire

Optimization Toolbox™ fournit des outils qui permettent de minimiser ou maximiser des fonctions avec ou sans contraintes. La toolbox comprend des solveurs pour la programmation linéaire (LP), la programmation linéaire en nombres entiers mixtes (MILP), la programmation quadratique (QP), la programmation non-linéaire (NLP), la méthode des moindres carrés linéaires sous contraintes, les moindres carrés non-linéaires et les équations non-linéaires. Vous pouvez définir votre problème d'optimisation à l'aide de fonctions et de matrices, ou en spécifiant directement de façon symbolique des expressions mathématiques.

Vous pouvez utiliser les solveurs de la toolbox pour trouver des solutions optimales à des problèmes continus et discrets, effectuer des analyses tradeoff et incorporer des méthodes d'optimisation dans les algorithmes et les applications. La toolbox vous permet de concevoir votre propre problème d'optimisation, comprenant l'estimation des paramètres, la résolution de conception d’ingénierie ou l’optimisation d’hyperparamètres. Elle peut vous aider à trouver des solutions optimales dans vos projets d'optimisation de portefeuille, d’allocation de ressources ou encore de planification de production.

Définition de problèmes d'optimisation

Modélisez un problème de conception ou de décision sous forme de problème d'optimisation. Définissez les paramètres d’optimisation sous forme de variables. Utilisez-les pour définir une fonction objective à optimiser et ajoutez des contraintes sur les variables définies.

Modélisation

Transformez un problème en une forme mathématique et symbolique en définissant des variables d'optimisation, une fonction objective et des contraintes, afin de parvenir à une résolution à l'aide de techniques d'optimisation.

Optimisation basée sur problème

Écrivez la fonction objective et les contraintes dans MATLAB en utilisant des expressions qui reflètent la forme mathématique. Concevez-les avec des variables d'optimisation, des opérateurs mathématiques, des opérations matricielles et des fonctions des variables. Appliquez un solveur sélectionné automatiquement.

Optimisation basée sur solveur

Écrivez la fonction objective et les contraintes dans MATLAB en utilisant des fonctions pour l'optimisation non linéaire et des matrices de coefficients pour l'optimisation linéaire. Concevez-les avec des opérations matricielles, des opérateurs mathématiques et des fonctions MATLAB. Appliquez un solveur adapté.

Résolution de problèmes d'optimisation

Appliquez un solveur au problème d'optimisation pour trouver une solution optimale : un ensemble de valeurs de variables d'optimisation qui trouvent la valeur optimale de la fonction objective, si elle existe, et, répondent aux contraintes.

Choix du solveur

Résolvez des problèmes d'optimisation à l'aide d'un solveur non linéaire, quadratique, linéaire, en nombres entiers mixtes ou multi-objectifs, en fonction des fonctions objectives et des contraintes. Avec l'approche par résolution de problèmes, le solveur est automatiquement sélectionné.

Points évalués pendant l'optimisation d'une fonction non linéaire.

Paramétrage des options

Définissez des options d'optimisation pour améliorer le processus d'optimisation. À titre d'exemple, vous pouvez choisir l'algorithme d'optimisation utilisé par le solveur ou bien définir des conditions d’arrêt. Définissez des options pour surveiller et tracer la progression du solveur d'optimisation.

Validation et amélioration des résultats

Validez les mesures d’optimisation en affichant les itérations amenant à la solution. Utilisez les liens dans les messages de sortie pour en savoir plus. Améliorez les performances des problèmes non linéaires en fournissant des gradients ou en utilisant le calcul parallèle pour estimer les gradients.

Contrôle de la progression du solveur avec l'affichage itératif.

Programmation non linéaire

Résolvez des problèmes d'optimisation à fonctions objectives non linéaires ou sous contraintes non linéaires.

Solveurs

Appliquez des algorithmes quasi-Newton, à régions de confiance (trust-region)ou Nelder-Mead pour résoudre des problèmes non contraints. Appliquez des algorithmes de points intérieurs (interior-point method), de programmation quadratique séquentielle (SQP) ou trust-region-reflective pour résoudre des problèmes contraints.

Applications

Utilisez l'optimisation non linéaire pour estimer et affiner les paramètres, identifier des designs optimaux, calculer des trajectoires optimales, constituer des portefeuilles robustes, et pour d'autres applications dans lesquelles il existe une relation non linéaire entre les variables.

Programmation quadratique et linéaire

Résolvez des problèmes d'optimisation à fonctions objectives quadratiques convexes ou linéaires, sous contraintes linéaires.

Solveurs de programmation linéaire

Appliquez des algorithmes interior-point ou dual-simplex pour résoudre des programmes linéaires.

Région réalisable et solution optimale pour un programme linéaire.

Solveurs de programmation quadratique

Appliquez des algorithmes trust-region-reflective ou interior-point pour résoudre des programmes quadratiques.

Région réalisable et solution optimale pour un programme quadratique.

Applications

Utilisez la programmation linéaire sur des problèmes comme l'allocation de ressources, la planification de la production et de l'investissement, ou encore le blending. Utilisez la programmation quadratique sur des problèmes comme l'optimisation de conception, l’optimisation de portefeuille, ainsi que le contrôle de barrages hydroélectriques.

Stratégie de contrôle optimale identifiée grâce à la programmation quadratique.

Programmation linéaire en nombres entiers mixtes (MILP)

Résolvez des problèmes d'optimisation à fonctions objectives linéaires sous contraintes linéaires, avec la contrainte supplémentaire suivante : certaines ou l'ensemble des variables doivent être des nombres entiers.

Solveurs

Résolvez des problèmes de programmation linéaire en nombres entiers mixtes à l'aide de l'algorithme branch and bound, qui comprend le prétraitement, les heuristiques pour la génération des points réalisables et la méthode des plans sécants (cutting plans).

Application de l'algorithme branch and bound.

Algorithmes basés sur la programmation linéaire en nombres entiers mixtes

Utilisez le solveur MILP pour concevoir des algorithmes à usage spécifique.

Trajet le plus court permettant de visiter une fois chaque ville américaine.

Applications

Modélisez avec des nombres entiers en cas de contraintes logiques ou de décisions on/off ou lorsque les valeurs de variables doivent être entières. Les applications les plus courantes sont les problèmes de routage, de planification, d'affectation et de budgétisation des investissements.

Programme de distribution électrique pour deux générateurs selon des prix d'électricité variables.

Optimisation multi-objectifs

Résolvez des problèmes d'optimisation à fonctions objectives multiples soumis à un ensemble de contraintes.

Solveurs

Formulez des problèmes de goal-attainment (réalisation d’objectifs) ou de minimax. Utilisez le goal-attainment lorsque les objectifs sont pondérés. Utilisez le minimax pour minimiser la pire valeur d'un ensemble de fonctions objectives.

Résultat après passage en revue des pondérations des objectifs avec fgoalattain.

Applications

Utilisez l'optimisation multi-objectifs lorsque des compromis sont nécessaires pour deux objectifs contradictoires ou plus. On peut citer comme exemples la pondération et la solidité de la conception structurelle, ainsi que le risque et le rendement dans le cadre d’optimisation de portefeuille.

Réponse d’amplitude pour des coefficients de filtrage optimisés et initiaux.

Résolution des moindres carrés et d'équations non linéaires

Résolvez des problèmes de moindres carrés non linéaires et des équations de systèmes non linéaires sous contraintes bornées. Résolvez des problèmes de moindres carrés linéaires sous contraintes bornées et linéaires.

Applications des moindres carrés linéaires

Utilisez des solveurs des moindres carrés linéaires pour ajuster un modèle linéaire à des données acquises ou pour résoudre un système d'équations linéaires, notamment lorsque les paramètres sont soumis à des contraintes bornées et linéaires.

Récupération d'une image défloutée par la résolution d'un problème de moindres carrés linéaires.

Applications des moindres carrés non linéaires

Utilisez des solveurs des moindres carrés non linéaires pour ajuster un modèle non linéaire à des données acquises ou pour résoudre un système d'équations non linéaires, y compris lorsque les paramètres sont soumis à des contraintes bornées.

Ajustement d'une trajectoire circulaire au système de Lorenz d'équations différentielles ordinaires.

Déploiement

Concevez des applications pour utilisateurs finaux basés sur l'optimisation.

Support de MATLAB Compiler

Utilisez MATLAB Compiler™ et MATLAB Compiler SDK™ pour déployer les modèles d'optimisation MATLAB sous la forme de fichiers exécutables autonomes, d'applications Web, de librairies C/C++, d’assembly Microsoft® .NET, de classes Java® et de packages Python®.

Application qui calcule un programme de distribution électrique optimal.

Nouveautés

Génération de code

générez du code C/C++ pour résoudre des problèmes d’optimisation contrainte non linéaire avec fmincon (requiert MATLAB Coder).

Modélisation d’optimisation

exprimez des problèmes de moindres carrés non linéaires ainsi que des systèmes d’équations non linéaires à l’aide de variables d’optimisation dans des fonctions ou des expressions rationnelles.

Résolution d’optimisation

exprimez des problèmes de moindres carrés non linéaires ainsi que des systèmes d’équations non linéaires à l’aide de solveurs sélectionnés automatiquement.

Reportez-vous aux notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.

Version d’évaluation

Bénéficiez d'une version d'évaluation de 30 jours.

Télécharger

Prêt à acheter ?

Obtenez les tarifs et explorez les produits associés.

Vous êtes étudiant ?

Obtenez la version étudiante des logiciels MATLAB et Simulink.

En savoir plus