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

Глава 10. Многомерная глобальная условная оптимизация

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

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

 (1)

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

 (2)

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

 (3)

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

 (4)

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

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

Пример 1

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

 (5)

 (6)

где — сечение областипрямой, параллельной оси. Задача (5) представляет собой одномернуюзадачу глобальной оптимизации критерия оптимальности по параметру, для вычисления значения которого при данном фиксированномнеобходимо решить одномерную задачу глобальной оптимизации критерия оптимальностипо параметру

Рис. 1.  К прим. 1. При решении задачи (5) вычисление значения критерия оптимальности Ф(Х) при некотором x = x1 требует решения задачи минимизации (6) на множестве D(x1).

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

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

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

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

  1. Задаем величины – количестваиспытаний при решении задач (5), (6), соответственно. Полагаем .

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

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

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

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

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

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

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

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

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

Линии уровня на рис. 1 получены с помощью следующей MATLAB-программы:

x = -6 : 0.05 : 6;

y = x;

[X, Y] = meshgrid(x);

Z = (X.^2 + Y - 11).^2 + (X + Y.^2 - 7).^2;

V = [1, 4, 8, 16, 32, 64, 100, 150, 200, 250];

[C, h] = contour(X, Y, Z, V);

clabel(C, h);

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

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

 (1)

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

 (2)

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

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

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

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

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

......

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

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

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

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

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

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

.....

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

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

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

Определим отображение точки отрезкана гиперкубследующим образом: если точка, то соответствующая точкаявляется центром гиперкуба. Обозначим введенное отображение. Таким обозом, если, то(см. рис. 3).

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

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

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

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

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

...

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

Пример 1

Пусть область представляет собой квадрат. На отрезке [0,1] рассмотрим точки,,– см. рис. 4.

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

—запоминаем целую часть 0;

—запоминаем целую часть 1;

—запоминаем целую часть 0;

—запоминаем целую часть 0;

—запоминаем целую часть 0;

—запоминаем целую часть 0;

—запоминаем целую часть 1;

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

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

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

Рис. 4.  К прим. 1.

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

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

Ф() = Ф() = Ф.

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

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

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

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

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

  • определяем числа ,, ... ,;

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

  • вычисляем значение критерия оптимальности в этой точке, которое и принимаем за значение.

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

.

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

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

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

 (1)

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

 (2)

 (3)

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

Схема метода Монте-Карло.

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

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

  3. Вычисляем и полагаем,.

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

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

  6. Если полагаеми переходим на п.4, иначе принимаемв качестве приближенного решения задачи и заканчиваем вычисления

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

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

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

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

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

  3. Полагаем .

  4. Исходя из точки , каким-либо многомернымметодом условной оптимизации (см. главу 9) находим локальный минимум функциив окрестности этой точки и вычисляем.

  5. Если полагаеми переходим на п.4, иначе – переходим к следующему пункту.

  6. Находим минимальное из чисел . Пусть

Принимаем в качестве приближенного решения задачи и заканчиваем вычисления