12250

Методы минимизации функции многих переменной

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа 3. Методы минимизации функции многих переменной. Постановка задачи: Требуется найти безусловный минимум функции от n переменных fx1 x2 xn т.е. такую точку что . Значение точки минимума вычислить приближенно с заданной точностью ε. Метод пр

Русский

2013-04-24

255.93 KB

55 чел.

Лабораторная работа 3.

Методы минимизации функции многих переменной.

Постановка задачи: Требуется найти безусловный минимум функции от n переменных f(x1, x2, …, xn), т.е. такую точку , что . Значение точки минимума вычислить приближенно с заданной точностью ε.

Метод правильного симплекса.

Стратегия поиска: Симплексом в Rn называется выпуклая оболочка (n+1) точек
x1, x2, …, xn+1, не принадлежащих ни к какому (n-1)-мерному подпространству Rn. Правильным симплексом называется множество из (n+1) равноудаленной точки. На плоскости (в двухмерном пространстве) правильный симплекс является правильным треугольником, в трехмерном пространстве правильный симплекс – правильный тетраэдр.

На первой итерации данного метода выбирается некоторый правильный симплекс в пространстве Rn . На каждой итерации сравниваются значения f(x) в вершинах симплекса. Затем преобразуется та вершина симплекса, в которой достигается максимальное значение. Преобразование происходит путем отражения  данной вершины симметрично относительно центра тяжести xC  остальных вершин. Если значение функции в полученной точке меньше, чем в исходной, то переходят к новому симплексу. Иначе пытаются осуществить процедуру отражения для остальных вершин исходного симплекса. Если все попытки неудачны, повторяют процедуру с уменьшенной длиной ребра до тех пор, пока данная длина не станет меньше заданной точности.

Алгоритм:

  1. Задать точность вычислений , выбрать начальное приближение , ребро a.
  2. Построить начальный правильный симплекс по заданному ребру a и точке .
  3. Вычислить значения f(x) в вершинах симплекса.
  4. Упорядочить вершины симплекса в порядке возрастания значений f(x).
  5. Найти и выполнить отражение вершины xn: . Если , то положить и перейти к шагу 3. Иначе перейти к шагу 6.
  6. По формулам, аналогичным формулам пункта 5, вычислить отражения вершин с номерами j = n-1, …, k. Где k выбирается из условия , либо
    k =1.
  7. Если k > 1, то положить и перейти к шагу 3. Иначе перейти к шагу 8.
  8. Выбрать новый размер ребра a = a / 2. Если a > перейти к пункту 2. Иначе остановка расчета и выбор в качестве точки минимума точки x0.

Метод деформируемого симплекса

(Метод Нелдера-Мида)

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

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

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

Метод покоординатного поиска

(Метод Хука-Дживса).

Стратегия поиска: Алгоритм на каждом шаге содержит две основные процедуры:

а) исследующий покоординатный поиск  в окрестности данной точки x, предназначенный для определения направления убывания функции f(x) – точка ;

б) перемещение в направлении убывания (-x).

Если после шага а) = x, то происходит уменьшение шага исследующего спуска.

Если шаг становится меньше заданной точности, то прекращение поиска.

Алгоритм исследующего покоординатного спуска:

  1. Положить j = 1.
  2. Сделать пробный шаг . - заданный шаг в направлении j. Если f(y) < f(x), перейти к шагу 6, иначе к шагу 3.
  3. Сделать пробный шаг . - заданный шаг в направлении j. Если f(y) < f(x), перейти к шагу 6, иначе к шагу 4.
  4. Если j < n, положить j = j +1 и перейти к шагу 2. Иначе перейти к шагу 5.
  5. Положить = x и завершить поиск.
  6. Положить = y и завершить поиск.

Очень часто на практике используют альтернативную реализацию данного метода заключающуюся в следующем. Вместо одного шага в каждом направлении будем делать серию шагов до достижения минимума (т.е. будем искать одномерный минимум функции при фиксированных значениях других координат). После достижения минимума по одной координате повторяют аналогичную процедуру по следующим координатам. Таким образом, алгоритм сводится к последовательности одномерных минимизаций (по каждой из координат).

Также очень часто в литературе под названием покоординатный спуск (поиск) фигурируют альтернативные методы в основе которых лежит идея чередования направлений соответствующих отдельным координатам.

Метод градиентного спуска с постоянным шагом.

Стратегия поиска: Предполагается, что целевая функция f(x) - дифференцируема в и возможно вычисление ее производных в произвольной точке .

Рассмотрим итерационные процедуры минимизации вида

  (1)

где направление убывания pk определяется тем или иным способом с учетом информации о частных производных функции f(x), а величина шага > 0 такова, что

  (2)

Положим в (1) на каждом шаге . Величина коэффициента задается пользователем и остается постоянной до тех пор, пока функция убывает в точках последовательности, что контролируется путем проверки условия (2). При этом величина единичного шага определяется модулем градиента функции.

Алгоритм:

  1. Задать точность вычислений , , выбрать начальное приближение .
  2. Выбрать начальное значение шага .
  3. Положить k = 0 (k – номер итерации).
  4. Вычислить значение .
  5. Вычислить точку .
  6. Проверить выполнение критерия окончания поиска:

, .

Если критерий выполнен переход к шагу 10, иначе к шагу 7.

  1. Положить k = k+1.
  2. Проверка условия (2). Если условие не выполнено, положить =/2.
  3. Переход к новой итерации (шаг 4).
  4. Выбираем приближенно , . Поиск завершен.

