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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
21
Таблица 4.6. Результаты оптимизации методом случайного поиска со смешанной
Число шагов
Оптими-
зируемая
функция
Независимые переменные
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
115,736
0,87
7,25
2,876
5,375
6,031
5,754
9,871
13,167
9,374
17,074
100
2,84818
0,719
1,564
3,869
3,858
5,821
5,981
7,186
8,924
9,337
9,643
150
0,29196
1,06
2,002
3,286
4,165
4,843
5,775
7,29
8,138
8,976
9,995
200
0,0864
0,893
2,147
3,024
4,06
5,082
6,016
7,15
8,055
8,962
10,123
250
0,02019
1,043
2,026
3,045 4
4,957
6,016
6,994
8,035
8,92
10,076
300
0,01092
1,042
2,002
2,978
4,014
5,011
5,99
6,961
8,072
8,995
9,961
350
0,00186
1,009
2,003
3,01
4,018
4,999
5,981
6,973
8,015 9
10,007
тактикой (граница смены тактики)
Для проверки используем программную среду Mathcad. Результат расчёта приведён на рисунке 5.1.
Рисунок 4.1. Нахождение минимума тестовой функции № 5 в среде Mathcad
Вывод. При оптимизации тестовой функции № 5 все методы привели к одному результату, совпавшему с расчётом в Mathcad. Это связано с тем, что данная функция обладает одним минимумом. При прочих равных условиях наилучший результат по скорости показал метод наискорейшего спуска.
4.2 . РЕЗУЛЬТАТЫ ОПТИМИЗАЦИИ ТЕСТОВОЙ ФУНКЦИИ № 4
Результаты оптимизации тестовой функции № 4 (функция Пауэлла) с
22
помощью разработанного пакета программ представлены в таблицах 5.7 –
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
0 335 3 1 0 1
50
0,00029
0,004 0
0,058
0,059
100
0,00014
0,007
-0,001
0,05
0,05
150
0,0001
0,011
-0,001
0,047
0,047
200
0,00008
0,013
-0,001
0,046
0,046
250
0,00007
0,014
-0,001
0,044
0,045
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
0 335 3 1 0 1
100
8,6089
-0,435
0,058
0,638
0,453
200
1,24422
-0,224
0,04
0,436
0,27
300
0,49131
-0,16
0,024
0,342
0,23
400
0,25364
-0,125
0,017
0,287
0,211
500
0,15132
-0,101
0,013
0,251
0,198
600
0,09926
-0,083
0,011
0,226
0,188
700
0,06971
-0,069
0,009
0,207
0,18
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4 0
335 3 1 0 1
100
6,05125
0,324
0,126
-0,43
-0,389
200
1,19655
0,224
-0,056
-0,383
-0,308
300
0,79336
0,196
-0,028
-0,364
-0,28
400
0,5947
0,174
-0,026
-0,345
-0,262
500
0,46763
0,157
-0,023
-0,328
-0,248
600
0,37899
0,144
-0,021
-0,313
-0,239
700
0,31384
0,132
-0,019
-0,3
-0,231
5.12. Для каждого метода были взяты одинаковые параметры: начальный шаг
поиска , диапазон изменения независимых переменных [-5;5],
адаптация шага в сторону увеличения не применялась.
Таблица 4.7. Результаты оптимизации методом Гаусса-Зейделя
Таблица 4.8. Результаты оптимизации градиентным методом
Таблица 4.9. Результаты оптимизации методом наискорейшего спуска
23
Таблица 4.10. Результаты оптимизации методом случайного поиска с возвратом
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4
0 335 3 1 0 1
50
8,71949
1,704
-0,265
0,313
1,511
100
0,36182
0,36
-0,026
-0,091
0,169
150
0,13425
0,375
-0,048
-0,014
0,1
200
0,01356
0,258
-0,021
0,073
0,08
250
0,00928
0,259
-0,026
0,087
0,093
300
0,00616
0,238
-0,025
0,089
0,097
350
0,0048
0,227
-0,022
0,092
0,099
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4 0
335 3 1 0 1
50
1,67693
1,104
-0,102
0,168
0,68
100
0,8986
0,984
-0,094
0,299
0,594
150
0,74716
0,927
-0,086
0,308
0,562
200
0,65927
0,888
-0,084
0,3
0,544
250
0,60743
0,863
-0,083
0,298
0,532
300
0,56023
0,84
-0,08
0,292
0,519
350
0,51879
0,821
-0,075
0,286
0,504
Число шагов
Оптими-
зируемая
функция
Независимые переменные
n Q(x)
x1
x2
x3
x4 0
335 3 1 0 1
50
1,51162
1,085
-0,134
0,218
0,682
100
0,79556
0,949
-0,089
0,295
0,551
150
0,60097
0,846
-0,066
0,318
0,53
200
0,36316
0,727
-0,078
0,277
0,44
250
0,30556
0,686
-0,07
0,29
0,391
300
0,2311
0,642
-0,058
0,25
0,378
350
0,20803
0,624
-0,059
0,252
0,359
Таблица 4.11. Результаты оптимизации методом случайного поиска с пересчётом
Таблица 4.12. Результаты оптимизации методом случайного поиска со смешанной
тактикой (граница смены тактики )
Результат расчёта в среде Mathcad приведён на рисунке 4.2.
24
Рисунок 4.2. Нахождение минимума тестовой функции № 4 в среде Mathcad
Вывод. При оптимизации тестовой функции № 4 все методы привели к разным решениям. Наилучший результат по скорости и по абсолютному значению минимума показал метод покоординатного спуска. Результат расчёта в среде Mathcad наиболее близок к результату, достигнутым методом случайного поиска с возвратом.
Такой разброс результатов связан с тем, что, с одной стороны, функция имеет несколько экстремумов в рассматриваемой окрестности нуля, а с другой стороны, в той же окрестности возрастание и убывание функции не является ярко выраженным. Для уменьшения разброса требуется удачный подбор параметров поисковых алгоритмов (начальное значение шага и границы поиска).
5. ЗАДАНИЕ НА ЛАБОРАТОРНЫЕ РАБОТЫ
В рамках курса «Методы оптимизации» обучающимся необходимо, используя собственный пакет программ, выполнить 4 лабораторные работы:
1. Исследование метода покоординатного спуска (Гаусса-Зейделя);
2. Исследование методов случайного поиска;
3. Исследование градиентных методов поиска.
4. Исследование других методов оптимизации.
Каждая из работ заключается в решении рассмотренными методами задачи оптимизации для всех тестовых функций из раздела 3 с фиксацией конечного числа итераций (100, 200 и т.д.) и достижением точности оптимального решения – 1%. Результаты необходимо оформить в виде таблиц (см. раздел 4) с указанием начальной точки, решений через фиксированное количество шагов (10, 100 или др.) и значений независимых переменных в точке оптимума.
Выполнение каждой работы подкрепляется отчётом, который должен содержать следующее:
1) Теоретические сведения о рассматриваемых методах;
2) Блок-схемы алгоритмов;
3) Листинги программы;
4) Результаты в табличной форме;
25
5) Выводы.
В качестве иллюстрации рассмотрим применение для решения часто
встречающихся оптимизационных задач программы оптимизации ППП
MATHCAD.
Изучение реализации методов оптимизации в пакете MATHCAD [24].
Цель работы: Научиться средствами пакета Mathcad находить экстремумы
функций одной и нескольких переменных, а также решать оптимизационные задачи с различными видами линейных и нелинейных ограничений.
Теоретическая часть: В этом разделе рассматриваются задачи поиска экстремума функций. Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов.
Рисунок 5.1. К пояснению задач поиска локального и глобального экстремума
Общая проблема поиска экстремума функции включает в себя задачи нахождения локального и глобального минимума. Последние называют еще задачами оптимизации, и решить их, как правило, намного труднее, поскольку они подразумевают локализацию всех минимумов f (x) и выбор из них наименьшего. (На рис. 5.1. показаны два локальных минимума функции, из которых левый является глобальным). Ограничения значений аргументов, задающих область определения f (x), как и прочие дополнительные условия, могут быть определены в виде системы неравенств и (или) уравнений. В таком случае говорят о задаче. На условный экстремум.
26
Решение задач минимизации в Mathcad реализовано при помощи численных алгоритмов. Для численного решения задач поиска локального максимума и минимума в Mathcad имеются встроенные функции Minerr, Minimize и Maximize. Принцип их действия очень близок к принципу расчетов, заложенных во встроенной функции Find, предназначенной для решения алгебраических уравнений. В частности, все встроенные функции минимизации используют те же градиентные численные методы, что и функция Find, поэтому допускается «вручную» выбирать численный алгоритм минимизации из уже рассмотренных нами численных методов. Кроме того, как и в случае решения уравнений, применение градиентного алгоритма, во-первых, требует задания некоторого начального приближения к точке минимума и, во-вторых, позволяет отыскать лишь один (т.е. локальный) из минимумов. Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах
вычислительного блока, так и автономно:󰇛 
󰇜
значения
аргументов, при которых функция f достигает минимума;
󰇛 
󰇜
значение аргументов, при которых функция f
достигает максимума;
󰇛 
󰇜
функция;
 аргументы, по которым производится минимизация
