Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Algoritmos de optimización basados en problemas

Internamente, la función resuelve problemas de optimización llamando a un solucionador:solve

  • para las restricciones lineales objetivas y linealeslinprog

  • para las restricciones lineales objetivas y lineales y las restricciones de enterosintlinprog

  • para las restricciones lineales y objetivas cuadráticasquadprog

  • o para mínimos cuadrados lineales con restricciones linealeslsqlinlsqnonneg

  • para problemas sin restricciones (ni siquiera límites variables) y con una función de objetivo no lineal generalfminunc

  • para problemas con una restricción no lineal, o con un objetivo general no lineal y al menos una restricciónfmincon

Antes puede llamar a estas funciones, los problemas se deben convertir al formulario del solucionador, ya sea por o algunas otras funciones o objetos asociados.solvesolve Esta conversión implica, por ejemplo, las restricciones lineales que tienen una representación de matriz en lugar de una expresión de variable de optimización.

El primer paso del algoritmo se produce cuando se colocan expresiones de optimización en el problema. Un objeto tiene una lista interna de las variables utilizadas en sus expresiones.OptimizationProblem Cada variable tiene un índice lineal en la expresión y un tamaño. Por lo tanto, las variables de problema tienen una forma de matriz implícita. La función realiza la conversión del formulario de problema al formulario de solucionador.prob2struct Para ver un ejemplo, vea.Convertir problema a estructura

Para los solucionadores predeterminados y permitidos que llama, según el objetivo del problema y las restricciones, consulte.solve'solver' Puede invalidar el valor predeterminado mediante el argumento de par nombre-valor al llamar.'solver'solve

Para el algoritmo que utiliza para resolver problemas MILP, vea.intlinprogAlgoritmo intlinprog Para los algoritmos que se utilizan para resolver problemas de programación lineal, consulte.linprogAlgoritmos de programación lineal Para los algoritmos que se utilizan para resolver problemas de programación cuadrática, vea.quadprogAlgoritmos de programación cuadrática Para los algoritmos que se utilizan para resolver problemas lineales de mínimos cuadrados, consulte.lsqlinAlgoritmos de mínimos cuadrados (ajuste de modelo) Para los algoritmos de solucionador no lineales, vea y.Algoritmos de optimización no lineales no restringidosAlgoritmos de optimización no lineales restringidos

Nota

Si su función objetiva es una suma de cuadrados, y desea reconocerla como tal, escríbelo como, y no como.solvesum(expr.^2)expr'*expr El analizador interno reconoce sólo las sumas explícitas de los cuadrados. Para ver un ejemplo, vea.Mínimos cuadrados no negativos, basados en problemas

Consulte también

| |

Temas relacionados