Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры МатМетоды.docx
Скачиваний:
2
Добавлен:
22.09.2019
Размер:
1.26 Mб
Скачать

28. Общая характеристика методов оптимизации нулевого порядка.

В этих методах:

не надо вычислять производные целевой функции;

направление минимизации полностью определяется последовательными вычислениями значений функции;

можно работать с функциями, имеющими разрывные производные (при этом другие методы не подходят);

критерий оптимальности может быть задан не в явном виде, а системой уравнений;

сходимость обычно медленнее, чем у методов первого и второго порядков

Кроме того,

вычисление первых и вторых производных функции многих переменных бывает очень трудоемким;

часто они не могут быть получены в виде аналитических функций;

определение производных с помощью численных методов сопровождается ошибками.

  1. Метод прямого поиска (метод Хука-Дживса).

Идея метода:

  • задается начальная точка x[0];

  • путем изменения компонент вектора x[0] исследуются окрестности начальной точки;

  • если найдено направление, в котором функция уменьшается, производится спуск в этом направлении;

  • если нет, -- уменьшается величина шага;

  • если дробление шага не дает результата, от выбранного направления отказываются и выполняется новое исследование окрестности.

Алгоритм.

1. Задаются значениями координат xi[0] (i = 1, 2, …, n) начальной точки x[0], вектором изменения координат Dx, точностью e для Dx.

2. Полагают, что x[0] является базисной точкойxB, вычиcляют значение f(xB).

3. Циклически меняют каждую координату xiB базисной точки xB на величинуDxi , т.е.

xi[k] = xiB+ Dxi ; xi[k] = xiB- Dxi i = 1, 2, …, n.

При этом вычисляют f(x[k]) и сравнивают с f(xB). Если f(x[k]) <f(xB), то соответствующая координата xi получает новое значение. Иначе -- нет. Если после изменения n-ой (последней) координаты f(x[k]) <f(xB), то переход к п.4, иначе -- к п.7.

4. Полагают, что x[k] является новой базисной точкой xB, и вычиcляют значение f(xB).

5. Производят спуск из точки x[k]: xi[k+1] = 2Dxi[k] - xiB;i = 1, 2, …, n

где xiB -- координаты предыдущей базисной точки. Вычиcляют значение f(x[k+1]).

6. Как в п.3, циклически меняют каждую координату точки x[k+1] и сравнивают значения функции со значением из п.5. После изменения последней координаты сравнивают значения функции со значением f(xB) из п.5. Если неравенство выполняется, переход к п.4, иначе -- к п.3. При этом как базисную берут последнюю из полученных базисных точек.

7. Сравнивают Dx и e. Если Dx<e, вычисления прекращаются, иначе Dx уменьшают и переходят к п.3.

Недостаток метода: в случае сильно вытянутых, изогнутых или обладающих острыми углами линий уровня целевой функции можно не продвинуться к минимуму.

Например, для функций на Рис.8.4. Из точки x нельзя получить уменьшения целевой функции, каким бы малым не был шаг в направлении x1 и x2.

  1. Метод деформируемого многогранника (метод Нелдера-Мида).

Идея метода:

  • в n-мерном пространстве строится многогранник, имющийn+1 вершину;

  • вычисляют значения функции в каждой вершине;

  • определяют максимальное значение функции и его вершину x[h];

  • через нее и центр тяжести остальных вершин проводится проецирующая прямая;

  • на ней находится точка x[q] c меньшим, чем в x[h], значением функции;

  • вершина x[h] исключается;

  • из оставшихся вершин и точки x[q] строится новый многогранник, после чего процедура повторяется.

В ходе описанной процедуры многогранник все время изменяет размеры (Рис.8.5.).

Рис. 8.5. Геометрическая интерпретация метода деформируемого многогранника

Обозначим

x[i, k] = (x1[i,k], …, xj[i,k], …, xn[i,k])T, -- i-ая вершина многогранника

на k-ом этапе поиска (i = 1, 2, …, n+1; k = 1, 2, …);

x[h, k] -- вершина, в которой значение целевой функции максимально;

x[l, k] -- вершина, в которой значение целевой функции минимально;

x[n+2, k] -- центр тяжести всех вершин, за исключением x[h, k].

Координаты центра тяжести

Алгоритм.

1. Проецируют точку x[h,k] через центр тяжести:

x[n+3,k] = x[n+2,k] + a (x[n+2,k] - x[h,k]),

где a -- некоторая константа (обычно а = 1).

2. Растягивают вектор x[n+3,k] - x[n+2,k]:

x[n+4,k] = x[n+2,k] + с (x[n+3,k] - x[n+2,k]),

где с > 1-- коэффициент растяжения (обычно 2,8 -- 3).

Если f(x[n+4,k]) < f(x[l, k]), то x[h,k] заменяют на x[n+4,k] и продолжают с п.1 приk = k + 1.

Иначе x[h,k] заменяют на x[n+3,k] и продолжают с п.1 приk = k + 1.

3. Если f(x[n+3,k])> f(x[i, k]) для всех i¹h, то сжимают вектор x[h,k] - x[n+2,k]:

x[n+5,k] = x[n+2,k] + b (x[h,k] - x[n+2,k]),

где b > 0 -- коэффициент сжатия (обычно 0,4 -- 0,6).

Затем точку x[h,k] заменяют на x[n+5,k] и продолжают с п.1 приk = k + 1.

4. Если f(x[n+3,k])> f(x[h, k]), то все векторы x[i,k] - x[l, k], I = 1, 2, … , n+1 уменьшают в два раза:

x[i,k] = x[l,k] + 0,5 (x[i,k] - x[l,k]).

Затем продолжают с п.1 приk = k + 1.

Выход из процесса происходит при предельном сжатии многогранника:

где e = (e1, …, en) – заданный вектор.

С помощью операции растяжения и сжатия размеры и форма многогранника адаптируются к топографии целевой функции. В результате многогранник вытягивается вдоль длинных наклонных плоскостей, изменяет направление в изогнутых впадинах, сжимается в окрестности минимума. Это определяет эффективность метода.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.