Stai guardando i diagrammi di flusso dell'algoritmo di livello superiore. Alcuni dei singoli passaggi nel diagramma di flusso possono meritare i propri diagrammi di flusso dettagliati. Tuttavia, in articoli pubblicati che enfatizzano la brevità, molti dettagli sono spesso omessi. I dettagli per i problemi di ottimizzazione interna standard, che sono considerati "cappello vecchio" potrebbero non essere affatto forniti.
L'idea generale è che gli algoritmi di ottimizzazione potrebbero richiedere la soluzione di una serie di problemi di ottimizzazione generalmente più semplici. Non è raro avere 3 o addirittura 4 livelli di algoritmi di ottimizzazione all'interno di un algoritmo di livello superiore, sebbene alcuni di essi siano interni a ottimizzatori standard.
Anche decidere quando terminare un algoritmo (a uno dei livelli gerarchici) può richiedere la risoluzione di un problema di ottimizzazione laterale. Ad esempio, un problema dei minimi quadrati lineari non negativamente vincolati potrebbe essere risolto per determinare i moltiplicatori di Lagrange usati per valutare il punteggio di ottimalità KKT usato per decidere quando dichiarare l'ottimalità.
Se il problema di ottimizzazione è stocastico o dinamico, potrebbero esserci ancora ulteriori livelli gerarchici di ottimizzazione.
Ecco un esempio Programmazione quadratica sequenziale (SQP). Un problema iniziale di ottimizzazione viene trattato risolvendo iterativamente le condizioni di ottimalità di Karush-Kuhn-Tucker, a partire da un punto iniziale con un obiettivo che è un'approssimazione quadratica del lagrangiano del problema e una linearizzazione dei vincoli. Il risultante programma quadratico (QP) è stato risolto. Il QP che è stato risolto presenta vincoli nella regione di fiducia oppure viene eseguita una ricerca di riga dall'iterato corrente alla soluzione del QP, che è esso stesso un problema di ottimizzazione, al fine di trovare l'iterazione successiva. Se viene utilizzato un metodo Quasi-Newton, è necessario risolvere un problema di ottimizzazione per determinare l'aggiornamento di Quasi-Newton per l'Assia del Lagrangiano. Di solito si tratta di un'ottimizzazione di forma chiusa che utilizza formule di forma chiusa come BFGS o SR1, ma potrebbe essere un'ottimizzazione numerica. Quindi il nuovo QP viene risolto, ecc. Se il QP è sempre impossibile, anche per iniziare, viene risolto un problema di ottimizzazione per trovare un punto fattibile. Nel frattempo, potrebbero esserci uno o due livelli di problemi di ottimizzazione interna chiamati all'interno del risolutore QP. Alla fine di ogni iterazione, un problema dei minimi quadrati lineari non negativi potrebbe essere risolto per determinare il punteggio di ottimalità. Eccetera.
Se si tratta di un problema di numero intero misto, l'intero shebang potrebbe essere eseguito su ciascun nodo di diramazione, come parte di un algoritmo di livello superiore. Analogamente per un ottimizzatore globale: un problema di ottimizzazione locale viene utilizzato per produrre un limite superiore sulla soluzione ottimale a livello globale, quindi viene attenuato alcuni vincoli per produrre un problema di ottimizzazione con limite inferiore. Migliaia o persino milioni di problemi di "facile" ottimizzazione da ramo e limite potrebbero essere risolti al fine di risolvere un numero intero misto o un problema di ottimizzazione globale.
Questo dovrebbe iniziare a darti un'idea.
Modifica : in risposta alla domanda su pollo e uova che è stata aggiunta alla domanda dopo la mia risposta: se c'è un problema con pollo e uova, non è un algoritmo pratico ben definito. Negli esempi che ho dato, non ci sono pollo e uova. I passaggi dell'algoritmo di livello superiore invocano solutori di ottimizzazione, che sono definiti o già esistenti. SQP invoca in modo iterativo un risolutore QP per risolvere sotto-problemi, ma il risolutore QP risolve un problema più semplice, QP, rispetto al problema originale. Se esiste un algoritmo di ottimizzazione globale di livello ancora più elevato, può richiamare un risolutore SQP per risolvere i sottoproblemi di ottimizzazione non lineari locali e il risolutore SQP a sua volta chiama un risolutore QP per risolvere i sottoproblemi QP. Nessun uovo e uova.
Nota: le opportunità di ottimizzazione sono "ovunque". Gli esperti di ottimizzazione, come quelli che sviluppano algoritmi di ottimizzazione, hanno maggiori probabilità di vedere queste opportunità di ottimizzazione e di vederle come tali rispetto alla media di Joe o Jane. Ed essendo inclini all'algoritmo, abbastanza naturalmente vedono opportunità per costruire algoritmi di ottimizzazione da algoritmi di ottimizzazione di livello inferiore. La formulazione e la soluzione di problemi di ottimizzazione servono come elementi costitutivi di altri algoritmi di ottimizzazione (di livello superiore).
Modifica 2 : in risposta alla richiesta di ricompensa che è stata appena aggiunta dall'OP. Il documento che descrive l'ottimizzatore non lineare SQP SNOPT https://web.stanford.edu/group/SOL/reports/snopt.pdf menziona specificamente il solutore QP SQOPT, che è documentato separatamente, come utilizzato per risolvere i sottoproblemi QP in SNOPT.