(максимизация). В качестве примера рассмотрим задачу численного поиска экстремумов полинома четвертой степени f(x), график которого был приведен на рис. 5.1. Парабола четвертой степени имеет три точки экстремума, и все они видны на рис.
5.1.
Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примеры вычисления локальных экстремумов функции одной переменной показаны в листингах 5.1 –
5.2. Поскольку никаких дополнительных условий в них не вводится, поиск
экстремумов выполняется для любых значений x от до .
27
Листинг 5.1. Поиск минимума функции одной переменной
(для трех значений x)
Листинг 5.2. Поиск максимума функции одной переменной
Как видно из листингов, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы. Очень полезно сопоставить результаты минимизации (листинг 5.1) с графиком функции f(x) (см. рис. 5.1). Как видно, функция Minimize очень уверенно находит глубокий минимум x = -0.175. А вот на второй (плохо выраженный) минимум можно набрести лишь случайно, выбирая определенные начальные значения x. В последнем из трех примеров демонстрируется, что если взять начальное приближение x даже в непосредственной близости от этого локального минимума, численный метод все равно «сваливается» в первый, более глубокий минимум f(x). Попробуйте повторить расчеты, выбирая различные начальные значения, чтобы в этом убедиться.
28
В листинге 5.2 показаны аналогичные свойства функции Minimize. Если начальное приближение выбрать удачно, то интеграционный процесс алгоритма сойдется к максимуму функции, а вот если выбрать его вдали от него, на участке
f(x), где неограниченно возрастает (при x ), численный метод вообще не
справится с задачей, выдавая сообщение об ошибке. Это происходит, поскольку начальное приближение x= -10 выбрано далеко от области локального максимума,
и поиск решения уходит в ту сторону увеличения f(x), т.е. расходится при x .
Замечание. В среде Mathcad предусмотрена возможность выбора численного алгоритма минимизации вручную. Для этого надо вызвать контекстное меню (рис. 5.2), нажатием правой кнопки мышки при наведении курсора на функцию, реализующую оптимизацию.
Рисунок 5.2. Выбор численного метода оптимизации
В задачах на условный экстремум встроенные функции минимизации и максимизации должны быть включены в вычислительный блок, т.е. им должно предшествовать ключевое слово Given. В промежутке между Given и функцией поиска экстремума с помощью, булевых операторов записываются логические выражения (неравенства, уравнения), задающие ограничения на значения аргументов минимизируемой функции. Листинги 5.3 и 5.4 содержат примеры поиски условного экстремума на различных интервалах, определенными неравенствами.
29
Листинг 5.3 Поиск условного минимума
Листинг 5.4. Поиск условного максимума
Как видно из листинга 5.3, если ограничить значения x интервалом, расположенными в окрестности правого локального минимума, с поиском которого мы встретили большие сложности при решении задачи на безусловный экстремум, то этот максимум будет без труда найден численным методом. Следует помнить также об этой особенности, иллюстрируемой листингом 5.4. А именно (в случае максимизации), если на границе интервала f(x) достигает большего значения, нежели на локальном максимуме внутри интервала, то в качестве решения, скорее всего, будет выдано наибольшее значения (т.е. граница интервала). Конечно, если на рассмотренном интервале x расположено несколько локальных максимумов, ответ станет еще менее предсказуемым, поскольку будет напрямую зависеть от выбранного начального приближения. Листинги 5.5 и 5.6 иллюстрируют нахождение минимума функции нескольких переменных как без ограничений, так и в случае их наличия.
30
Листинг 5.5. Экстремум функции десяти переменных
Листинг 5.6. Экстремум функции десяти переменных с ограничениями
Видно, что из-за наличия ограничений для переменных
минимальное

значение функции достигает на границах областей их изменения. Для функции «овражного» типа, то есть когда анализируемая функция в одном направлении изменяется круто, а в перпендикулярном – слабо, поиск минимума как
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]