Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации в пакетах прикладных программ и их применение в решении задач НЛП в системах автоматического управления. Учебно-методическое пособи

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Значений Q в пробных точках к разности значений аргумента в этих точках.
В общем случае, когда критерий оптимальности есть функция, зависящая
от n переменных, для оценки частных производных служат следующие формулы:




󰇛

󰇛


󰇜󰇛

󰇜󰇛


󰇜
  󰇛󰇜
󰇜
   󰇛󰇜
Причем, точность аппроксимации частных производных по формуле (3.10) выше, чем по формуле (3.9). Однако, при достаточно сложной связи критерия оптимальности с параметрами системы, необходимо учитывать количество вычислений градиента. При вычислении градиента по формуле (3.9) требуется (n+1) вычислений критерия оптимальности, в то время как оценка градиента по формуле (3.10) требует 2n вычислений критерия оптимальности. Такое большое число вычислений критерия оптимальности оправдано лишь в тех случаях, когда точность вычислений градиента имеет решающее значение для поиска экстремума функции.
Прежде чем переходить к описанию методов, нельзя не отметить одного обстоятельства, которое необходимо учитывать при решении задач условной оптимизации. При учёте ограничений на область поиска методы градиента и
наискорейшего спуска не гарантируют нахождения оптимального решения
В случае нарушения ограничений требуется либо модернизация градиентных методов и поиск вдоль границы области допустимых значений независимых переменных, либо преобразование задачи с ограничениями при помощи метода штрафных функций и осуществление поиска решения задачи безусловной оптимизации. Вышеуказанное обстоятельство следует отнести и к другим детерминированным методам (квазиньютоновским и др.).
3.3.1. Градиентный метод оптимизации
Метод градиента [12, 17] является одним из самых распространённых детерминированных методов оптимизации. Смысл его сводится к организации движения в антиградиентном (при минимизации) направлении.
Переход из состояния
󰇛󰇜
в состояние
󰇛󰇜
осуществляется в
соответствии с выражением
󰇛󰇜


󰇛󰇜

󰇛󰇜
(3.11)
.
где
󰇛󰇜
– приращение, выражение для которого по методу градиента в
случае минимизации имеет вид:
11
󰇛󰇜
󰇛
󰇛󰇜
󰇜 (3.12)
где

󰇛󰇜
– длина рабочего шага.
󰇛󰇜

Иллюстрация работы данного метода для функции двух переменных представлена на рисунке 3.3. Для любой начальной точки (A, B, C) траектория поиска представляет собой линию без резких изломов – это обусловлено тем, что после каждого шага происходит новое вычисление градиента. Вместе с тем видно, что для точки C траектория поиска весьма далека от кратчайшего пути. Это показывает важность выбора начальной точки. Высокой эффективности метод достигает при ярко выраженном экстремуме целевой функции.
Рисунок 3.3. Иллюстрация работы градиентного метода [18]
Остановимся подробнее на вопросе выбора величины шага
󰇛󰇜
Быстрота сходимости процесса поиска минимума функции󰇛󰇜 и его точность существенно зависят от выбора величины
󰇛󰇜
.
Наиболее просто реализуется метод счёта с постоянным шагом
. При этом на каждом шаге проверяют условие убывания функции
󰇛

󰇜

и, если оно нарушается,
󰇛󰇜
уменьшают вплоть до восстановления этого условия. Величина выбирается заранее исходя из некоторых априорных данных о задаче.
Для увеличения быстроты перемещения вдали от экстремума󰇛󰇜
величину целесообразно выбирать достаточно большой. Однако при этом в
каждой новой точке поиска следует проверять условие убывания функции с
тем, чтобы не перескочить за счёт большого шага точку.
Целесообразным также представляется изменение длины рабочего шага
поиска в соответствии с эвристическим алгоритмом:
.
󰇛󰇜
󰇛󰇜
 
12
13
󰇛
󰇛󰇜

󰇫

󰇛
󰇛
󰇜


󰇜

󰇛󰇜
󰇜󰇛
󰇛󰇜

󰇛
󰇛
󰇜

󰇜
, (3.13)
󰇜

где .
В результате вычислительных экспериментов по минимизации функции
󰇛󰇜
󰇛 󰇜

были получены значения
При
󰇛󰇜
 и
󰇛󰇜
,  
коэффициентов изменения шага поиска,.
Для разумного сочетания быстроты и точности предлагается чередовать
грубый и точный поиск в зависимости от того, как далеко находится минимума󰇛
принять сумму абсолютных значений производных
󰇜
. За меру близости к минимуму удобно



 

󰇻
󰇻
(3.14)

