Optimization Toolbox
Solucione problemas de optimización lineal, cuadrática, cónica, entera y no lineal
¿Tiene preguntas? Comuníquese con ventas.
¿Tiene preguntas? Comuníquese con ventas.
Optimization Toolbox proporciona funciones para hallar parámetros que minimicen o maximicen los objetivos y respeten las restricciones. Esta toolbox incluye solvers para programación lineal (LP), programación lineal entera mixta (MILP), programación cuadrática (QP), programación cónica de segundo orden (SOCP), programación no lineal (NLP), mínimos cuadrados lineales con restricciones, mínimos cuadrados no lineales y ecuaciones no lineales.
Puede definir su problema de optimización con funciones y matrices, o bien especificando expresiones de variables que reflejen la matemática subyacente. Puede utilizar la diferenciación automática de funciones objetivo y de restricción para obtener soluciones más rápidas y precisas.
Puede utilizar los solvers de la toolbox para hallar las soluciones óptimas a problemas continuos y discretos, realizar análisis de tradeoff e incorporar métodos de optimización en algoritmos y aplicaciones. La toolbox permite realizar tareas de optimización de diseños, incluidas la estimación de parámetros, la selección de componentes y el ajuste de parámetros. Permite hallar las soluciones óptimas en aplicaciones tales como optimización de carteras, gestión y trading de energía, y planificación de producción.
FICHAS DE AYUDA GRATUITAS
9 fichas de ayuda de MATLAB para Data Science y Machine Learning
Obtener fichas de ayudaModele un problema de diseño o de decisión como un problema de optimización. Configure los parámetros de diseño y las decisiones como variables de optimización. Utilícelas para definir una función objetivo y aplique restricciones para limitar los posibles valores de las variables.
Convierta la descripción de un problema en una expresión matemática definiendo variables, objetivos y restricciones para que se pueda resolver con técnicas de optimización.
Cree objetivos y restricciones con expresiones de variables de optimización. Resuelva problemas de forma más rápida y robusta con la diferenciación automática en las expresiones no lineales. Aplique un solver seleccionado automáticamente. Cree y resuelva el problema de forma interactiva con la tarea Optimize de Live Editor y, después, genere código para compartirlo o usarlo en su aplicación.
Escriba restricciones y objetivos no lineales usando funciones; escriba restricciones y objetivos lineales usando matrices de coeficientes. Cree y resuelva el problema de forma interactiva con la tarea Optimize de Live Editor y, después, genere código para compartirlo o usarlo en su aplicación.
Utilice la tarea Optimize de Live Editor con el enfoque basado en problemas o basado en solvers para ayudar a elegir un solver adecuado para el tipo de problema.
Configure las opciones de optimización para ajustar el proceso de optimización; por ejemplo, para elegir el algoritmo de optimización que debe usar el solver, o bien para establecer las condiciones de finalización. Configure las opciones para supervisar y representar el progreso del solver de optimización.
Revise los mensajes de salida, las medidas de optimalidad y la visualización iterativa para evaluar la solución. Mejore el rendimiento en los problemas no lineales utilizando diferenciación automática, proporcionando gradientes o utilizando el cálculo paralelo para estimar los gradientes.
Aplique algoritmos cuasi-Newton, de región de confianza o simplex de Nelder-Mead para resolver problemas sin restricciones. Aplique algoritmos de punto interior, programación cuadrática secuencial (SQP) o región de confianza reflexiva para resolver problemas con restricciones.
Utilice la optimización no lineal para estimar y ajustar parámetros, encontrar los diseños óptimos, calcular las trayectorias óptimas, crear carteras robustas y para otras aplicaciones en las que exista una relación no lineal entre las variables.
Aplique algoritmos de simplex dual o punto interior para resolver problemas lineales.
Aplique algoritmos de punto interior, de conjunto activo o región de confianza reflexiva para resolver programas cuadráticos. Aplique métodos de punto interior para resolver programas cónicos de segundo orden.
Utilice la programación lineal en problemas tales como asignación de recursos, planificación de la producción, optimización de mezcla y planificación de inversiones.
Resuelva problemas de programación lineal entera mixta mediante el algoritmo de ramificación y acotación, que incluye preprocesamiento, heurística para generar puntos factibles y planos de corte.
Utilice el solver de programación lineal entera mixta para crear algoritmos con fines especiales.
Modele con variables enteras cuando existan decisiones binarias o restricciones lógicas, así como cuando los valores de las variables deban ser enteros. Ejemplos de aplicaciones tipicas: elaboración de itinerarios, programas, planificaciones, asignaciones y presupuestos de capital.
Formule problemas como minimax o de logro de objetivos. Utilice el logro de objetivos cuando existan valores objetivo ponderados opcionalmente para cada uno de los objetivos. Utilice minimax para minimizar el valor en el peor caso de un conjunto de funciones objetivo.
Utilice la optimización multiobjetivo cuando se requieran tradeoffs para objetivos en conflicto. Por ejemplo, el peso y la fuerza en el diseño estructural, y el riesgo y la rentabilidad en la optimización de carteras.
Aplique algoritmos de Levenberg-Marquardt, región de confianza, conjunto activo o punto interior.
Utilice solvers de mínimos cuadrados lineales para ajustar un modelo lineal a datos adquiridos o resolver un sistema de ecuaciones lineales, incluso cuando los parámetros estén sujetos a restricciones de límites y lineales.
Utilice solvers de mínimos cuadrados no lineales para ajustar un modelo no lineal a datos capturados o resolver un sistema de ecuaciones no lineales, incluso cuando los parámetros estén sujetos a restricciones de límites, lineales y no lineales.
Utilice MATLAB Compiler y MATLAB Compiler SDK para desplegar modelos de optimización de MATLAB como ejecutables autónomos, apps web, librerías C/C++ compartidas, ensamblados Microsoft® .NET, clases de Java® y paquetes de Python®.
Genere código C o C++ portátil y legible para solucionar problemas de optimización con MATLAB Coder. Compile el código generado para cualquier hardware, incluidos sistemas embebidos.