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 los trabajos publicados con énfasis en la brevedad, a menudo se omiten muchos detalles. Los detalles de problemas de optimización interna estándar, considerados como "vieja escuela", a menudo no se proporcionan en absoluto.
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 para 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 adicional. Por ejemplo, un problema de mínimos cuadrados lineales con restricciones no negativas podría resolverse para determinar los multiplicadores de Lagrange utilizados para evaluar la puntuación de optimalidad de KKT utilizada para decidir cuándo declarar optimalidad.
Si el problema de optimización es estocástico o dinámico, puede haber aún más niveles jerárquicos de optimización.
Aquí tienes un ejemplo. Programación Cuadrática Secuencial (SQP). Un problema de optimización inicial se trata resolviendo de forma iterativa las condiciones de optimalidad 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. Se resuelve el Programa Cuadrático resultante (QP). El QP que se resolvió tiene restricciones de región de confianza, o se realiza una búsqueda en línea desde el iterado actual hasta la solución del QP, que es en sí mismo un problema de optimización, para encontrar el próximo iterado. Si se utiliza un método Quasi-Newton, se debe resolver un problema de optimización para determinar la actualización Quasi-Newton a la Hessiana del Lagrangiano, generalmente esto es una optimización en forma cerrada utilizando fórmulas en 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 siempre infactible, incluyendo al inicio, 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 internos que se llaman dentro del solucionador de QP. Al final de cada iteración, se podría resolver un problema de mínimos cuadrados lineales no negativos para determinar la puntuación de optimalidad. Etc.
Si se trata de un problema de enteros mixtos, entonces todo este rollo 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 usa un problema de optimización local para producir una cota superior en la solución óptima global, luego se realiza una relajación de algunas restricciones para producir un problema de optimización de cota inferior. Se podrían resolver miles o incluso millones de problemas "fáciles" de optimización de ramificación y acotamiento para resolver un problema de optimización mixto o global.
Esto debería empezar a darte una idea.
Edición: En respuesta a la pregunta de la gallina y el huevo que se añadió a la pregunta después de mi respuesta: Si hay un problema de la gallina y el huevo, entonces no es un algoritmo práctico bien definido. En los ejemplos que di, no hay ningún problema de la gallina y el huevo. Los pasos del algoritmo de nivel superior invocan solucionadores de optimización, que están definidos o ya existen. SQP invoca de forma iterativa 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 más alto, puede invocar un solucionador SQP para resolver subproblemas de optimización no lineales locales, y a su vez, el solucionador SQP llama a un solucionador de QP para resolver subproblemas de QP. Ningún problema de la gallina y el huevo.
Nota: Las oportunidades de optimización están "en todas partes". Los expertos en optimización, como aquellos que desarrollan algoritmos de optimización, son más propensos a ver estas oportunidades de optimización, y a percibirlas como tales, que el ciudadano promedio. Y siendo propensos a la formulación algorítmica, es bastante natural que vean 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 (de nivel superior).
Edición 2: En respuesta a la solicitud de recompensa que acaba de añadir el OP. El documento que describe el optimizador no lineal SQP SNOPT https://web.stanford.edu/group/SOL/reports/snopt.pdf menciona específicamente el solucionador de QP SQOPT, que está documentado por separado, como utilizado para resolver subproblemas de QP en SNOPT.
0 votos
Esto puede ser relevante.
1 votos
Me parece que tu pregunta sería mucho mejor si te enfocaras en los subproblemas que potencialmente podrían ser de complejidad NP-dura en lugar de simplemente en que existen.
0 votos
¡Ups! "Dificultad NP" debería haber dicho "NP duro" en mi último comentario.
0 votos
Ver Editar 2 en mi respuesta que proporciona una referencia, como se solicita en la solicitud de recompensa.