МНОГОМЕРНАЯ ГЛОБАЛЬНАЯ УСЛОВНАЯ ОПТИМИЗАЦИЯ

  • doc
  • 08.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 42. МНОГОМЕРНАЯ ГЛОБАЛЬНАЯ УСЛОВНАЯ ОПТИМИЗАЦИЯ.doc

7 МНОГОМЕРНАЯ ГЛОБАЛЬНАЯ УСЛОВНАЯ ОПТИМИЗАЦИЯ

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

Рассматривается следующая многомерная задача глобальной условной оптимизации: найти минимум критерия оптимальности f(x), определенного во множестве D пространства Rn,

                                                              (7.1)

где множество допустимых значений

                              (7.2)

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

                                          (7.3)

Метод сведения к совокупности вложенных одномерных задач глобальной оптимизации состоит в решении вместо задачи (7.1), (7.3) следующей совокупности вложенных одномерных задач условной оптимизации

               (7.4)

где множества  представляют собой соответствующие сечения множества D (см. ниже).

Поясним смысл метода с помощью примера.

Пример. Положим, что  и , т.е. n = 2. Вложенные одномерные задачи глобальной оптимизации (7.4) в этом случае можно представить в виде (рис. 7.1)

                                      (7.5)

                                                   (7.6)

где D(x1) – сечение области D прямой, параллельной оси Ox. Задача (7.5) представляет собой одномерную задачу глобальной оптимизации критерия оптимальности f(x1) по параметру , для вычисления значения которого при данном фиксированном x1 необходимо решить одномерную задачу глобальной оптимизации критерия оптимальности f(x1, x2) по параметру .

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

.

 

 

 

 

 

 

 

 

 


Рис. 7.1. При решении задачи (7.5) вычисление значения критерия оптимальности f(x) при некотором x = x1 требует решения                             задачи минимизации (7.6) на множестве D(x1)

 

Поэтому при n > 3 такой алгоритм становится неэффективным. При  надежность алгоритма достаточно высока, а затраты на поиск значительно меньше затрат на полный перебор на той же сетке.

Метод решения многомерной задачи глобальной условной оптимизации путем сведения к совокупности вложенных одномерных задач глобальной оптимизации может быть скомбинирован со всеми рассмотренными в главе 4 методами решения одномерных задач глобальной оптимизации. Рассмотрим комбинацию этого метода с методом случайного поиска для двумерной задачи (7.1), (7.3).

Алгоритм комбинации метода с методом случайного поиска (n = 2)

Шаг 1. Задаем величины N1, N2 – количества испытаний при решении задач (7.5), (7.6), соответственно. Полагаем r = 1.

Шаг 2. Генерируем с помощью какого-либо программного генератора случайных чисел, равномерно распределенных в интервале , случайное число .

Шаг 3. Методом случайного поиска решаем задачу (7.6) при  – находим точку  и вычисляем значение критерия оптимальности

Шаг 4. Аналогично шагу 2 генерируем случайное число .

Шаг 5. Методом случайного поиска решаем задачу (7.6) при  – находим точку  и вычисляем значение критерия оптимальности .

Шаг 6. Если , то выполняем присваивания .

Шаг 7. Если , то выполняем присваивание  и переходим к шагу 4. Иначе принимаем точку  в качестве приближенного значения точки глобального минимума функции f(x) в области D или каким-либо из рассмотренных ранее методов организуем в окрестности указной точки поиск локального минимума функции f(x) и заканчиваем вычисления.

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

Комбинацию рассматриваемого метода с методом случайного поиска для двумерной задачи иллюстрирует рис. 7.2, на котором показан фрагмент линий уровня функции Химмельблау (n = 2). Принято, что x* – точка минимума функции f(x) в области D после (r – 1)-й итерации. Точки на прямой  случайным образом сгенерированы на r-й итерации. После завершения r-й итерации очевидно .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 7.2. Итерация номер r комбинации метода сведения с методом случайного поиска для двумерной задачи

 

7.2 Метод сведения к задаче одномерной глобальной оптимизации                  с помощью развертки Пеано

Рассмотрим многомерную задачу глобальной условной оптимизации

                                                   (7.7)

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

.                                             (7.8)

