Описание блок-схемы алгоритма




Лабораторная работа №4

Исследование метода релаксации

Описание метода

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

Осевому направлению с наибыстрейшим убыванием целевой функ­ции, очевидно, соответствует наибольшая по модулю производная. Если знак производной отрицательный, целевая функция убывает в направлении оси, если—положительный, в обратном направле­нии. По направлению убывания целевой функции производятся шаги до тех пор, пока не будет получено минимальное значение по выбранному осевому направлению. Тогда вновь определяются про­изводные по всем переменным, за исключением той, по которой осуществлялся спуск, и снова находится осевое направление наи­быстрейшего убывания функции цели, по которому производятся дальнейшие шаги, и т. д.

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

 

, (4,1)

которое при σ—> 0 превращается в точное условие равенства нулю производных в точке оптимума. Разумеется, что условие (4,1) может быть использовано только в том случае, если оптимум ле­жит внутри допустимой области изменения независимых перемен­ных X. Если же оптимум попадает на границу области X, критерий типа (4,1) непригоден и вместо него следует применять условие положительности всех производных по допустимым осевым на­правлениям. При этом допустимым осевым будет только направле­ние внутрь области X. Обратное направление по той же оси ведет за Пределы области X, если, конечно, рассматриваемая ось не яв­ляется в данной точке касательной к границе области X.

Алгоритм спуска для выбранного осевого направления может быть записан в виде следующей формулы:

 

, (4,2)

 

причем хj(k) — значение изменяемой переменной на k-ом шаге спус­ка; h(k) — величина k-ro шага^ которая может изменять свое значе­ние в зависимости от номера шага; sgn z — функция знака; х(p) — вектор точки, в которой последний раз производилось вычисление производных целевой функции. Графическое изображение движения от исходного состояния к оптимуму показано на рисунке 3.

Очевидно, что скорость движения к минимуму зависит от того, насколько удачно выбран шаг h(k) изменения независимых пере­менных. При слишком малой величине шага число шагов, которое необходимо сделать, чтобы достичь оптимума, будет большим и, следовательно, потребуется много раз вычислять значения целевой функции на пути движения к оптимуму.

Если, напротив, величина шага с самого начала спуска выбра­на слишком большой, вблизи оптимума может возникнуть «рыскание», так как при большой величине шага мала вероятность попадания в окрестность оптимума, в которой выполняется усло­вие окончания поиска (4,1). Поэтому представляют интерес специальные приемы изменения величины шага в процессе поиска.

Простейший алгоритм изменения шага состоит в следующем. В начале спуска по одному из осевых направлении задается не­который шаг h(0), равный, например, 0,1, что со­ответствует изменению значения физической переменной уj на 10% от принятого диапазона dj. С этим шагом производится спуск по выбранному осевому направлению до тех пор, пока для двух последующих вычисле­ний значений целевой функции выполняется условие:

 

.

При нарушении условия на каком-либо j шаге направление спуска на оси изменяется на обратное и спуск продолжается из последней рассчитанной точки с уменьшенной вдвое величиной шага.

Формульная запись этого алгоритма имеет вид:

.

 

В результате использования такой стратегии шаг спуска по осе­вому направлению будет уменьшаться в районе минимума целевой функции и по этому направлению и поиск минимума можно пре­кратить, когда величина шага h(k) станет меньше заданной точно­сти определения минимума ε в осевом направлении. Затем отыски­вается новое осевое направление, в котором функция изменяется наиболее сильно. Начальный шаг в новом направлении уже можно выбрать не как заданную долю диапазона изменения независимой переменной, а как заданную долю расстояния, пройденного вдоль предыдущего осевого направления. Это позволяет автоматически уменьшать начальный шаг по каждому следующему осевому на­правлению при приближении к оптимуму целевой функции, в райо­не которого спуск по каждой оси происходит на небольшое рас­стояние.

Можно применить и другие стратегии изменения шага в про­цессе поиска. Хорошие результаты, например, могут быть иногда получены с использованием алгоритма изменения шага, основан­ного на свойствах чисел Фибоначчи.

Рис. 6. Характер движения к оптимуму в методе релаксации

 

Существенной особенностью метода релаксации является зави­симость времени поиска от ориентации системы координат. На рисунке 7 показаны линии постоянного уровня одной и той же це­левой функции в системах координат, отличающихся между собой поворотом осей.

 

Рис. 7. Зависимость времени поиска оптимума методом релаксации от ориентации системы координат.

 

Если в случае, изображенном на рисунке 7-а, для достижения минимума целевой функции необходимо только два цикла движе­ния вдоль осевых направлений, то для случая, приведенного на рисунке 7-б, число таких циклов возрастает весьма существенно.

 

Рис. 8. Остановка поиска в ме­тоде релаксации на границе

 

Рис. 9. Остановка поиска в ме­тоде релаксации на „дне оврага".

 

Если на область изменения независимых переменных наложены ограничения типа неравенств, то при применении метода релакса­ции иногда могут возникать значительные трудности. В качестве примера можно привести случай, изображенный на рисунке 8, ко­гда поиск оптимума методом релаксации «застревает» в любой точке границы. Точно так же обстоит дело, если у целевой функ­ции имеются овраги, направление которых не совпадает с осе­выми. При этом поиск «застревает» в любой точке «дна» оврага (рисунок 9).

 

 

Описание блок-схемы алгоритма