:
от
Введены некоторые положительные константы󰇛󰇜, и
следующие условия:
1) если  значением коэффициента
2) если 
3) если  
, то необходим грубый поиск, т.е. поиск с большим
󰇛󰇜
;
, то необходим точный поиск;
, то поиск окончен.
Для построения алгоритма поиска важно определить условие окончания
процесса поиска. В качестве таких условий могут быть приняты следующие:
4) пробные приращения переменных
󰇛󰇜
обоих знаков приводят к
положительному приращению функции󰇛󰇜.

󰇛󰇜

, 
󰇛󰇜
 (3.15)

5) приближённое значение градиента по модулю не превышает некоторой положительной величины. т.е.
󰇛󰇜 (3.16)
При минимизации функции
14
󰇛󰇜

󰇛 󰇜
Значения константи были равны  , 
.
3.3.2. Метод наискорейшего спуска
Алгоритм, реализующий метод наискорейшего спуска, состоит в
следующем [19]:
1. Обращение к процедуре вычисления функции Q при заданных исходных значениях

󰇛󰇜
󰇛
 󰇜
󰇛󰇜
󰇛
󰇛󰇜
 
󰇛󰇜
󰇜
2. Определение градиента󰇛

󰇛   


󰇜

󰇜
 󰇛 
󰇜
󰇛󰇜
3. Оценка условия окончания поиска

 



 – точность поиска. Если условие выполняется, то осуществляется переход к п. 5;
4. Перемещение по лучу антиградиента
󰇛


󰇜

󰇛󰇜
 
При выполнении условия


󰇛     󰇜
󰇛󰇜
󰇛󰇜
, перемещение по лучу
антиградиента прекращается, иначе – переход к пункту 2;
5. Печать результатов.
Рисунок 3.4. Иллюстрация работы метода наискорейшего спуска [18]
15
Работа данного метода для функции двух переменных проиллюстрирована на рисунке 3.4. В начальной точке A вычисляется градиент, затем начинается перемещение по его лучу в отрицательном направлении до момента прекращения уменьшения значения целевой функции – это происходит в точке B. Затем снова вычисляется градиент, и начинается следующая стадия движения. В данном примере оказалось достаточным вычисление градиента в двух точках.
Трудоёмкость (скорость сходимости к оптимальному решению) алгоритма поиска характеризуют следующие данные:
1) количество вычислений градиента󰇛
󰇜
;
2) количество малых шагов перемещений по лучу градиента.
Трудоёмкость алгоритма существенным образом зависит от требуемой точности решения и величины шага a. Длина рабочего шага поиска изменяется в соответствии с эвристическим алгоритмом аналогично тому, как это сделано в градиентном методе. Коэффициенты изменения шага, полученные в результате
󰇛󰇜
 
󰇛 󰇜
󰇛󰇜

 
󰇛󰇜
,
имеют значения .
4. ПРАКТИЧЕСКИЕ ЗАНЯТИЯ
Приведем некоторые тестовые функции нескольких переменных
1. Парабола, n = 2;
󰇛󰇜󰇛 󰇜
Начальная точка (0;1).
󰇛  󰇜
2. Парабола, n = 3 ;
󰇛󰇜󰇛  󰇜 󰇛  󰇜 󰇛  󰇜
Начальная точка (0,5;1;0,5).
3. Функция Розенброка:
󰇛󰇜󰇛 
Начальная точка (-1;2;1).
󰇜
 󰇛  󰇜
4. Функция Пауэлла:
16
󰇛󰇜󰇛 󰇜 󰇛 󰇜 󰇛 󰇜 󰇛 󰇜
Начальная точка (3;1;0;1).
5. Квадратичная функция, n = 10:

󰇛󰇜

󰇛 󰇜
Начальная точка,   
.
Примеры оптимизации этих и других тестовых функций «вручную»
приведены в многочисленных практикумах по методам оптимизации, например, [17]. В работе рассмотрены примеры практического применения вышеописанных методов оптимизации как «вручную», так и с применением разработанных программ, реализующих поисковые алгоритмы. Сравнение полученных результатов «машинных» расчетов представлено в таблицах 4.1-
4.12.
На тестовой функции вида 5 далее рассмотрим, как работают методы Гаусса
– Зейделя и другие при поиске минимума функции.
Вид функции:󰇛󰇜󰇛 󰇜 󰇛 󰇜
,
начальные значения:   Начальное значение Q равно 󰇛󰇜󰇛  󰇜 󰇛  󰇜
В методе Гаусса – Зейделя приращение по каждой переменной в процессе поиска рассчитывается по формуле (3.7) на i – ом шаге.
󰇛󰇜


где масштаб где
- верхняя граница области поиска,
- нижняя граница области поиска,
 ,

󰇛󰇜
в задаче равна -10.
󰇛󰇜
 
 ,
в задаче равна 10;
Отсюда, и при шаге поиска равным 0,5, произведение   Далее описаны результаты поиска вдоль координатной оси
.
Увеличение: ,    󰇛  󰇜 󰇛  󰇜 , что больше первоначального
значения = 145. Значит направление в сторону увеличения
не приведет к
минимуму. Уменьшение:  по-прежнему равно 10,  ; 󰇛  󰇜 󰇛  󰇜 . Значит, для уменьшения Q нужно продвигаться в сторону уменьшения; 
   󰇛  󰇜 󰇛  󰇜, что меньше предыдущего значения .
Продолжаем и дальше уменьшать Уменьшение:  по-прежнему равно 10,  ;
17
󰇛  󰇜 󰇛  󰇜 Следовательно, мы «проскочили» точку локального минимума по Возвращаемся в точку и начинаем менять аналогично тому, как мы изменяли в процессе поиска
.
Увеличение: ;    󰇛  󰇜 󰇛  󰇜 Уменьшение: ;    󰇛  󰇜 󰇛  󰇜, успешное продвижение по
.
Дальнейшее уменьшение: ;     󰇛  󰇜 󰇛  󰇜 . Продолжаем уменьшать: ;    󰇛  󰇜 󰇛  󰇜 . Следовательно, точка локального
минимума по равна 0, также, как и для Следующий цикл вычислений
.
из точки локального
минимума . Уменьшаем шаг поиска с 0,5 до 0,1. При этом    . Уменьшаем
  ; 󰇛  󰇜 󰇛  󰇜 . Значение при уменьшении
привело увеличению предыдущего значения. Увеличение:   ; 
󰇛  󰇜 󰇛  󰇜 . Успех!
Продолжаем увеличивать:   ; 
󰇛  󰇜 󰇛  󰇜  неуспех. Оставляем как и на предыдущем шаге,  и начинаем менять
в сторону
увеличения.
;  󰇛  󰇜 󰇛  󰇜, что меньше предыдущего «хорошего»
значения. Увеличиваем: ;   
󰇛  󰇜 󰇛  󰇜 . Найдено оптимальное решение: , при 

.
Теперь рассмотрим поиск минимума функции   
󰇛 󰇜

с применением
метода наискорейшего спуска. Вычисляем составляющие градиента󰇛󰇜:

 


    






    
  .
Для поиска󰇛󰇜 двигаемся по лучу антиградиента. Начальные значения   󰇛
В начальной точке составляющие градиента
󰇜

󰇛󰇜
    ;
18
󰇛󰇜
    . Приращение по
переменных определяется по формуле
в пространстве независимых
󰇛󰇜

󰇛󰇜
 
󰇛󰇜󰇛󰇜
 . Как и
ранее. Допустим:
󰇛󰇜
 , т.е. шаг поиска
󰇛󰇜
 При этом
󰇛󰇜
 
    ,
󰇛󰇜
получаем минимальное значение
    . При этом󰇛  󰇜 󰇛  󰇜, т.е. сразу
󰇛󰇜
󰇛󰇜 при
󰇛󰇜

󰇛󰇜
. При этом
составляющие градиента:

      


     , что соответствует точке экстремума󰇛󰇜.

В следующем варианте расчета возьмем   равным 0.25, т.е. уменьшим шаг поиска󰇛
󰇜
вдвое.
При этом
󰇛󰇜
 
󰇡 󰇡
    
󰇛󰇜
    
󰇛󰇜
󰇛󰇜
󰇛󰇜
 
󰇛  󰇜 󰇛  󰇜
󰇢
󰇛󰇜
󰇛  󰇜 󰇛  󰇜, что меньше первоначального
󰇢
значения. Продолжаем движение в сторону уменьшения
, с теми же составляющими
градиента. При этом:
󰇛󰇜
󰇛󰇜
󰇡

 
󰇛󰇜
󰇛󰇜
      
󰇛󰇜
      
󰇛󰇜

󰇛  󰇜 󰇛  󰇜, т.е. мы достигли󰇛
󰇢

󰇜
 и