Отметим, что произвольный гиперпараллелепипед с помощью линейного преобразования может быть сведен к гиперкубу (7.8), так что рассмотрение в качестве множества D гиперкуба (7.8), а не гиперпараллелепипеда, не сужает общности рассуждений.

Рассматриваемый метод основан на использовании непрерывного отображения гиперкуба D на отрезок вещественной оси.

Разбиение гиперкуба. Развертка Пеано

Шаг 1 (s = 1). Координатными плоскостями гиперкуб D разбивается на 2n гиперкубов первого разбиения с длиной ребра, равной  (рис. 7.3, а). Пронумеруем их с помощью переменной  таким образом, чтобы гиперкубы с номерами, отличающимися на единицу, имели общую грань. Соединим центры гиперкубов ломаной  в порядке введенной нумерации. Гиперкуб первого разбиения с номером z1 обозначим D(z1).

Шаг 2 (s = 2). По рассмотренной схеме каждый гиперкуб первого разбиения разобьем плоскостями, параллельными координатным плоскостям и проходящими через его центр, на 2n гиперкубов второго разбиения с длиной ребра, равной  (рис. 7.3, б). Пронумеруем полученные гиперкубы с помощью переменной  по тому же правилу, что и гиперкубы первого разбиения, с тем отличием, что нулевой гиперкуб второго разбиения, входящий в гиперкуб D(z1), должен иметь общую грань с (2n  – 1)-м гиперкубом второго разбиения, входящим в гиперкуб D(z1 – 1). Соединим центры гиперкубов ломаной  в порядке введенной нумерации. Обозначим гиперкубы второго разбиения D(z1, z2).

Шаг s. Аналогично шагу 2 разбиваем гиперкубы (s – 1)-го разбиения на гиперкубы s-го разбиения с длиной ребра, равной , нумеруем их с помощью переменной , соединяем центры гиперкубов ломаной  в порядке введенной нумерации и обозначаем D(z1,z2,…,zs).

 

 

 

 

 

 

 

 

 

 

 


Рис. 7.3. К разбиению гиперкуба (n = 2). а) Первое разбиение. б) Второе разбиение. Стрелками показано направление нумерации гиперкубов

 

Ломаная  называется разверткой Пеано. В пределе при  ломаная  называется кривой Пеано. Кривая Пеано обладает тем свойством, что проходит через все точки гиперкуба и имеет в каждой точке излом

Разбиение отрезка [0, 1]

Шаг 1 (s = 1). Разобьем отрезок [0, 1] на 2n равных частей длиной  (рис. 7.4, а), пронумеруем их слева направо с помощью переменной  и обозначим .

Шаг 2 (s = 2). Каждый из отрезков ,  разобьем на 2n равных частей длиной  (рис. 7.4, б), пронумеруем их слева направо с помощью переменной  и обозначим .

...

Шаг s. Аналогично шагу 2 каждый из отрезков (s – 1)-го разбиения разобьем на 2n равных частей длиной , пронумеруем их слева направо с помощью переменной  и обозначим .

 

 

 

 

 


Рис. 7.4. К разбиению отрезка [0, 1]. а) Первое разбиение. б) Второе разбиение

 

Отображение отрезка [0, 1] на гиперкуб

Определим отображение точки  отрезка [0,1] на гиперкуб D следующим образом: если точка , то соответствующая точка  является центром гиперкуба . Обозначим введенное отображение . Таким образом, если , то = (рис. 7.5).

На рис. 7.5 любая точка  отображается в центр гиперкуба D(0,2) – точку xD(0,2). Аналогично, любая точка  отображается в точку xD(1,3) и любая точка отображается в точку xD(2,1).

В пределе при  введенное отображение отображает отрезок [0,1] на кривую Пеано. Можно показать, что в пределе при  построенное отображение является непрерывным и взаимнооднозначным.

 

 

 

 

 

 

 

 

 


Рис. 7.5. К отображению отрезка [0, 1] на гиперкуб

Пусть  – двоичное представление числа , т.е. .

Утверждение. Если , то первые sn двоичных цифр числа  определяют разбиение  отрезка [0,1]:

...

Здесь  – операция преобразования двоичного числа в десятичное.

Пример. Пусть область D представляет собой квадрат (n = 2). На отрезке [0,1] рассмотрим точки  – рис. 7.6.

