Estás viendo diagramas de flujo de algoritmos de nivel superior. Algunos de los pasos individuales en el diagrama de flujo pueden merecer sus propios diagramas de flujo detallados. Sin embargo, en artículos publicados que hacen hincapié en la brevedad, a menudo se omiten muchos detalles. Es posible que no se proporcionen detalles para problemas de optimización interna estándar, que se consideran "sombrero viejo".
La idea general es que los algoritmos de optimización pueden requerir la solución de una serie de problemas de optimización generalmente más fáciles. No es raro tener 3 o incluso 4 niveles de algoritmos de optimización dentro de un algoritmo de nivel superior, aunque algunos de ellos son internos a los optimizadores estándar.
Incluso decidir cuándo terminar un algoritmo (en uno de los niveles jerárquicos) puede requerir resolver un problema de optimización lateral. Por ejemplo, un problema de mínimos cuadrados lineales no restringidos negativamente podría resolverse para determinar los multiplicadores de Lagrange utilizados para evaluar el puntaje de optimización KKT utilizado para decidir cuándo declarar la optimización.
Si el problema de optimización es estocástico o dinámico, puede haber aún niveles jerárquicos adicionales de optimización.
Aquí hay un ejemplo. Programación secuencial cuadrática (SQP). Un problema de optimización inicial se trata resolviendo iterativamente las condiciones de optimización de Karush-Kuhn-Tucker, comenzando desde un punto inicial con un objetivo que es una aproximación cuadrática del lagrangiano del problema y una linealización de las restricciones. El programa cuadrático resultante (QP) está resuelto. El QP que se resolvió tiene restricciones de región de confianza o se realiza una búsqueda de línea desde la iteración actual hasta la solución de la QP, que es en sí un problema de optimización, para encontrar la siguiente iteración. Si se utiliza un método de Cuasi-Newton, se debe resolver un problema de optimización para determinar la actualización de Cuasi-Newton al Hessian del Lagrangiano; por lo general, se trata de una optimización de forma cerrada utilizando fórmulas de forma cerrada como BFGS o SR1, Pero podría ser una optimización numérica. Luego se resuelve el nuevo QP, etc. Si el QP es inviable, incluso para comenzar, se resuelve un problema de optimización para encontrar un punto factible. Mientras tanto, puede haber uno o dos niveles de problemas de optimización interna llamados dentro del solucionador QP. Al final de cada iteración, se puede resolver un problema de mínimos cuadrados lineales no negativos para determinar el puntaje de optimización. Etc.
Si este es un problema de enteros mixtos, entonces este shebang completo podría realizarse en cada nodo de ramificación, como parte de un algoritmo de nivel superior. De manera similar para un optimizador global: se utiliza un problema de optimización local para producir un límite superior en la solución globalmente óptima, luego se relajan algunas restricciones para producir un problema de optimización de límite inferior. Se podrían resolver miles o incluso millones de problemas de optimización "fáciles" de rama y límite para resolver un problema de optimización global o entero mixto.
Esto debería comenzar a darte una idea.
Editar : En respuesta a la pregunta de huevo y gallina que se agregó a la pregunta después de mi respuesta: si hay un problema de huevo y gallina, entonces no es un algoritmo práctico bien definido. En los ejemplos que di, no hay pollo ni huevo. Los pasos de algoritmo de nivel superior invocan solucionadores de optimización, que están definidos o ya existen. SQP invoca iterativamente un solucionador de QP para resolver subproblemas, pero el solucionador de QP resuelve un problema más fácil, QP, que el problema original. Si hay un algoritmo de optimización global de nivel aún mayor, puede invocar un solucionador SQP para resolver subproblemas de optimización no lineal locales, y el solucionador SQP a su vez llama a un solucionador QP para resolver subproblemas QP. Sin chiicken y huevo.
Nota: Las oportunidades de optimización están "en todas partes". Los expertos en optimización, como los que desarrollan algoritmos de optimización, tienen más probabilidades de ver estas oportunidades de optimización, y verlas como tales, que el promedio de Joe o Jane. Y siendo inclinados algorítmicamente, naturalmente ven oportunidades para construir algoritmos de optimización a partir de algoritmos de optimización de nivel inferior. La formulación y solución de problemas de optimización sirven como bloques de construcción para otros algoritmos de optimización (nivel superior).
Edición 2 : en respuesta a la solicitud de recompensa que acaba de agregar el OP. El documento que describe el optimizador no lineal SOPP SNOPT https://web.stanford.edu/group/SOL/reports/snopt.pdf menciona específicamente el solucionador QP SQOPT, que se documenta por separado, como utilizado para resolver subproblemas QP en SNOPT.