19
4.1. РЕЗУЛЬТАТЫ ОПТИМИЗАЦИИ ТЕСТОВОЙ ФУНКЦИИ № 5
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
x5
x6
x7
x8
x9
x
10
0 89385
100
100
100
100
100
100
100
100
100
100
50
470,0068
8,022
8,924
8,924
-1,89
-0,764
-0,764
0,138
15,062
1,546
1,546
100
14,66273
2,169
0,803
2,072
4,962
3,503
7,225
5,858
9,209
7,843
8,507
150
0,60763
0,807
2,205
3,245
4,246
4,749
6,208
7,198
8,314
9,31
10,26
200
0,01676
0,968
2,034
2,96
4,04
4,958
5,967
7,033
7,947
9,052
9,958
250
0,00038
1,006
2,005
3,007
3,993
5,007
5,994
7,006
7,994
9,005
9,993
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
x5
x6
x7
x8
x9
x
10
0 89385
100
100
100
100
100
100
100
100
100
100
50
1532,635
9,639
11,424
13,209
14,995
16,78
18,565
20,351
22,136
23,921
25,707
100
238,8793
4,411
5,721
7,031
8,341
9,651
10,961
12,271
13,581
14,891
16,201
150
37,23217
2,346
3,469
4,591
5,714
6,836
7,958
9,081
10,203
11,326
12,448
200
5,80308
1,532
2,58
3,628
4,677
5,725
6,773
7,822
8,87
9,918
10,966
250
0,90448
1,21
2,229
3,248
4,267
5,286
6,305
7,324
8,343
9,362
10,382
300
0,14097
1,083
2,09
3,098
4,105
5,113
6,121
7,128
8,136
9,143
10,151
350
0,02197
1,033
2,036
3,039
4,042
5,045
6,048
7,051
8,054
9,056
10,059
400
0,00342
1,013
2,014
3,015
4,016
5,018
6,019
7,02
8,021
9,022
10,023
Результаты оптимизации тестовой функции № 5 [25] (квадратичная функция 10 переменных) с помощью разработанного пакета программ представлены в таблицах 5.1 – 5.6. Для каждого метода были взяты
одинаковые параметры: начальный шаг поиска, диапазон изменения
независимых переменных [-10;100], адаптация шага в сторону увеличения не применялась.
Таблица 4.1. Результаты оптимизации методом Гаусса-Зейделя
Таблица 4.2. Результаты оптимизации градиентным методом
20
Таблица 4.3. Результаты оптимизации методом наискорейшего спуска
Число
шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
x5
x6
x7
x8
x9
x
10
0 89385
100
100
100
100
100
100
100
100
100
100
10
2485
-10
-10
-10
-10
-10
-10
-10
-10
-10
-10
20
2485
-10
-10
-10
-10
-10
-10
-10
-10
-10
-10
30
851,2058
7,438
9,023
10,608
12,194
13,779
15,364
16,95
18,535
20,12
21,705
40
86,11261
-1,048
-0,234
0,58
1,394
2,208
3,022
3,835
4,649
5,463
6,277
50
0,65439
1,179
2,195
3,211
4,227
5,243
6,26
7,276
8,292
9,308
10,325
60
0,0048
1,015
2,017
3,018
4,019
5,021
6,022
7,024
8,025
9,026
10,028
70
0,00004
0,999
1,999
2,998
3,998
4,998
5,998
6,998
7,998
8,998
9,998
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
x5
x6
x7
x8
x9
x
10
0 89385
100
100
100
100
100
100
100
100
100
100
100
478,2578
-10
9,88
16,953
0,05
0,722
2,708
9,934
4,948
6,127
4,563
200
6,41301
0,449
2,433
1,562
3,888
3,867
4,685
6,253
8,316
8,969
10,413
300
0,26155
1,047
1,835
2,902
4,197
4,702
5,738
7,132
7,962
8,96
10,074
400
0,00635
1,022
2,035
2,967
3,982
5,015
5,989
7,027
8,006
9,043
10,017
450
0,00091
1,005
1,999
2,994
3,995
5,002
6,001
7,025
7,998
9,012
10,003
Число
шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
x5
x6
x7
x8
x9
x
10
0 89385
100
100
100
100
100
100
100
100
100
100
100
22,65479
0,938
1,221
5,029
1,777
6,343
3,549
5,331
7,657
10,473
9,685
200
2,98626
1,112
1,597
3,866
3,525
5,716
5,09
6,838
7,807
9,645
10,113
300
0,23929
0,954
1,9
3,263
3,918
5,072
5,825
6,968
7,931
9,331
10,001
400
0,00638
0,977
1,984
3,033
3,989
5,016
5,971
6,996
7,983
9,053
9,993
500
0,00054
0,991
1,992
3,009 4
5,002
5,992
6,999
7,995
9,013
9,993
Таблица 4.4. Результаты оптимизации методом случайного поиска с возвратом
Таблица 4.5. Результаты оптимизации методом случайного поиска с пересчётом
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]