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

7. Метод Хука–Дживса с одномерной минимизацией

Метод Хука–Дживса с одномерной минимизацией является аналогом метода циклического покоординатного спуска (ЦПС) с ускоряющим шагом. Начиная со второй итерации устанавливается новый способ построения направления ускоряющего поиска. Организацию итерационной процедуры и отличие метода Хука–Дживса с одномерной минимизацией от метода ЦПС раскрывает представленное далее пошаговое описание алгоритма.

Начальный этап.

(1) Исходные данные – базовая точка x0, погрешность вычисления минимума, матрица координатных направлений= {pi},i= 1, 2, ...,n, гдеpi = ei – i-й единичный орт вRn, т. е.eii = 1 иeij = 0 при всехi ≠ j.

(2) Начальную точку x1 принять равной базовой точке: x1 = x0.

Основной этап.

Шаг 1. Выполнить ЦПС из начальной точки x1 в конечную точкуxn + 1, последовательно решаяnзадач одномерной минимизации вдоль координатных направлений.

Шаг 2. Проверить критерий окончания поиска:

(1) построить направление ускоряющего поиска d = xn + 1x;

(2) если ||d|| ≤ , остановиться,x*=xn + 1искомый аппроксимирующий минимум.

Шаг 3. Определить начальные условия для очередной итерации:

(1) найти оптимальный шаг n + 1в точкуxn + 2 = xn + 1 + n + 1d;

(2) взять точку xn + 2за новую начальную точкуx1 = xn + 2, а точкуxn + 1–за базовуюx0 = xn + 1;

(3) перейти к шагу 1.

8. Метод Зангвилла

Основная стратегия метода базируется на свойстве квадратичных функций, называемом свойством параллельного подпространства. Если xk + 1– точка минимума квадратичной функции, полученная в результате серии одномерных поисков из начальной точкиx1по всем направлениям системыk= {pi},i= 1, 2, ...,k, аzk + 1– точка минимума этой же функции вдоль тех же направленийk, но из другой начальной точкиz1, то векторpk + 1= =zk + 1xk + 1сопряжен со всеми направлениями системыk.

Начальный этап. Задать начальную точкуx1, константу. Положитьp1= –grady(x1),k= 1.

Основной этап.

Шаг 1. Оптимальный поиск точки xk + 1=xk+kpk. Еслиk=n, то перейти к шагу 4.

Шаг 2. Перейти в другую начальную точку z1=xk + 1+*d, гдеd= = –grady(xk + 1) – новое поисковое направление,*– оптимальное решение задачи минимизацииy(xk + 1+d). Положитьi= 1.

Шаг 3. Проверить критерий окончания поиска и, если он не выполняется, осуществить спуск вдоль направлений kв точкуzk + 1:

(1) если grady(zi)≤, то остановиться:x*=zi– искомый минимум;

(2) найти оптимальный шаг iв точкуzi + 1=zi+pi;

(3) если i<n, то положитьi=+ 1 и вернуться к операции (2); иначе – построить новое сопряженное направлениеpk + 1=zk + 1xk + 1, положитьk= =k+ 1 и перейти к шагу 1.

Шаг 4. Установить новые начальные условия для очередной итерации:

(1) взять xn + 1за новую начальную точкуx1=xn + 1, принятьp1= = –grady(x1);

(2) положить k=+ 1 и перейти к шагу 1.

9. АлгоритмLPτ-поиска

Для зондирования гиперкуба в алгоритме случайного поиска можно использовать точки LPτ-последовательности, обладающие на сегодняшний день наилучшими свойствами равномерного покрытия области [10].

Для генерации точек LPτ-последовательности можно использовать один из двух алгоритмов – логический или арифметический.

Логический алгоритмобладает большим быстродействием, но требует наличия в программном обеспечении ЭВМ специальных логических функций для чисел с плавающей точкой.

Арифметический алгоритмимеет меньшее, хотя и приемлемое быстродействие.

В соответствии с арифметическим алгоритмом i-я координатаj-й точки в гиперкубеD:{X| 0 ≤Xi≤ 1} вычисляется в соответствии с выражением

, (П. 9.1)

где m = 1 + [log2 i], {…} – операция взятия дробной части числа, […] – операция взятия целой части числа,rjl– элемент таблицы числителей направляющих чисел.

Матрицы числителей направляющих чисел составлены для достаточно большого количества точек и размерности, достаточной для решения практических задач. Например, матрица дает возможность вычислять до 210= 1024 точек при векторе варьируемых параметров размерностью до 8.

Матрица числителей направляющих чисел

rjl

1

2

3

4

5

6

7

8

9

10

1

1

1

1

1

1

1

1

1

1

1

2

1

3

5

15

17

51

85

255

257

771

3

1

1

7

11

13

61

67

79

465

721

4

1

3

7

5

7

43

49

147

439

1013

5

1

1

5

3

15

51

125

141

177

759

6

1

3

1

1

9

59

25

89

321

835

7

1

1

3

7

31

47

109

173

181

949

8

1

3

3

9

9

57

43

43

255

113

Для перевода точки aij, полученной в соответствии с выражением (П. 9.1), в произвольный гиперкуб {X|AXB} обычно используют линейное преобразование:Xij=Aj+aij(BjAj).

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