Вопросы и задания

  1. Написать в среде MATLAB функции, реализующие следующие три метода: метод правильного симплекса (либо метод Нелдера-Мида), метод покоординатного спуска Хука-Дживса, метод градиентного спуска с постоянным шагом.
  2. Протестировать работу реализованных методов на примере функции:

,

выбрав несколько значений a в диапазоне от 1  до 100 (3-5 значений), при одинаковом начальном приближении (10, 10). Сравнить скорость работы методов при различных значениях параметра a, заполнив таблицу следующего вида:

Таблица 1. Число итераций N для различных значений a.

Метод

a = 1

a = 10

a = 100

a=…

ε = 0.01

ε = 0.001

ε = 0.01

ε = 0.001

ε = 0.01

ε = 0.001

Правильного симплекса

Хука-Дживса

Градиентного спуска

Для точности также выбирается 3-5 значений, соответствующих степеням десяти.

  1. Изучить зависимость работы методов от начального приближения при фиксированном значении a для функции задания 2. Результаты представить в виде таблицы, аналогичной заданию 1. Например, сравнить выбор начального приближения на осях (точки (0, 10) и (10, 0)) и на прямой x=y (точка (10, 10)). 
  2. На примере функции Химмельблау

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

  1. Сравнить поведение предложенных методов на примере функции Розенброка («овражной» функции):

при различных вариантах начального приближения. Какой метод в данном случае будет давать наилучшие результаты?


 

А также другие работы, которые могут Вас заинтересовать

32763. Работа газа при изменении его объёма. Количество теплоты. Теплоёмкость. Первое начало термодинамики 16.59 KB
  Количество теплоты. Количество теплоты мера энергии переходящей от одного тела к другому в данном процессе. Количество теплоты является одной из основных термодинамических величин. Количество теплоты является функцией процесса а не функцией состояния то есть количество теплоты полученное системой зависит от способа которым она была приведена в текущее состояние.
32764. Приминение первого начала термодинамики к изопроцессам и адиабатному процессу идеального газа. Зависимость теплоёмкости идеального газа от вида процесса 88 KB
  Приминение первого начала термодинамики к изопроцессам и адиабатному процессу идеального газа. Зависимость теплоёмкости идеального газа от вида процесса. Тогда для произвольной массы газа получим Q=dU=mCvT M Изобарный процесс p=const. При изобарном процессе работа газа при расширении объема от V1 до V2 равна и определяется площадью прямоугольника.
32765. Работа, совершаемая идеальным газом в различных процессах 32 KB
  Работа совершенная идеальным газом в изотермическом процессе равна где число частиц газа температура и объём газа в начале и конце процесса постоянная Больцмана. Работа совершаемая газом при адиабатическом расширении численно равная площади под кривой меньше чем при изотермическом процессе. Работа совершаемая газом при изобарном процессе при расширении или сжатии газа равна = PΔV. Работа совершаемая при изохорном процессе равна нулю т.
32766. Адиабатный процесс. Уравнение Пуассона для адиабатного процесса 28 KB
  Уравнение Пуассона для адиабатного процесса. Уравнение адиабаты уравнение Пуассона.18 после соответствующих преобразований получим уравнение адиабаты: TVg1 = const или pVg = const.20 Уравнение 13.
32767. Политропический процесс. Теплоёмкость газа в политропическом процессе 28.5 KB
  Политропический процесс. Теплоёмкость газа в политропическом процессе. Рассмотренные выше изохорический изобарический изотермический и адиабатический процессы обладают одним общим свойством имеют постоянную теплоемкость. Термодинамические процессы при которых теплоемкость остается постоянной называются политропными.
32768. Закон Максвелла для распределения молекул идеального газа по скоростям и энергиям 26.5 KB
  Закон Максвелла для распределения молекул идеального газа по скоростям и энергиям. Закон распределения молекул идеального газа по скоростям закон Максвелла определяет вероятное количество dN молекул из полного их числа N число Авогадро в данной массе газа которые имеют при данной температуре Т скорости заключенные в интервале от V до V dV: dN N=FVdV FV функция распределения вероятности молекул газа по скоростям определяется по формуле; FV=4πM 2πRT3 2 V2 expMV2 2RT где V модуль скорости молекул м с; абсолютная...
32769. Барометрическая формула. Закон Больцмана для распределения частиц во внешнем потенциальном поле 56.5 KB
  Барометрическая формула зависимость давления или плотности газа от высоты в поле тяжести. Для идеального газа имеющего постоянную температуру T и находящегося в однородном поле тяжести во всех точках его объёма ускорение свободного падения g одинаково барометрическая формула имеет следующий вид: где p давление газа в слое расположенном на высоте h p0 давление на нулевом уровне h = h0 M молярная масса газа R газовая постоянная T абсолютная температура. Из барометрической формулы следует что концентрация молекул n или...
32770. Среднее число столкновений и средняя длина свободного пробега молекул. Их связь с концентрацией и размером молекул 56.5 KB
  Среднее число столкновений и средняя длина свободного пробега молекул. Их связь с концентрацией и размером молекул. Средние скорости молекул газа очень велики порядка сотен метров в секунду при обычных условиях. Однако процесс выравнивая неоднородности в газе вследствие молекулярного движения протекает весьма медленно.
32771. Понятие о разрежённых газах. Вакуум и методы его получения 41 KB
  Вакуум и методы его получения. Такое состояние газа называется вакуумом. Разреженный газ Вакуум среда содержащая газ при давлениях значительно ниже атмосферного. Вакуум характеризуется соотношением между длиной свободного пробега молекул газа λ и характерным размером процесса d.