1. Знакомство с приближенными методами одномерной и многомерной оптимизации.
2. Разработка численной ММ, реализующей один из оптимизационных методов.
3. Решение задачи оптимизации при помощи средств MATLAB.
Задачи оптимизации часто возникают в процессе поиска наилучшей конструкции объекта. В общем случае оптимизация заключается в нахождении значения аргумента X*={x1*,x2*,…,xn*}, при котором вещественная функция F(x1,x2,…,xn) на множестве S принимает минимальное или максимальное значение
.
Функция F представляет собой цель, а множество S выражает ограничения задачи. Если S есть все n-мерное пространство, говорят, что решается задача без ограничений (задача безусловной оптимизации). В противном случае рассматривается задача с ограничениями (условная оптимизация), определя-ющими множество S. Обычно это множество функций в виде условий равенств или неравенств.
Задачи условной оптимизации решать значительно труднее, особенно для нелинейных ограничений. Однако часто методы условной оптимизации являются развитием методов поиска экстремума без ограничений, включая их основные алгоритмы. Кроме того, возможно преобразование задач с ограничениями в задачи без ограничений, например для линейных функций.
Одномерная оптимизация является в свою очередь частным случаем для выделенных задач, которая заключается в поиске аргумента x* функции одной переменной F(x). При рассмотрении методов для упрощения будем считать функцию F(x) унимодальной на заданном отрезке [a,b], который называется интервалом неопределенности.
Метод поразрядного приближения основан на замене исходного непрерывного отрезка [a,b] несколькими участками равной длины и последующего вычисления целевой функции в узлах образованной сетки. Как только очередное значение функции окажется хуже (больше) предыдущего F(xi+1)>F(xi), реализуется аналогичный поиск в обратном направлении с шагом сетки, например в 4 раза меньше прежнего. И так до тех пор, пока величина шага не станет меньше погрешности.
Метод дихотомии реализует процедуру постепенного сужения исходного отрезка [a,b] вплоть до выполнения условия |b–a|<2e. При этом в целях экономии вычислительных ресурсов текущий интервал [a,b] делится при помощи двух дополнительных точек и на два участка
[a,x2] и [x1,b]. Далее в качестве нового текущего отрезка при помощи проверки условия F(x1)>F(x2) выбирается тот из них, который содержит искомый минимум (если условие выполняется то новым текущим отрезком [a,b] будет участок [x1,b], в противном случае это [a,x2]). По сравнению с методом поразрядного приближения более детальному исследованию подвергаются только перспективные участки, что существенно повышает экономичность модели.
Метод золотого сечения обеспечивает использование на каждом шаге сужения отрезка (кроме первого) только одной дополнительной точки (необходимое для сравнения значение функции во второй точке берется из предыдущего шага). Для этого интервал неопределенности делится на две неравные части в соответствии с коэффициентом дробления k=0.618. В этом случае отношение длины большего участка к длине всего интервала равно отношению длины меньшего участка к длине большего (золотое сечение). Таким образом, на первом этапе значение функции определяются в двух дополнительных точках и . После проверки условия F(x1)>F(x2) и выбора перспективного участка (по аналогии с методом дихотомии) на следующем шаге определяется только одна дополнительная точка. Если F(x1)>F(x2) выбираем участок [x1,b], (т.е. a=x1). Одна дополнительная точка уже известна (x1=x2) и остается определить вторую для нового отрезка [a,b] . Если F(x1)<F(x2) выбираем соответственно [a,x2] (т.е. b=x2), вторая дополнительная точка уже известна (x2=x1). Определяем первую . Расчет до выполнения условия |b–a|<e.
Методы многомерной оптимизации используют для поиска экстремума функции многих переменных.
Метод покоординатного спуска заключается в поочередном поиске минимума последовательно по координатам вектора X. Многомерная задача оптимизации сводится, таким образом, к последовательности одномерных задач на каждом шаге. После выбора исходного приближения X0ÎS вначале фиксируются значения всех координат кроме x1. Получаем функцию одной переменной f(x1), для которой одним из методов решается задача одномерной оптимизации. Затем переходят к работе с координатой x2 и т.д. После исследования функции F(X) по всем координатам пространства проектирования проверяют условие |F(Xk+1) –F(Xk)|<e (где Xk – k-е приближение вектора X), при выполнении которого расчет заканчивается. В противном случае проводят повторное исследование функции.
Метод градиентного спуска использует информацию о градиенте функции F(X), который определяется выражением:
,
где – единичные векторы (орты). Вектор-градиент перпендикулярен касательной к линии уровня функции (соответствующей текущему X) и указывает направление наискорейшего возрастания функции в этой точке. Тогда для организации градиентного спуска используют антиградиент.
После выбора начальной точки X0ÎS и определения в ней антиградиента делается шаг в выбранном направлении. Проверяется условие F(Xk+1)<F(Xk), при выполнении которого вычисляется антиградиент в новой точке с повторением процедуры. Если F(Xk+1)>F(Xk), то в направлении антиградиента делается шаг в два раза меньший и т.д. Перемещение в n-мерном пространстве на шаг h реализуется с помощью следующих выражений
.
Процесс прекращается при выполнении условия
<e.
Метод наискорейшего спуска реализует движение в выбранном направлении не на один шаг, а на несколько до тех пор, пока функция убывает. При этом спуск происходит более крупными шагами и, следовательно, антиградиент вычисляется в меньшем числе точек. Данный метод, таким образом, сводит многомерную задачу к последовательности одномерных задач аналогично методу покоординатного спуска.
Псевдоградиентные методы обеспечивают выбор перспективного направления без вычисления градиента, используют лишь значения функции в нескольких точках. Примером может служить метод деформируемого многогранника (симплекс метод), для которого в пространстве проектирования вокруг исходного вектора X0ÎS строится многогранник с числом вершин (n+1). В качестве направления улучшения функции выбирается ось отражения наихудшей вершины относительно центра тяжести оставшихся вершин [6].