Вы смотрите на блок-схемы алгоритма верхнего уровня. Некоторые из отдельных шагов в блок-схеме могут иметь свои собственные подробные блок-схемы. Тем не менее, в опубликованных работах, в которых делается акцент на краткость, многие детали часто опускаются. Детали стандартных внутренних проблем оптимизации, которые считаются «старой шляпой», могут не предоставляться вообще.
Общая идея заключается в том, что алгоритмы оптимизации могут потребовать решения ряда, как правило, более простых задач оптимизации. Нередко в алгоритме верхнего уровня есть 3 или даже 4 уровня алгоритмов оптимизации, хотя некоторые из них являются внутренними для стандартных оптимизаторов.
Даже решение о том, когда завершить алгоритм (на одном из уровней иерархии), может потребовать решения проблемы побочной оптимизации. Например, не отрицательно ограниченная линейная задача наименьших квадратов может быть решена для определения множителей Лагранжа, используемых для оценки показателя оптимальности KKT, используемого для принятия решения, когда объявлять оптимальность.
Если задача оптимизации является стохастической или динамической, могут существовать дополнительные иерархические уровни оптимизации.
Вот пример. Последовательное квадратичное программирование (SQP). Первоначальная задача оптимизации решается путем итеративного решения условий оптимальности Каруша-Куна-Таккера, начиная с начальной точки с целью, являющейся квадратичным приближением лагранжиана задачи, и линеаризации ограничений. Результирующая квадратичная программа (QP) решена. QP, который был решен, либо имеет ограничения области доверия, либо поиск строки проводится от текущей итерации до решения QP, которое само по себе является проблемой оптимизации, чтобы найти следующую итерацию. Если используется метод Квазиньютона, необходимо решить задачу оптимизации, чтобы определить обновление квазиньютоновского гессиана Лагранжиана - обычно это оптимизация закрытой формы с использованием формул закрытой формы, таких как BFGS или SR1, но это может быть численная оптимизация. Затем решается новый QP и т. Д. Если QP когда-либо невозможно, в том числе для начала, решается задача оптимизации, чтобы найти реальную точку. Между тем, внутри решателя QP могут вызываться один или два уровня внутренних проблем оптимизации. В конце каждой итерации может быть решена неотрицательная линейная задача наименьших квадратов для определения показателя оптимальности. И т.п.
Если это смешанная целочисленная задача, то весь этот шебанг может быть выполнен на каждом ветвящемся узле, как часть алгоритма более высокого уровня. Аналогично для глобального оптимизатора - локальная задача оптимизации используется для получения верхней границы для глобально оптимального решения, затем выполняется ослабление некоторых ограничений для получения задачи оптимизации с нижней границей. Тысячи или даже миллионы «простых» задач оптимизации из ветвей и границ могут быть решены для решения одной смешанной целочисленной или глобальной задачи оптимизации.
Это должно начать давать вам представление.
Изменить : В ответ на вопрос о курице и яйце, который был добавлен к вопросу после моего ответа: если есть проблема курицы и яйца, то это не является четко определенным практическим алгоритмом. В приведенных мной примерах нет курицы и яйца. Шаги алгоритма более высокого уровня вызывают решатели оптимизации, которые либо определены, либо уже существуют. SQP итеративно вызывает решатель QP для решения подзадач, но решатель QP решает более простую проблему, QP, чем исходная проблема. Если существует алгоритм глобальной оптимизации еще более высокого уровня, он может вызывать решатель SQP для решения локальных подзадач нелинейной оптимизации, а решатель SQP, в свою очередь, вызывает решатель QP для решения подзадач QP. Нет курицы и яйца.
Примечание: возможности оптимизации есть «везде». Эксперты по оптимизации, такие как те, кто разрабатывает алгоритмы оптимизации, чаще видят эти возможности оптимизации и рассматривают их как таковые, чем средний Джо или Джейн. И будучи склонными к алгоритму, вполне естественно, что они видят возможности для построения алгоритмов оптимизации из алгоритмов оптимизации более низкого уровня. Постановка и решение задач оптимизации служат строительными блоками для других (более высокого уровня) алгоритмов оптимизации.
Изменить 2 : В ответ на запрос щедрости, который был только что добавлен ОП. В документе, описывающем нелинейный оптимизатор SQP SNOPT https://web.stanford.edu/group/SOL/reports/snopt.pdf, конкретно упоминается решатель QP SQOPT, который отдельно документируется как используемый для решения подзадач QP в SNOPT.