Минимум функции нескольких переменных. В большинстве реальных задач оптимизации, представляющих практический интерес, целевая функция зависит от многих проектных параметров.
Минимум дифференцируемой функции многих переменных можно найти, исследуя ее значения в критических точках, которые определяются из решения системы дифференциальных уравнений
(2).
Рассмотренный метод можно использовать лишь для дифференцируемой целевой функции. Но и в этом случае могут возникнуть серьезные трудности при решении системы нелинейных уравнений (2).
Во многих случаях никакой формулы для целевой функции нет, а имеется лишь возможность определения ее значений в произвольных точках рассматриваемой области с помощью некоторого вычислительного алгоритма или путем физических измерений. Задача состоит в приближенном определении наименьшего значения функции во всей области при известных ее значениях в отдельных точках.
Для решения подобной задачи в области проектирования , в которой ищется минимум целевой функции , можно ввести дискретное множество точек (узлов) путем разбиения интервалов изменения параметров на части с шагами . В полученных узлах можно вычислить значения целевой функции и среди этих значений найти наименьшее.
Следует отметить, что такой метод может быть использован для функции одной переменной. В многомерных задачах оптимизации, где число проектных параметров достигает пяти и более, этот метод потребовал бы слишком большого объема вычислений.
Оценим, например, объем вычислений с помощью общего поиска при решении задачи оптимизации функции пяти неизвестных. Пусть вычисление ее значения в одной точке требует арифметических операций (на практике это число может достигать нескольких тысяч и больше). Область проектирования разделим на частей в каждом из пяти направлений, т. е. число расчетных точек равно , т. е. приблизительно . Число, арифметических операций тогда равно , и для решения этой задачи на ЭВМ с быстродействием 1 млн. оп./с. потребуется с (более 10 суток) машинного времени.
Проведенная оценка показывает, что такие методы общего поиска с использованием сплошного перебора для решения многомерных задач оптимизации не годятся. Необходимы специальные численные методы, основанные на целенаправленном поиске. Рассмотрим некоторые из них.
Метод покоординатного спуска. Пусть требуется найти наименьшее значение целевой функции . В качестве начального приближения выберем в -мерном пространстве некоторую точку , с координатами . Зафиксируем все координаты функции , кроме первой. Тогда - функция одной переменной . Решая одномерную задачу оптимизации для этой функции, мы от точки переходим к точке , в которой функция принимает наименьшее значение по координате при фиксированных остальных координатах. В этом состоит первый шаг процесса оптимизации, состоящий в спуске по координате .
Зафиксируем теперь все координаты, кроме , и рассмотрим функцию этой переменной . Снова решая одномерную задачу оптимизации, находим ее наименьшее значение при т. е. в точке . Аналогично проводится спуск по координатам , а затем процедура снова повторяется от до т. д. В результате этого процесса получается последовательность точек , в которых значения целевой функции составляют монотонно убывающую последовательность . На любом -м шаге этот процесс можно прервать, и значение принимается в качестве наименьшего значения целевой функции в рассматриваемой области.
Таким образом, метод покоординатного спуска сводит задачу о нахождении наименьшего значения функции многих переменных к многократному решению одномерных задач оптимизации по каждому проектному параметру.
Данный метод легко проиллюстрировать геометрически для случая функции двух переменных , описывающей некоторую поверхность в трехмерном пространстве. На рисунке нанесены линии уровня этой поверхности. Процесс оптимизации в этом случае проходит следующим образом. Точка описывает начальное приближение. Проводя спуск по координате , попадем в точку . Далее, двигаясь параллельно оси ординат, придем в точку , и т. д.
Важным здесь является вопрос о сходимости рассматриваемого процесса оптимизации. Другими словами, будет ли последовательность значений целевой функции сходиться к наименьшему ее значению в данной области? Это зависит от вида самой функции и выбора начального приближения.
Для функции двух переменных очевидно, что метод неприменим в случае наличия изломов в линиях уровня. Это соответствует так называемому оврагу на поверхности. Здесь возможен случай, когда спуск по одной координате приводит, на «дно» оврага. Тогда любое движение вдоль другой координаты ведет к возрастанию функции, соответствующему подъему на «берег» оврага. Поскольку поверхности типа «оврага» встречаются в инженерной практике, то при использовании метода покоординатного спуска следует убедиться, что решаемая задача не имеет этого недостатка. Для гладких функций при удачно выбранном начальном приближении (в некоторой окрестности минимума) процесс сходится к минимуму. К достоинствам метода покоординатного спуска следует также отнести возможность использования простых алгоритмов одномерной оптимизации. Блок-схема метода покоординатного спуска представлена на рисунке.