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

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

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

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

 (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);

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

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

 (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 ребер гиперкуба, т.е. . Таким образом, может быть найдено из условия

.

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

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

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

 (1)

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

 (2)

 (3)

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Полагаем .

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

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

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

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