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

книги / Начала инженерного творчества

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
1.44 Mб
Скачать

Вмногомерной градиентной оптимизации строится улучшающая последовательность в зависимости от градиента изменения оптимизируемого параметра по различным направлениям. При этом под улучшающей последовательностью по-

нимается такая последовательность изменения аргумента хо, хl,

..., хi, ..., в каждой точке которой значение оптимизируемого параметра лучше, чем в предыдущей.

Вбезградиентных методах величина и направление шага

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

Случайные методы используются в задачах высокой размерности.

Многомерная условная оптимизация учитывает активные ограничения, выраженные в виде равенств и неравенств. В каждом из рассмотренных направлений имеется большое число методов, обладающих своими достоинствами и недостатками, которые зависят прежде всего от свойств тех функций, экстремум которых ищется. Одним из сравнительных показателей качества метода является количество значений функции, которое нужно вычислить для решения задачи с заданной погрешностью. Чем это число меньше, тем при прочих равных условиях эффективнее метод.

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

Вматематических задачах принято рассматривать задачи оптимизации как задачи поиска минимума функции. Поэтому методы имеют общее название – методы спуска. Однако при решении реальных практических задач очень часто встречают-

41

ся задачи и на максимум (например, максимизация дохода, объема выпуска продукции и т.д.). Переход от одного вида экстремума к другому производится путем смены знака у оптимизируемого параметра. Ниже не делается упор на поиск именно минимума, тем более что практически все методы могут искать и минимум, и максимум при незначительных изменениях в алгоритмах.

2.1.Одномерная оптимизация

Вданном подразделе рассматриваются методы решения одномерных задач оптимизации

R(x)max / а х b,

(2.1)

где R(x) – оптимизируемый параметр; х – независимая переменная; а и b – соответственно минимальное и максимальное возможные значения переменной х.

Решением задачи называется значение аргумента х*, при котором R(х*) ≥ R(x) для любого значения а х b. Уменьшение шага между соседними двумя значениями хi и хi+1 производится до выполнения неравенства

хi хi+1 ≤ ε,

(2.2)

где ε – задаваемая погрешность решения.

2.1.1. Метод сканирования

Метод заключается в последовательном переборе всех значений переменной в заданном интервале а х b с шагом ε (погрешность решения) и вычислением оптимизируемого параметра R в каждой точке. Путем выбора наибольшего из всех вычисленных значений R находится решение задачи х*.

Достоинство метода в том, что можно найти глобальный максимум параметра, если R(x) – многоэкстремальная функция. К недостаткам данного метода относится значительное число

42

повторных вычислений R(x), что в случае сложной функции R(x) требует больших затрат времени.

Одна из основных модификаций метода – последователь-

ное уточнение решения, или сканирование с переменным ша-

гом (рис. 2).

На первом этапе сканирование осуществляют с крупным шагом, затем отрезок, внутри которого получено наибольшее значение R(x), разбивается на более мелкие отрезки, ищется новый отрезок, внутри которого находится уточненное значение максимума. Он (новый отрезок) опять делится на более мелкие и т.д., до тех пор, пока величина отрезка, содержащего максимальное значение R(x), не будет меньше заданной погрешности. Главный недостаток этого варианта метода – возможность пропуска «острого» глобального максимума R(x).

Рис. 2. Иллюстрация модифицированного метода сканирования: 1 – интервал, включающий в себя искомый максимум параметра после первого этапа сканирования (исходный отрезок разбит на 5 отрезков); 2 – то же после второго этапа

Пример 1 [9]. Дана функция R(x)= sin(x +1). Найти мак-

симум на интервале [–1…2]. Ошибка задается по аргументу х: ε = 0,05, что составляет 1,67 % от длины интервала.

Результаты расчетов. Разобьем весь интервал на четыре отрезка (крупный шаг), координаты х будут следующими:

х1 = –0,25, х2 = 0,5, х3 = 1,25.

43

Соответственно вычисленные значения критерия следую-

щие: R1 = 0,681, R2 = 0,997, R3 = 0,779. Следовательно, в каче-

стве нового отрезка выбираем отрезок [–0,25…1,25], так как внутри него находится максимальное значение R0 = 0,995 при х0 = 0,5, 0 – номер итерации (после первого этапа). Разбиваем его снова на четыре части, и так далее.

В табл. 2 приводятся только координаты середин отрезков, при которых критерий имеет наибольшее значение, номер итерации и значение критерия.

 

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

 

 

 

 

 

 

 

x

R

 

x

 

R

 

 

п/п

 

п/п

 

 

 

 

 

 

 

 

 

 

 

1

 

0,500

0,9975

 

4

0,570

 

1,0000

 

 

2

 

0,500

0,9975

 

5

0,594

 

0,9997

 

 

3

 

0,594

0,9997

 

 

 

 

 

 

 

 

 

 

 

 

 

Всего проведено 6 · 3 = 18

вычислений

критерия опти-

мальности.

 

 

 

 

 

 

 

2.1.2. Метод деления отрезка пополам

Метод основан на делении текущего отрезка [а, b], где содержится искомый экстремум, на две равные части с последующим выбором одной из половин, в которой находится максимум в качестве следующего текущего отрезка. Экстремум определяется путем сравнения двух значений критерия оптимальности в точках, отстоящих от середины отрезка на ε/2, где ε – погрешность решения задачи.

 

ε

 

ε

 

Если R x +

 

 

> R x

 

 

, то максимум располагается на

2

2

 

 

 

 

 

правой половине текущего отрезка [а, b], в противном случае – на левой.

44

Процесс поиска завершается при достижении отрезком [а, b] величины, равной или меньшей заданной погрешности ε.

К недостаткам метода относится его работоспособность только для одноэкстремальных функций R(x) (т.е. таких, которые содержат один экстремум того типа, который мы ищем в задаче), так как в других случаях при сравнении двух критериев в соседних точках невозможно правильно выбрать следующий интервал, где находится максимум.

На рис. 3 приведены три этапа метода половинного деления. Сплошными вертикальными линиями отмечены середины отрезков, а пунктирными – вычисляемые значения критерия оптимальности слева и справа на расстояние ε/2 от середин.

Рис. 3. Иллюстрация метода половинного деления: 1 – интервал, включающий в себя искомый максимум функции после первого этапа (первого деления пополам); 2, 3 – то же соответственно после второго и третьего этапов

Существует и другой вариант алгоритма, заключающийся в следующем. После нахождения середины отрезка (например, точка с1) в одной из половинок (допустим, в левой) находят среднюю точку (точка с2) и, сравнивая значения функции в этих точках, определяют, в какой из половинок находится экстремум. Если R(с1) < R(с2), то в качестве следующего отрезка выбираем отрезок [а, с1], если же R(с1) > R(с2), то берут новую точку в середине правой половины (точка с3) и в ней вы-

45

числяют функцию. В зависимости от сравнения значений функции в точках с3 и с1 выбирают новый отрезок [с1, b] или

[с2, с3] и т.д.

Второй вариант метода не имеет с точки зрения эффективности принципиального отличия от первого, так как эффективность принято оценивать по наихудшему варианту (т.е. по двум вычислениям f(x) на каждом шаге). В первом варианте метода есть одна особенность, которая делает его очень эффективным при экспериментальном отыскании экстремума (например, при автоматической настройке технических систем или при практическом поиске наилучших условий деятельности экономического объекта). Малые отклонения от текущей точки обеспечивают в процессе поиска отсутствие «шараханий», сопровождающихся резкими отклонениями состояния системы.

Пример 2. Дана та же функция R(x) = sin (x +1). Найти

максимум на интервале [–1, 2]. Ошибка задается по х: ε = 0,05. Результаты расчетов. Середина отрезка x0 = 0,5000, значе-

ние критерия R0 = 0,9975, значение R (0,5 – ε/2) = R (0,475) = = 0,9792, значение R (0,5 + ε/2) = R (0,525) = 0,9990. Следова-

тельно, искомый максимум лежит в правой половине отрезка, т.е. теперь отрезком является [0, 5, 2].

Втабл. 3 приводятся только координаты середин отрезков

сномером итерации, значения критерия в них и указывается новый отрезок (правый или левый).

 

 

 

 

Таблица 3

 

 

 

x1 = 1,250

R1 = 0,778

левый

x2

= 0,875

R2

= 0,954

левый

x3

= 0,688

R3

= 0,993

левый

x4

= 0,594

R4

= 0,9997

левый

x5

= 0,547

R5

= 0,9997

 

46

|x4 x5| < ε, поэтому в качестве решения можно принять любое из этих значений или середину между ними.

Всего восемь раз (4 · 2 = 8) вычислялся критерий оптимальности (не считая вычислений непосредственно в середине отрезка, которые не используются в алгоритме метода).

2.1.3. Метод золотого сечения

Метод основан на делении текущего отрезка [а, b], где содержится искомый экстремум, на две неравные части, подчиняющиеся правилу золотого сечения для определения следующего отрезка, содержащего максимум.

Золотое сечение определяется следующим образом: отношение отрезка к большей его части равно отношению большей части отрезка к меньшей. Ему удовлетворяют две точки с и d, расположенные симметрично относительно середины отрезка.

ab

= cb

;

ab

= ad .

(2.3)

cb

ac

 

ad

db

 

Путем сравнения R(с) и R(d) определяют следующий отрезок, где содержится максимум. Если R(d) > R(с), то в качестве следующего отрезка выбирается отрезок [с, b], в противном случае – отрезок [a, d].

Новый отрезок снова делится на неравные части по правилу золотого сечения. Следует отметить, что точка d является и точкой золотого сечения отрезка [с, b], т.е.

db

= cd .

 

cd

cb

(2.4)

Поэтому на каждой следующей итерации (кроме «запуска» метода на исходном отрезке) нужно вычислять только одно значение критерия оптимальности.

47

Существуют аналитические формулы для расчета новой точки на отрезке, где находится максимальное значение R(x), которые получены решением квадратного уравнения

c = a +(b a)

5 1

;

d =b (b a)

5 1

.

(2.5)

2

2

 

 

 

 

 

Условие окончания поиска величина отрезка, содержащего максимум, меньше заданной погрешности.

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

Рис. 4. Иллюстрация метода золотого сечения: 1 – интервал, включающий в себя искомый максимум функции после первого этапа (первого золотого сечения в точках c и d); 2 – то же после второго этапа (новая точка е и старая точка d)

Пример 3 (используем задачу из примеров 1 и 2).

Результаты расчетов. Для «запуска» метода найдем две симметричные точки золотого сечения для отрезка по аргумен-

ту x [–1… 2]: х1 = 0,1459, х2 = 0,85410.

Значения параметра оптимизации этих точках соответственно R(x1) = 0,9111, R(x2) = 0,9601. Следовательно, новым отрезком является [0,1459…2], внутри которого находится максимальное из найденных значений параметра R. Искомое зна-

48

чение аргумента для нового отрезка будет х3 = 0,58359, a вычисленное значение параметра оптимизации R(x3) = 0,9999.

Искомый результат достигается проведением 10 вычислений параметра оптимизации.

2.2.Многомерная оптимизация

2.2.1.Многомерная безусловная градиентная оптимизация

Вданном подразделе рассматриваются алгоритмы оптимизации при отыскании экстремума функции R(x) без активных ограничений. Активными называются такие ограничения, на границе которых находится решение. Если известно, что решение лежит внутри допустимой области, например, в случае ограничений типа неравенств, то такие ограничения выводятся из задачи на этапе ее постановки. Ограничения типа равенств всегда активные.

Поиск экстремального значения функции многих аргументов производится с использованием шага по каждому на-

правлению. Величина шага ∆xi в рекуррентном соотношении

xi+1 = xi + ∆xi

(2.6)

вычисляется с использованием градиента целевой функции

R(x), т.е.

xi = f (grad R(xi )).

(2.7)

При этом шаг может определяться с использованием градиента в одной (текущей) или в двух (текущей и предыдущей) точках. Направление градиента, как известно, показывает направления наискорейшего возрастания функции, а его модуль – скорость этого возрастания.

Вычисление градиента предполагает непрерывность функции многих переменных.

49

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

Поисковые методы оптимизации содержат субъективно задаваемые параметры, которые существенно влияют на эффективность поиска, вследствие чего один и тот же метод может дать различные траектории поиска. Поэтому для всех методов, рассматриваемых далее, приводится лишь одна из возможных траекторий (рис. 5).

Рис. 5. Иллюстрация траекторий поиска минимума функции градиентными методами: 1 – оптимум; 2 – траектория метода градиента; 3 – траектория метода тяжелого шарика; 4 – траектория метода наискорейшего спуска; 5 – траектория метода сопряженных градиентов

Для всех приведенных траекторий поиска выбраны различные начальные точки, с тем чтобы не загромождать построения. На этом и последующих рисунках зависимость R(x1, x2) приведена в виде линий уровня на плоскости в координатах x1 x2.

50

Соседние файлы в папке книги