Алгоритм метода покоординатного спуска
1. Задается точность вычисления , начальный шаг , минимально допустимый шаг , точка начального приближения , порядковый номер итерации k=0 и вычисляется . 2. Запоминаем . 3. Начинаем поиск параллельно оси Охi : ,если , переходим к п. 11 , иначе к п. 4. 4. Задаем шаг . 5. Задаем знак . 6. Вычисляем в соответствии с формулой (1.6) и значение функции в новой точке. 7. Если новое значение функции меньше предыдущего, то принимаем как , запоминаем как и возвращаемся к п. 6, иначе меняем знак на противоположный. 8. Если знак ,то переходим к п. 6, иначе к п. 9. 9. Уменьшим величину шага . 10. Если текущий шаг , то переходим к п. 3, иначе к п. 5. 11. Проверка условия достижения заданной точности: и если оно выполняется, то переходим к п. 12, иначе к п. 2. 12. Завершить вычисления, приняв за точку минимума последнее значение Хk,
4. Текст программы.
Смотри приложение №1.
Метод Нелдера — Мида, также известный как метод деформируемого многогранника и симплекс-метод, — метод безусловной оптимизации функции от нескольких переменных, не использующий градиентов функции, а поэтому легко применим к негладким и/или зашумлённым функциям. В методе Нелдера и Мида минимизируется функция n независимых переменных с использованием n+1 вершин деформируемого многогранника в En. Каждая вершина может быть идентифицирована вектором x. Вершина (точка) в En, в которой значение f(x) максимально, проектируется через центр тяжести (центроид) оставшихся вершин. Улучшенные (более низкие) значения целевой функции находятся последовательной заменой точки с максимальным значением f(x) на более «хорошие точки», пока не будет найден минимум f(x). Суть метода заключается в последовательном перемещении и деформировании симплекса вокруг точки экстремума. Предполагается, что серьёзных ограничений на область определения функции нет, то есть функция определена во всех встречающихся точках. Параметрами метода являются: · коэффициент отражения α > 0, обычно выбирается равным 1. · коэффициент сжатия β > 0, обычно выбирается равным 0,5. · коэффициент растяжения γ > 0, обычно выбирается равным 2.
Алгоритм метода. Пусть , является i-й вершиной (точкой) в En на k-м этапе поиска, k=0, 1, …, и пусть значение целевой функции в x(k)i равно f(x(k)i). Кроме того, отметим те векторы x многогранника, которые дают максимальное и минимальное значения f(x).
Определим Поскольку многогранник в En состоит из (n+1) вершин x1, …,xn+1, пусть xn+2 будет центром тяжести всех вершин, исключая xh.
Тогда координаты этого центра определяются формулой (1.7) где индекс j обозначает координатное направление.
Начальный многогранник обычно выбирается в виде регулярного симплекса (но это не обязательно) с точкой 1 в качестве начала координат; можно начало координат поместить в центр тяжести. Процедура отыскания вершины в En, в которой f(x) имеет лучшее значение, состоит из следующих операций:
1. Отражение – проектирование через центр тяжести в соответствии с соотношением
2. Растяжение. Эта операция заключается в следующем: если , то вектор растягивается в соответствии с соотношением
3. Сжатие. Если для всех i¹h, то вектор сжимается в соответствии с формулой
4. Редукция. Если , все векторы уменьшаются в 2 раза с отсчётом от в соответствии с формулой Затем возвращаемся к операции 1 для продолжения поиска на (k+1)-м шаге.
Критерий окончания поиска, использованный Нелдером и Мидом, состоял в проверке условия
(1.12)
где e – произвольное малое число, а – значение целевой функции в центре тяжести .
На рис.2 приведена блок-схема поиска методом деформируемого многогранника
Пуск
Вычислить начальные значения xi(0), i = 1, 2, …, n+1, и f(x(0)) начального симплекса
Вычислить xh и xl и c
Отражение: вычислить xn+3 = xn+2 + a(xn+2 - xn)
Вычислить f(xn+3)
неравенство f(xn+3) < f(xh) ?
Растяжение: вычислить xn+4 = xn+2 + g(xn+3 - xn+2)
Вычислить f(xn+4)
Выполняется ли неравенство f(xn+4) < f(xl) ?
Заменить xh на xn+4
Выполняется ли неравенство f(xn+3) < f(xi) для всех i ¹ h ?
Заменить xh на xn+3
Рис. 2 неравенство f(xn+3) < f(xh) ?
Заменить xh на xn+3
Сжатие: вычислить xn+5 = xn+2 + b(xh - xn+2)
Вычислить f(xn+5)
Выполняется ли неравенство f(xn+5) > f(xh) ?
Заменить
Редукция: заменить все xi на xl + 1/2(xi - xl)
Останов 7. Текст программы.
Смотри приложение №1.
Задание. Используя метод покоординатного спуска или метод деформированного многогранника, реализовав их в виде программ на Turbo Pascal, найти минимум следующих функций:
1) f(X)=x12+ x22 +x32+ x1–x1 *x2-2x3 2) f(X)=100( x2 –x12) 2+ (1-x1)2 3) f(X)=( x2 –x12) 2+ (1-x1*x2)2 4) f(X)=5x12+ x22 + 4x1 *x2-16x1-12x2 5) f(X= х12 + 4х22 –4х1 –8х2 + 5
Лабораторная работа №2.
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2214)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |