Метод деформируемого многогранника Нелдера, Мида
Методы поиска или методы минимизации без ограничений, не использующие производные
В методах поиска направления минимизации определяются на основании последовательных вычислений целевой функции .
Метод прямого поиска
Простейший метод прямого поиска заключается в том, что последовательно осуществляется одномерный поиск по каждой переменной, тогда как другие переменные остаются постоянными. Во многих случаях этот метод работает плохо.
Метод деформируемого многогранника Нелдера, Мида
Симплекс ― это регулярный многогранник в п-мерном пространстве (в двумерном пространстве равносторонний треугольник, в трехмерном пространстве тетраэдр, то есть пирамида с четырьмя вершинами и одинаковыми ребрами, и так далее). Координаты вершин регулярного симплекса задаются с помощью матрицы
,
столбцы которой состоят из п координат каждой из (п + 1) вершин. Здесь
t ― расстояние между двумя вершинами (длина ребра и аналог шага h поиска).
Пусть на k-ом этапе поиска, k = 0,1,…, заданы n координат каждой из (п + 1) вершин деформируемого многогранника (вначале это регулярный симплекс) в п-мерном пространстве
Шаг 1). Вычисляются значения целевой функции в каждой из (п + 1) вершин
Шаг 2). Определяются вершины, в которых целевая функция принимает максимальное и минимальное значения
а также определяется центр тяжести всех вершин многогранника, исключая ,
Шаг 3). Отражение: проектирование через центр тяжести
где α > 0 коэффициент отражения.
Шаг 4). Растяжение:
Если , то осуществляется растяжение, то есть определяется
где γ > 1 коэффициент растяжения.
Если , то заменяется на и можно вернуться к шагу 1 при k = k + 1.
В противном случае заменяется на и можно вернуться к шагу 1 при k = k + 1.
Шаг 5). Сжатие:
Если , то осуществляется сжатие, то есть определяется
где 0 < β < 1 коэффициент сжатия. Затем заменяется на и можно вернуться к шагу 1 при k = k + 1.
Шаг 6). Редукция:
Если то осуществляется редукция, то есть все векторы уменьшаются, например, в 2 раза
и можно вернуться к шагу 1 при k = k + 1.
Условие выхода или критерий окончания поиска
, (1.2.1)
а решение задачи минимизации
(1.2.2)
Авторы рекомендовали α = 1, β = 0.5, γ = 2.
Пример 1.2.1 Решение задачи многомерной минимизации методом симплексного поиска Спендли, Хекста и Химсворта
Пусть .
Найдем локальный минимум, ближайший к , методом многомерного симплексного поиска (локальный минимум, ближайший к , , при , ).
Пусть t = 0.01, , , , п = 2.
Тогда
Получим , , при t = 0.1 после 30 шагов симплексного поиска.
М-функция:
function[xopt,fopt]=exmpl2(x01,x02,t,kmax)
n=2;
d1=t/n/sqrt(2)*(sqrt(n+1)+n-1);d2=t/n/sqrt(2)*(sqrt(n+1)-1);
d=[0 d1 d2;0 d2 d1];
for k=1:kmax
for i=1:n+1
f(i)=-d(1,i)^3+10*d(1,i)^2+20*d(1,i)^1-1-d(2,i)^3+10*d(2,i)^2+20*d(2,i)^1-1;
end
[fh,ih]=max(f);
[fl,il]=min(f) ;
disp('Центр тяжести');
xn2=zeros(1,n);
for i=1:n+1
if i~=ih
for j=1:n
xn2(j)=xn2(j)+1/n*d(j,i);
end
end
end
fn2=-xn2(1)^3+10*xn2(1)^2+20*xn2(1)^1-1-xn2(2)^3+10*xn2(2)^2+20*xn2(2)^1-1
disp('Отражение');
for j=1:n
xn3(j)=xn2(j)+(xn2(j)-d(j,ih));
end
fn3=-xn3(1)^3+10*xn3(1)^2+20*xn3(1)^1-1-xn3(2)^3+10*xn3(2)^2+20*xn3(2)^1-1
for j=1:n
d(j,ih)=xn3(j);
end
end
for j=1:n
xopt(j)=d(j,il);
end
fopt=fl;
end
<== предыдущая лекция | | | следующая лекция ==> |
Категории электроприемников и обеспечение надежности электроснабжения | | | Дистанционное зондирование лесов |
Дата добавления: 2019-02-07; просмотров: 638;