Преобразуем  в двоичную систему счисления:

0,26 · 2 = 0,52 – запоминаем целую часть 0;

0,52 · 2 = 1,04 – запоминаем целую часть 1;

0,04 · 2 = 0,08 – запоминаем целую часть 0;

0,08 · 2 = 0,16 – запоминаем целую часть 0;

0,16 · 2 = 0,32 – запоминаем целую часть 0;

0,32 · 2 = 0,64 – запоминаем целую часть 0;

0,64 · 2 = 1,28 – запоминаем целую часть 1.

Итого,.           Таким образом, .

Аналогично . Таким образом, .

И . Таким образом, .

 

 

 

 

 

 

 


Рис. 7.6. К примеру

 

Определим на отрезке [0,1] функцию . Отметим, что если функция f(x) является непрерывной функцией, то функция  также непрерывна. Однако эта функция является негладкой и многоэкстремальной, даже если исходная функция  f(x) гладкая и унимодальная.

Таким образом, с помощью развертки Пеано многомерная задача глобальной условной оптимизации (7.7), (7.8) сводится к одномерной задаче условной глобальной оптимизации

Решение задачи многомерной глобальной условной оптимизации          с помощью развертки Пеано

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

1 Должна быть задана требуемая точность  решения исходной задачи (7.7), (7.8) по x. Исходя из этой точности, предварительно должно быть определено s – количество разбиений области D (см. ниже).

2 Вычисления значений критерия оптимальности  должны производиться по следующей схеме:

- для заданного  находим sn цифр его двоичного представления ;

- определяем числа , ,…,

- в гиперкубе  выбираем его центр x;

- вычисляем значение критерия оптимальности f(x) в этой точке, которое и принимаем за значение .

При заданной точности  решения задачи (7.7), (7.8) по x необходимое количество s разбиений гиперкуба D может быть найдено из следующих соображений. Гиперкуб s-го разбиения  имеет длину ребра, равную . Максимальное расстояние точек этого гиперкуба до его центра равно половине диагонали гиперкуба, которая, очевидно, равна корню квадратному из суммы квадратов n ребер гиперкуба, т.е. . Таким образом, s может быть найдено из условия

.

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

 

7.3 Метод Монте-Карло

Рассмотрим многомерную задачу глобальной условной оптимизации

                                                   (7.9)

где множество допустимых значений

                        (7.10)

Метод Монте-Карло относится к классу прямых методов случайного поиска.

 

Алгоритм метода Монте-Карло

Шаг 1. Задаем общее количество испытаний N и полагаем счетчик числа итераций r = 1.

Шаг 2. С помощью какого-либо программного генератора случайных чисел генерируем n компонент вектора .

Шаг 3. Вычисляем f(x1) и полагаем .

Шаг 4. Аналогично шагу 2 генерируем случайную точку . Вычисляем соответствующее значение критерия оптимальности .

Шаг 5. Выполняем следующие присваивания:

Шаг 6. Если r < N, полагаем r = r + 1 и переходим к шагу 4, иначе принимаем x*, f* в качестве приближенного решения задачи и заканчиваем вычисления.

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

Для локализации с помощью метода Монте-Карло глобального минимума с высокой вероятностью и точностью требуется очень большое количество испытаний N. Поэтому метод Монте-Карло обычно комбинируют с каким-либо детерминированным методом локальной оптимизации.

Комбинация метода Монте-Карло с детерминированным методом локальной оптимизации

Шаг 1. Задаем общее количество исходных случайных точек N.

Шаг 2. С помощью какого-либо программного генератора случайных чисел генерируем N случайных точек , принадлежащие          множеству D.

Шаг 3. Полагаем r = 1.

Шаг 4. Исходя из точки xr, каким-либо многомерным методом условной оптимизации (см. главу 6) находим локальный минимум (x*)r функции f(x) в окрестности этой точки и вычисляем f((x*)r) = (f*)r.

Шаг 5. Если r < N, полагаем r = r + 1 и переходим к шагу 4, иначе – переходим к следующему шагу.

Шаг 6. Находим минимальное из чисел (f*)r. Пусть

Принимаем в качестве приближенного решения задачи (x*)k, (f*)r и заканчиваем вычисления.