
- •Глава 3. Классификация поисковых методов оптимизации и методология их сравнения.
- •§1. Классификация методов решения детерминированных задач оптимизации.
- •§2. Наилучшие алгоритмы поисковой оптимизации.
- •§3. Экспериментальное тестирование алгоритмов поисковой оптимизации.
- •§4. Классы тестовых функций.
- •Класс одномерных многоэкстремальных функций. Положим, что область допустимых значений d функции ф(y) есть интервал [a,b]. С помощью линейного преобразования
§4. Классы тестовых функций.
Класс одномерных унимодальных функций.
Положим,
что D=[a,b].
Покроем интервал [a,b]
сеткой с М+1
узлам и обозначим
- рисунок 1.
Рисунок 1 – Сетка, покрывающая интервал [a,b]
Положим,
что необходимо построить одномерную
унимодальную функцию, минимум которой
находится в узле i*є[0:M],
т.е. в точке
.Тогда
для генерации такой функций может быть
использован следующий алгоритм.
1). Генерируем дискретную случайную величину i*, равномерно распределенную на множестве 0,1,2,…,М.
2).
Генерируем случайные числа
по рекуррентной формуле
где
βi,
-
случайные величины, равномерно
распределенные в интервале
,
если
,
и в интервале
,
если
.
Здесь
- некоторая
константа, определяющая максимальную
скорость изменения искомой функции.
3).
Для получения функции Ф(x)
используем линейную интерполяцию
полученных значений Фi,
iє[0:M].
Минимум полученной функции Ф(x)
достигается в точке
.
Пример
1. Пусть
D=[0,1],
=1,M=10.
Положим, что
сгенерированы следующие случайные
значения величин i*,
βi,
:
i*=4;
β0=-0.5, β1=-0.3, β2=-0.4, β3=-0.7, β4=-0.1, β5=0.3, β6=0.2, β7=0.8, β8=0.5, β9=0.1, β10=0.7.
Тогда искомая одномерная унимодальная функция Ф(x) будет иметь вид, представленный на рисунке 2●
Рисунок 2 - Тестовая одномерная унимодальная функция (к примеру 1)
Класс одномерных многоэкстремальных функций. Положим, что область допустимых значений d функции ф(y) есть интервал [a,b]. С помощью линейного преобразования
(1)
сведем этот интервал к интервалу [0,1]. Тогда в качестве тестовых одномерных многоэкстремальных функций можно использовать тригонометрические полиномы некоторой степени s (отрезки ряда Фурье):
(2)
Здесь
,
- случайные
величины с некоторыми законами
распределения.
Таким образом, генерации одномерных многоэкстремальных функций сводится к генерации указанных случайных величин.
Класс многоэкстремальных функций нескольких переменных.
В простейшем случае для генерации таких функций можно использовать совокупность s квадратичных функций, каждая из которых в общем случае дает локальный минимум искомой функции:
Фj(X), (3)
где квадратичная функция
(4)
Здесь
n
– размерность вектора варьируемых
параметров X,
– точкаj-го
локального минимума со значением сj;
постоянные
,
,cj
- случайные
величины с некоторыми законами
распределения.
Пример
2. Чтобы
пояснить суть рассмотренного способа
генерации многоэкстремальных функций
нескольких переменных, рассмотрим
прежде случай одной переменной, т.е.
случай, когда n=1.
Пусть s=3,
и пусть сгенерированы следующие значения
величин
,
,cj,
:
j |
|
|
cj |
1 |
1 |
-6 |
4 |
2 |
1.2 |
0 |
-1 |
3 |
1.5 |
7 |
-5 |
Тогда функция Ф(x) будут иметь вид, представленный на рисунке 3●
Рисунок 3 получен с помощью следующей Matlab-программы:
x=-10:0.05:10;
y1=(x+6).^2+4;
y2=1.2*x.^2-1;
y3=1.5*(x-7).^2-5;
yh=min(y1,y2);
y=min(yh,y3);
plot(x,y);
Рисунок 3 - К примеру 2
Пример
3. Пусть
теперь n=2,
s=3,
– двумерное евклидовое пространство
и пусть сгенерированы следующие значения
величин
,
,
,
k=1,2,
j=1,2,3:
j |
|
|
|
|
cj |
1 |
1 |
1.2 |
-6 |
5 |
-3 |
2 |
1.2 |
1.5 |
4 |
7 |
-1 |
3 |
1.5 |
1.7 |
5 |
-4 |
-5 |
Тогда линии уровня функции Ф(X) будут иметь вид, представленный на рисунке 4●
Рисунок 4 получен с помощью следующей Matlab-программы:
[X,Y] = meshgrid([-10:0.05:10]);
Z1=(X+6).^2+1.2*(Y-5).^2-3;
Z2=1.2*(X-4).^2+1.5*(Y-7).^2-1;
Z3=1.5*(X-5).^2+1.7*(Y+4).^2-5;
ZH=min(Z1,Z2);
Z=min(ZH,Z3);
V=[-4,0,4,8,16,32,50,100,150,200];
[C,h]=contour(X,Y,Z,V);
clabel(C,h);
Рисунок 4 - К примеру 3