Optimization Toolbox
Résoudre des problèmes d'optimisation linéaire, quadratique, conique, en nombres entiers et non linéaire
Vous avez des questions ? Contactez l’équipe commerciale.
Vous avez des questions ? Contactez l’équipe commerciale.
Optimization Toolbox™ offre 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 cône du second ordre (SOCP), 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 la différenciation automatique de fonctions objectif et de contrainte pour arriver à des solutions plus rapides et précises.
Vous pouvez utiliser les solveurs de la toolbox pour trouver des solutions optimales à des problèmes continus et discrets, effectuer des analyses de compromis et incorporer des méthodes d'optimisation dans les algorithmes et les applications. La toolbox vous permet de réaliser des tâches d'optimisation de design, comprenant l'estimation des paramètres, la sélection de composantes et l'optimisation des paramètres. Elle vous permet de trouver des solutions optimales dans des applications comme l'optimisation de portefeuilles, la gestion et le trading de l'énergie, ainsi que la planification de la production.
Modélisez un problème de design 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 objectif à optimiser et ajoutez des contraintes sur la valeur des variables définies.
Transformez un problème sous forme mathématique et symbolique en définissant des variables, des objectifs et des contraintes afin de parvenir à une résolution avec des techniques d'optimisation.
Écrivez les objectifs et les contraintes avec des expressions de variables d'optimisation. Trouvez des solutions plus rapides et efficaces avec la différenciation automatique sur des expressions non linéaires. Appliquez un solveur sélectionné automatiquement. Créez et résolvez le problème de manière interactive avec la tâche Optimize dans Live Editor, puis générez le code à partager ou à utiliser dans votre application.
Écrivez les objectifs et les contraintes non linéaires en utilisant des fonctions, et définissez également des objectifs et des contraintes linéaires en utilisant des matrices de coefficients. Créez et résolvez le problème de manière interactive avec la tâche Optimize dans Live Editor, puis générez le code à partager ou à utiliser dans votre application.
Utilisez la tâche Optimize dans Live Editor avec une approche basée sur les problèmes ou sur les solveurs pour vous aider à choisir un solveur approprié au type de problème rencontré.
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.
Examinez les messages de sortie et validez les mesures d'optimisation en affichant les itérations amenant à la solution. Améliorez les performances des problèmes non linéaires en utilisant la différenciation automatique, en fournissant des gradients ou en utilisant le calcul parallèle pour estimer les gradients.
Appliquez les algorithmes quasi-Newton, à régions de confiance ou Nelder-Mead pour résoudre des problèmes non contraints. Appliquez des algorithmes interior-point, de programmation quadratique séquentielle (SQP) ou trust-region-reflective pour résoudre des problèmes contraints.
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.
Appliquez des algorithmes interior-point ou dual-simplex pour résoudre des programmes linéaires.
Appliquez des algorithmes trust-region-reflective, interior-point ou active-set pour résoudre des programmes quadratiques. Appliquez des méthodes interior-point pour résoudre des programmes de cône du second ordre.
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 et de cône du second ordre sur des problèmes comme l'optimisation de design, l'optimisation de portefeuille, ainsi que le contrôle de barrages hydroélectriques.
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.
Utilisez le solveur MILP pour concevoir des algorithmes à usage spécifique.
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.
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 objectif.
Utilisez l'optimisation multi-objectifs lorsque des compromis sont nécessaires pour des objectifs contradictoires. On peut citer comme exemples le poids et la solidité en design structurel, ainsi que le risque et le rendement dans le cadre de l'optimisation de portefeuille.
Appliquez des algorithmes Levenberg-Marquardt, trust-region, active-set et interior-point.
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.
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 linéaires et non linéaires.
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 partagées C/C++, d'assembly Microsoft® .NET, de classes Java® et de packages Python®.
Générez du code C ou C++ portable et lisible pour résoudre des problèmes d'optimisation en utilisant MATLAB Coder™. Compilez le code généré pour tout type de hardware, y compris les systèmes embarqués.