- •Программирование численных методов в экстремальных задачах
- •Предисловие
- •Практическое занятие 1. Исследование методов одномерного поиска минимума унимодальных функций
- •1.1. Требования задания
- •1.2. Контрольные вопросы
- •1.3. Содержание отчета
- •Практическое занятие 2. Исследование методов полиномиальной интерполяции для поиска минимума целевых функций
- •2.1. Требования задания
- •2.2. Контрольные вопросы
- •2.3. Содержание отчета
- •Практическое занятие 3. Исследование методов линейного поиска
- •3.1. Требования задания
- •3.2. Контрольные вопросы
- •3.3. Содержание отчета
- •Практическое занятие 4. Исследование градиентных методов
- •4.1. Требования задания
- •4.2. Контрольные вопросы
- •4.3. Содержание отчета
- •Практическое занятие 5. Проектирование программы оптимизации
- •5.1. Требования задания
- •5.2. Контрольные вопросы
- •5.3. Содержание отчета
- •Практическое занятие 6. Исследование модификаций ньютоновских оптимизационных процессов
- •6.1. Требования задания
- •6.2. Контрольные вопросы
- •6.3. Содержание отчета
- •Практическое занятие 7. Исследование методов переменной метрики
- •7.1. Требования задания
- •7.2. Контрольные вопросы
- •7.3. Содержание отчета
- •Практическое занятие 8. Исследование методов сопряженных градиентов
- •8.1. Требования задания
- •8.2. Контрольные вопросы
- •8.3. Содержание отчета
- •Практическое занятие 9. Исследование методов безусловной оптимизации нулевого порядка
- •9.1. Требования задания
- •9.2. Контрольные вопросы
- •9.3. Содержание отчета
- •Практическое занятие 10. Исследование алгоритмов случайного поиска
- •10.1. Требования задания
- •10.2. Контрольные вопросы
- •10.3. Содержание отчета
- •Практическое занятие 11. Исследование методов нелинейного программирования
- •11.1. Требования задания
- •11.2. Контрольные вопросы
- •11.3. Содержание отчета
- •Список литературы
- •1. Метод средней точки (метод Больцано)
- •2. Метод трехточечного поиска на равных интервалах
- •3. Метод Ньютона
- •4. Метод линейной интерполяции (метод секущих)
- •5. Метод кубической интерполяции для одномерной минимизации
- •6. Метод Фибоначчи
- •7. Метод Хука–Дживса с одномерной минимизацией
- •8. Метод Зангвилла
- •9. АлгоритмLPτ-поиска
- •10. Формулы методов переменной метрики
- •11. Минимизация целевых функций в MicrosoftExcel97
- •12. Тестовые функции
- •Содержание
- •197376, С.-Петербург, ул. Проф. Попова, 5
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 + 1 – x;
(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 + 1–xk + 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=i + 1 и вернуться к операции (2); иначе – построить новое сопряженное направлениеpk + 1=zk + 1–xk + 1, положитьk= =k+ 1 и перейти к шагу 1.
Шаг 4. Установить новые начальные условия для очередной итерации:
(1) взять xn + 1за новую начальную точкуx1=xn + 1, принятьp1= = –grady(x1);
(2) положить k=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|A≤X≤B} обычно используют линейное преобразование:Xij=Aj+aij(Bj–Aj).
Однако если границы гиперкуба имеют значительный разброс и отличаются друг от друга на несколько порядков, то для обеспечения попадания пробных точек в пограничные области обычно применяют логарифмическое преобразование границ вариации и варьируемого вектора: .