В блок-схеме алгоритма (см. рисунок 10) поиска экстремума методом релаксации в качестве целевой функции в блок-схеме рассматривается пример формулы двухмерного эллипса.

В блоке 1 предусмотрен ввод исходных данных: параметров эллипса – a и b, координат начальной точки поиска - x(1) и x(2), величина шага - h, заданной точности поиска -ε, значения величины изменения аргумента при нахождения частных производных – dx. Счетчик шагов (количество расчетов целевой функции) в начальный момент должен быть равен единице (n=1), так как до начала итерационных процедур требуется один раз рассчитать функцию цели – F0, которая рассчитывается во втором блоке.

В блоках 3-8 производится расчет двух частных производных, для чего в блоке 3 осуществляется организация цикла попеременного расчета частных производных двухмерной функции (i=1,2). В блоке 4 производится поочередное изменение аргумента x(i) на величину dx. В блоке 5 производится расчет целевой функции при измененном аргументе - F1, а в блоке 6 счетчик – n увеличивает свое значение на единицу. Блок 7 предназначен для расчета и запоминания величины изменения функции – R(i), для соответствующей i-ой координаты, а в блоке 8 осуществляется возврат в исходную точку i-ой координаты: x(i) – dx. После завершения расчета частной производной по первой координате – х(1) блок цикла 3 производит аналогичные действия по второй координате - х(2).

В блоке 9 рассчитывается критерий окончания поиска – Е в соответствии с формулой (4,1), а в блоке 10 осуществляется его сравнение со значением заданной точности ε. Если критерий Е будет меньше заданной точности,

 


Да
Нет
5 F=x2(1)/a2+x2(2)/b2

 
 

 

 


14 x(2)=x(2)-h(R(2)/dx)

 

 
 

 

 


Рис. 10. Блок-схема алгоритма поиска экстремума методом релаксации

то в блоке 11 производится вывод результатов поиска: х(1), х(2), F, n. В противном случае управление передается на блоки 11-17 «движения» вдоль осевого направления с наибыстрейшим убыванием целевой функ­ции.

В блоке 12 осуществляется сравнение модулей частных производных двух координат, после выбора наибольшей по модулю частной производной производится изменения этой переменной в соответствии с формулой (2,2) в блоке 12 или 14. После расчета значения новой целевой функции – F в блоке 15 и увеличения счетчика n на единицу в блоке 16, в блоке 17 сравниваются новое - F и старое – F0 значения функции цели. Если шаг был удачным, то управление передается на блок 12 для повторения итерации «продвижения» вдоль выбранной оси. При этом в блоке 18 производится переприсвоение ячейке F0 нового значения целевой функции – F для организации очередной итерации движения вдоль выбранной оси. Если шаг был неудачным, то блок 17 передает управление на блок 3 и процедура выбора нового осевого направления движения повторяется (блоки 3-8) и т.д.

 

Задание

1. Возьмите у преподавателя исходные данные: а, в, ε, х(1) и х(2), а также свой вариант вида функции цели.

2. Составьте программу в среде Matlab, реализующую алгоритм метода градиента (см. рисунок 10).

3. Выберите начальные значения параметров метода: изменение аргумента – dx и величину шага поиска – h. Найдите с помощью программы минимальное значение функции – F, координаты соответствующей точки х(1), х(2) и скорость сходимости алгоритма– n.

4. Дополните программу, реализующую алгоритм рисунка 10, фрагментами, позволяющими вывести в графическом виде на экран монитора стратегию поиска – изменение координаты х(1) и х(2).

5. Измените начальные значения параметров метода dx и h, как в сторону их увеличения, так и в сторону уменьшения. Проанализируйте полученные при этом результаты поиска.

6. Попробуйте сместить координаты начальной точки х(1) и х(2) и повторите поиск экстремума, сравните результаты с результатами, полученными в п.п. 3 и 5.

7. Измените значение величины критерия окончания поиска – ε сначала в два раза больше, а затем в два раза меньше. Повторите расчеты и сравните полученные результаты с результатами пункта 3.

8. Подготовьте отчет с анализом полученных результатов.

 

Контрольные вопросы

1. В чем заключается основная идея метода релаксации?

2. Из каких двух этапов состоит процедура поиска экстремума методом релаксации?

3. Какие стратегии изменения шага спуска Вы знаете и в чем их преимущества и недостатки?

4. Почему скорость сходимости данного алгоритма существенно зависит от ориентации «оврагов»?

5. Почему поиск методом релаксации зависит от типа ограничений?

6. Объясните почему при приближении к экстремуму желательно уменьшать шаги?

7. В каких блоках осуществляется расчет частных производных?

8. В каких блоках осуществляется собственно стратегия алгоритма (4,2) и что при этом происходит с координатами исходной точки?

9. Зачем в блоке 17 производится переприсвоение значений целевой функции?

10. Почему в качестве критерия окончания поиска принята величина Е?

11. На сколько единиц увеличивается показания счетчика шагов – n в течение одной итерации?

12. В каком блоке алгоритма производится расчет значения новой функции цели?

 

 

Таблица 5

Диапазон изменения исходных данных для метода релаксации

 

a b dx x(1) x(5) ε
-10; +10 -10; +10 -10; +10 -10; +10 -10; +10 0,001;0,01

Примечание: Конкретные значения исходных данных каждому студенту дает преподаватель в пределах указанных диапазонов.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: