
- •Филиал «севмашвтуз» государственного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный морской технический университет» в г. Северодвинске
- •Часть 2
- •Содержание
- •Аннотация
- •Лабораторная работа № 3. Тема: Решение задач одномерной оптимизации на эвм. Теория
- •1. Концепция методов
- •2. Метод сканирования
- •3. Метод поразрядного поиска
- •Алгоритм метода поразрядного поиска для минимизации функции.
- •4. Метод дихотомии (половинного деления)
- •Алгоритм метода дихотомии для минимизации функции.
- •5. Метод золотого сечения
- •Алгоритм метода золотого сечения для минимизации функции.
- •6. Метод квадратичной интерполяции
- •Алгоритм метода золотого сечения для минимизации функции.
- •Содержание лабораторной работы
- •1. Задание на лабораторную работу
- •2. Содержание отчёта по лабораторной работе
- •Контрольные вопросы
- •Приложение 1.
- •Лабораторная работа №4. Тема: Решение задач нелинейного программирования на эвм. Теория
- •1. Концепция методов.
- •2. Метод градиента
- •Алгоритм градиентного метода.
- •3. Метод наискорейшего спуска
- •Алгоритм метода наискорейшего спуска для поиска минимума.
- •4. Метод сопряжённых градиентов
- •Алгоритм метода сопряжённых градиентов для поиска минимума.
- •5. Метод тяжелого шарика
- •Алгоритм метода тяжёлого шарика для поиска минимума.
- •Содержание лабораторной работы
- •1. Задание на лабораторную работу
- •2. Содержание отчёта по лабораторной работе
- •Контрольные вопросы
- •Приложение 2. Варианты заданий для лабораторной работы №4
- •Литература
5. Метод тяжелого шарика
Метод базируется на аналогии с движением "тяжелого" материального шарика по наклонной поверхности. Скорость шарика при движении вниз будет возрастать, и он будет стремиться занять нижнее положение, т.е. точку минимума. При выводе дифференциального уравнения движения шарика учитывается его масса и вязкость среды, которые влияют на характер его движения, т.е. поиска min R(x).
В дискретном варианте траектория поиска описывается следующим алгоритмом:
xi+1 = xi – α (xi – xi–1) – h grad R(xi)
При α =0 метод превращается в обыкновенный градиентный. При α = 1 поиск не затухает, следовательно, при 0 < α < 1 можно получать различную эффективность метода, которая будет зависеть и от h.
Вдали от оптимума поиск будет ускоряться, а вблизи возможны колебания около точки min R(x).
К недостаткам метода относится необходимость задания сразу двух неформальных параметров, определяющих эффективность поиска. К достоинствам метода, помимо ускорения движения вдали от оптимума, относится возможность "проскока" мелких локальных "ямок" (минимумов) за счет "инерционности шарика", т.е. можно решать и задачу глобальной оптимизации для функции R(x) с одним явно выраженным минимумом и многими "мелкими".
Одна из возможных траекторий поиска минимума двумерной функции методом тяжелого шарика приведена на рис. 1.
Алгоритм метода тяжёлого шарика для поиска минимума.
Начальный этап. Выполнение градиентного метода.
Задаём начальное приближение x10, х20. Определяем значение критерия R(x10, х20). Положить k = 0 и перейти к шагу 1 начального этапа.
Шаг
1. Вычислить
R(x1k
+
g,
x2k),
R(x1k
–
g,
x2k),
R(x1k,
x2k
+
g),
R(x1k,
x2k).
В соответствии с алгоритмом с центральной
или парной пробы вычислить значение
частных производных
и
.
Вычислить значение модуля градиента
.
Шаг
2.
Если модуль
градиента
,
то расчёт остановить, а точкой оптимума
считать точку (x1k,
x2k).
В противном случае перейти к шагу 3.
Шаг 3. Выполнить рабочий шаг, рассчитав по формуле
xk+1 = xk – h grad R(xk)).
Шаг 4. Определить значение критерия R(x1k+1, х2k+1). Если R(x1k+1, х2k+1) < R(x1k, х2k), то положить k = k+1 и перейти к шагу 3. Если R(x1k+1, х2k+1) ≥ R(x1k, х2k), то перейти к основному этапу.
Основной этап.
Шаг
1. Вычислить
R(x1k
+
g,
x2k),
R(x1k
–
g,
x2k),
R(x1k,
x2k
+
g),
R(x1k,
x2k).
В соответствии с алгоритмом с центральной
или парной пробы вычислить значение
частных производных
и
.
Вычислить значение модуля градиента
.
Шаг
2.
Если модуль
градиента
,
то расчёт остановить, а точкой оптимума
считать точку (x1k,
x2k).
В противном случае перейти к шагу 3.
Шаг 3. Выполнить рабочий шаг, рассчитав по формуле
xk+1 = xk – α (xk – xk–1) – h grad R(xk)
Шаг 4. Определить значение критерия R(x1k+1, х2k+1). Положить k = k+1 и перейти к шагу 1.
Пример.
Для сравнения методов рассмотрим решение предыдущего примера. Результаты вычислений при α =0,5 и h =0,1 приведены ниже в кратком изложении, так как никаких принципиально новых элементов здесь нет, кроме формулы для вычисления рабочего шага. Обратим внимание на то, что первый шаг делается обычным методом градиента (результаты полностью совпадают с результатами метода градиента), так как мы еще не имеем предыдущей точки (табл. 7).
Таблица 7
№ |
x1 |
x2 |
dR/dx1 |
dR/dx2 |
|grad R| |
R | |
0 |
–0,500 |
–1,000 |
–2,2499 |
–8,0000 |
8,3100 |
7,3750 | |
1 |
–0,275 |
–0,200 |
–2,7730 |
–4,8000 |
5,5430 |
1,6842 | |
2 |
–0,110 |
–0,120 |
–2,9635 |
–4,4800 |
5,3710 |
0,8381 | |
3 |
0,104 |
0,288 |
–2,9676 |
–2,8480 |
–6,1130 |
–1,2962 | |
4 |
0,294 |
–0,369 |
–2,7414 |
–2,5248 |
0,7269 |
–2,0585 | |
5 |
0,473 |
–0,581 |
–2,3293 |
–1,6765 |
0,8699 |
–2,9613 | |
6 |
0,616 |
–0,642 |
–1,8612 |
–1,4300 |
0,3472 |
–3,3588 | |
7 |
0,731 |
0,755 |
–1,3988 |
–0,9812 |
0,7086 |
–3,6814 | |
8 |
0,813 |
0,797 |
–1,0160 |
–0,8131 |
0,3014 |
–3,8192 | |
9 |
0,873 |
0,857 |
–0,7110 |
–0,5719 |
0,9125 |
–3,9131 | |
10 |
0,914 |
0,884 |
–0,4913 |
–0,4638 |
0,6756 |
–3,9518 | |
11 |
0,943 |
0,917 |
–0,3316 |
–0,3323 |
0,4695 |
–3,9767 | |
12 |
0,962 |
0,934 |
–0,2240 |
–0,2651 |
0,3471 |
–3,9869 | |
13 |
0,975 |
0,952 |
-0,1486 |
-0,1927 |
0,2433 |
-3,9935 | |
14 |
0,983 |
0,962 |
-0,0994 |
-0,1518 |
0,1815 |
-3,9963 | |
15 |
0,989 |
0,972 |
-0,0653 |
-0,1115 |
0,1293 |
-3,9981 " |
Метод не оказался более эффективным по сравнению с другими. Это обусловлено проблемами с подбором параметров поиска α и h.
Для наглядного сравнения методов целесообразно по приведенным результатам поиска различными методами самостоятельно построить траектории поиска в координатах х1 – х2, соединив отрезками прямых все точки для каждого метода.