Исследование операций безусловная оптимизация. Курс лекций
.pdf
3) по значению градиента целевой функции, вычисленному на ка- ждой итерации:
f (x(k ) ) ≤ ε;
4) по числу итераций:
n≤ ε, где n – число итераций.
Вметодах нулевого порядка чаще всего применяют критерии окончания поиска по разности значений целевой функции и по раз- ности значений точек, так как в этих методах не вычисляется гради- ент целевой функции, а зачастую и целевая функция не дифференци- руема.
Вметодах первого и второго порядка целесообразно применять критерий окончания поиска по значению градиента целевой функ- ции, и тогда значение функции вычисляется только на последнем шаге, когда получено оптимальное решение.
Вданном курсе вы познакомитесь с методами решения оптимиза- ционных задач, которые целесообразно применять в каждом кон- кретном случае, изучите их достоинства и недостатки.
Далее будут рассмотрены проблемы, связанные с решением задач оптимизации, когда поиск оптимума производится без учета ограни- чений.
Контрольные вопросы
1.Что такое оптимизационная задача?
2.Как установить границы рассматриваемого с целью оптимиза- ции объекта?
3.Что такое система ограничений задачи?
4.Что такое искомая переменная?
5.Как называется критерий эффективности в оптимизационных задачах?
6.Что собой представляют параметры математической модели?
7.Задача. Химическому предприятию в целях развития необхо- димо провести трубопровод с наименьшими затратами. Известно, что затраты состоят из стоимости труб, монтажа труб и стоимости и установки насосного оборудования. Все перечисленные затраты за- висят от диаметра трубы. Диаметр может принимать значения в из- вестном диапазоне. Идентифицируйте для данной задачи следующие понятия:
11
–искомая переменная;
–целевая функция;
–параметры модели.
8.Что такое критерий окончания поиска?
9.В каких случаях можно завершать поиск оптимального реше- ния задачи по значению градиента целевой функции?
10.Что такое квадратичное программирование?
11.В чем преимущество задач выпуклого программирования?
12.Какие оптимизационные задачи называются задачами услов- ной оптимизации и почему?
13.Какие задачи можно отнести к задачам целочисленного про- граммирования?
12
1. МЕТОДЫ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ (ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ)
В данном разделе рассматриваются методы оптимизации функции одной переменной. Изучив этот материал, вы получите представле- ние об условиях применения одномерной оптимизации для реальных задач; сможете определить:
•для каких задач целесообразно применять методы прямого по- иска и в чем их преимущество;
•какие особенности присущи методам полиномиальной аппрок- симации, когда их следует применять;
•при каких условиях возможно исследование целевой функции методами с использованием производных.
Все методы одномерной оптимизации можно условно разбить на три класса, для каждого из которых характерен свой подход к поиску оптимума функции:
•методы исключения интервалов;
•методы полиномиальной аппроксимации;
•методы с использованием производных.
1.1.Методы прямого поиска (нулевого порядка)
1.1.1.Методы исключения интервалов
Кнаиболее простому типу оптимизационных задач относятся за- дачи, в которых критерий задан функцией одной переменной. Функ- ция f(x) представляет собой правило, которое позволяет каждому значению x ставить в соответствие единственное значение: y = f(x). В этом случае x носит название независимой переменной, а y – зависи- мой переменной.
Рассмотрим множество S R, где R – множество всех действи- тельных чисел. Можно определить соответствие, с помощью которо- го каждой точке x S ставится в соответствие единственное число- вое значение. Такое соответствие называется скалярной функцией f, определенной на множестве S.
Когда множество S = R, мы имеем дело со всюду определенной функцией одной переменной. Если S есть некоторое подмножество множества R, то функция f определена в ограниченной области. На- пример,
13
f (x) = x3 + 2x2 + 3, x R
есть всюду определенная функция, тогда как функция f (x) = x3 + 2x2 + 3 , x S = {x | −5 ≤ x ≤ + 5}
определена в ограниченной области. В теории оптимизации f называ- ется целевой функцией, а S – областью допустимых значений x.
С математической точки зрения максимизация целевой функции f(x) эквивалентна минимизации – f(x), поэтому ограничимся рассмотрением минимизации. Поиск минимума f(x) может осуществляться в некотором интервале a ≤ x ≤ b , в котором, как предполагается, лежит минимум.
Например, качество некоторого продукта зависит от его темпера- туры. При этом не существует явного вида этой зависимости, т.е. не определена функция f(x). Исследователь может задать некоторый ин- тервал температурных значений (возможно грубый), который содержит то значение, при котором достигается максимальное качество продукта.
Методы, которые позволяют определить оптимум функции путем уменьшения интервала поиска, называются методами исключения интервалов. Для применения данных методов необходимо, чтобы целевая функция обладала свойством унимодальности. Функция f(x) является унимодальной на отрезке a ≤ x ≤ b в том и только том слу- чае, если она монотонна по обе стороны от единственной на рас- сматриваемом интервале оптимальной точки x*. Если функция уни- модальна, то ее локальный оптимум является также и глобальным. Унимодальная функция представлена на рис. 1.1.
К методам исключения интервалов относятся следующие методы: метод деления отрезка пополам, метод дихотомии, метод Фибоначчи и метод золотого сечения. Во всех этих методах предполагается, что функция исследуется на некотором отрезке неопределенности [a, b] с заданной точностью ε.
Простейшим является метод деления отрезка пополам, когда x(k) = = (a + b)/2 – координата середины отрезка [a, b], k – номер итерации, а F(x(k)) – значение функции в середине отрезка. В зависимости от значе- ний функции в трех точках: а, b и x(k) – отбрасывается правая или левая половина отрезка [a, b], и если отброшен правый отрезок, то b = x(k), если отброшен левый, то а = x(k). Итерации продолжаются до тех пор, пока не будет выполнено условие окончания поиска:
f (x(k + 1) ) − f (x(k ) ) ≤ ε.
14
Рис. 1.1. Унимодальная функция
В методе дихотомии на каждом шаге находим значение функ- ции F(x(k)) в окрестности ±ε точки x(k) являющейся серединой отрезка, т.е.
F (1) = F (x(k ) − ε);
F (2) = F (x(k ) + ε).
Затем производим сравнение значений функции и отбрасываем от- резки так же, как и в методе деления отрезка пополам. Уменьшение отрезка поиска продолжается, пока его длина не станет меньше ε, т.е. пока не выполнится условие
b − a ≤ ε.
Метод Фибоначчи применяется в тех случаях, когда задача по- ставлена таким образом, что известно конечное число итераций n. Алгоритм данного метода подробно изложен в [1], поэтому предла- гаем разобрать его самостоятельно.
Метод золотого сечения обладает стабильной линейной скоро- стью сходимости, не зависящей от вида функции, и наиболее часто применяется к задачам, в которых исследуемая функция не задана явно, а ее значения получены в результате экспериментов. Золотым сечением называется способ деления отрезка на две части, при этом
15
длина бoльшей части отрезка относится к длине всего отрезка так же, как длина меньшей части отрезка относится к длине большей его части. Пусть L1 – длина большей части отрезка, а L2 – длина меньшей его части, тогда
L = L1 + L2.
Золотое сечение характеризуется следующим соотношением:
L1 = L2 .
LL1
Витоге получим квадратное уравнение
L 2 |
= LL ; L 2 |
= (L + L )L ; |
|||
1 |
2 |
1 |
1 |
2 |
2 |
LL + L 2 |
− L 2 |
= 0. |
|
|
|
2 |
2 |
1 |
|
|
|
Разделив обе части этого уравнения на L12 , получим
L2 |
2 |
|
|
+ |
L2 |
− 1. |
|
L |
2 |
||
|
L |
||
1 |
1 |
|
|
Пусть τ = L2 , тогда уравнение имеет вид 1 – τ = τ2, корнем кото-
L1
рого будет выражение 5 − 1 или τ = 0,618.
2
Таким образом, для реализации метода золотого сечения необхо- димо от выбранного интервала исследования функции перейти к ин- тервалу единичной длины и тогда a = 0, b = 1. В качестве первой пробной точки берется значение τ = 0,618. В качестве второй точки берется точка x = 1 – 0,618 = 0,382. Эти точки называются точками золотого сечения, отсюда и название метода.
Таким образом, x1 = 0,618, x2 = 0,382. Далее вычисляются значе- ния функции в этих точках и сравниваются. По результатам сравне- ния отбрасывается правый или левый интервал, и новый интервал уменьшается. Исключение интервала зависит от того, на что иссле- дуется функция: на максимум или минимум. Когда функция иссле- дуется на минимум, то справедливы следующие правила:
–если f(xi + 1) < f(xi) и xi + 1 < xi, то исключается правый интервал;
–если f(xi + 1) < f(xi) и xi + 1 > xi, то исключается левый интервал;
16
–если f(xi + 1) > f(xi) и xi + 1 > xi, то исключается правый интервал;
–если f(xi + 1) > f(xi) и xi + 1 < xi, то исключается левый интервал. Для того, чтобы найти новую пробную точку, руководствуются
следующим правилом.
Если в результате сравнения отбрасывается правый интервал, то новая точка x = b – τn, если же отбрасывается левый интервал, то x = = a + τn, где n – количество вычислений значений функции. Процесс исключения интервалов на единичном отрезке в соответствии с ме- тодом золотого сечения показан на рис. 1.2.
0 |
0,382 |
0,618 |
1 |
а |
|
|
b |
0 |
0,236 |
0,382 |
0,618 |
1 |
|
|
|
|
|
а |
|
|
b |
|
0 |
0,236 |
0,382 |
0,618 |
1 |
|
|
|
|
|
|
а |
b |
|
|
Рис. 1.2. Метод золотого сечения
Точка оптимума находится в интервале [a, b] = [0,236; 0,382]. Поиск может быть закончен либо исходя из заданного количества
вычислений значения функции, либо по достижении приемлемого значения целевой функции. Более эффективным является примене- ние обоих критериев окончания поиска.
17
Рассмотрим пример.
Пример 1.1. Найти минимум функции
f (x) = x2 + 6 − 4, x3
1≤ x ≤ 4
при ε = 0,05, используя метод золотого сечения.
Решение. Введем новую переменную: 0 ≤ y ≤ 1 и перейдем к от-
резку единичной длины: |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
y = |
x − 1 |
= |
|
x − 1 |
. |
|
|
||
|
|
|
|
|
|
|||||||
|
|
|
|
|
4 − 1 |
3 |
|
|
|
|||
Тогда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x = 3y + 1. |
|
|||||||
Выразим функцию через y: |
|
|
|
|
||||||||
|
|
f (y) = (3y + 1)2 + |
|
|
6 |
|
− 4. |
|||||
|
|
|
|
|
|
|||||||
|
(3y + 1)3 |
|||||||||||
|
|
|
|
|
|
|
|
|||||
В табл. 1.1 представлены данные вычислений функции. |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 1.1 |
|
Результаты решения методом золотого сечения |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
№ вычисления |
|
у |
|
|
|
F(y) |
|
|
|
Отбрасываемый интервал |
||
1 |
|
0,618 |
|
4,403 |
|
|
|
|
||||
2 |
|
0,382 |
|
1,212 |
|
|
|
0,618 – 1 |
||||
3 |
|
0,236 |
|
0,122 |
|
|
|
0,382 – 0,618 |
||||
4 |
|
0,146 |
|
0,086 |
|
|
|
0,236 – 0,382 |
||||
Так как |0,086 – 0,122 | = 0,04 < 0,05, то поиск завершен. Итак, у* = = 0,146. Теперь найдем значение х:
х* = 3 · 0,146 + 1 = 1,44 и f* = (1,44)2 + 6/ (1,44)3) = 0,086.
1.1.2. Полиномиальная аппроксимация
Методы исключения интервалов накладывают единственное тре- бование к исследуемой функции – это унимодальность. Рассмотрим методы, которые налагают дополнительное требование к функции, а именно требование гладкости.
18
Основная идея рассматриваемых методов связана с возможностью аппроксимации гладкой функции полиномом и последующего ис- пользования аппроксимирующего полинома для оценивания коорди- наты точки оптимума. Необходимыми условиями эффективной реа- лизации такого подхода являются унимодальность и непрерывность исследуемой функции. Согласно теореме Вейерштрасса об аппрок- симации, если функция непрерывна в некотором интервале, то ее с любой степенью точности можно аппроксимировать полиномом вы- сокого порядка. Дадим определение некоторым понятиям.
Интерполяция – это способ приближенного вычисления значения величины, находящейся между двумя или несколькими известными значениями.
Аппроксимация – это приближенное решение сложной функции с помощью более простых, что резко ускоряет и упрощает решение задач. В экономике целью аппроксимации часто является укрупнение характеристик моделируемых экономических объектов.
Гладкая функция – это функция, имеющая непрерывную произ- водную на всем множестве определения.
Рассмотрим квадратичную аппроксимацию, основанную на предположении, что в ограниченном интервале можно аппроксими- ровать функцию квадратичным полиномом, а затем использовать построенную схему для оценивания координаты точки истинного оптимума функции.
Если задана последовательность точек х1, х2, х3 и известны соот- ветствующие этим точкам значения f(x1), f(x2) и f(x3), то можно опре- делить постоянные величины а0, а1, а2 таким образом, что значения квадратичной функции
q(x) = a0 + a1(x – x1) + a2(x – x1)(x – x2)
совпадут со значениями f(x) в трех указанных точках. Перейдем к вычислению q(x) в каждой из трех заданных точек:
f(x1) = q(x1) = а0 = f1.
Далее, поскольку
f(x2) = q(x2) = f(x1) + а1(х2 – х1) = f2,
получим
a |
= |
f2 |
− f1 |
. |
|
|
|||
1 |
|
x2 |
− x1 |
|
|
|
|||
19
Вычислим q(x) при х = х3:
q(x ) = f |
+ |
|
f2 − f1 |
(x |
− x ) + a (x |
− x )(x |
− x ) = f |
3 |
, |
||||||
|
|
||||||||||||||
3 |
1 |
|
x2 − x1 |
3 |
|
1 |
2 |
3 |
1 |
3 |
2 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
тогда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
(x − x |
)(x − x |
) |
= f |
3 |
− f + |
f2 − f1 |
(x − x ) = |
|
|
|||||
|
|
|
|||||||||||||
2 |
3 |
1 |
3 |
|
2 |
|
1 |
x2 |
− x1 |
3 |
1 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
= f3 (x2 − x1) − f1(x2 − x1) − ( f2 − f1)(x3 − x1) . x2 − x1
Решив последнее уравнение относительно а2, получим
a2
=
a2
= |
( f3 − f1)(x2 − x1) − ( f2 − f1)(x3 − x1) |
= |
|
|||||
|
(x2 |
− x1)(x3 − x1)(x3 |
− x2 ) |
|
||||
|
|
|
|
|||||
|
1 |
|
( f3 |
− f1)(x2 − x1) |
− |
( f2 − f1)(x3 − x1) |
|
|
|
|
; |
||||||
|
|
|
|
(x2 − x1)(x3 − x1) |
||||
x3 − x2 |
(x2 − x1)(x3 − x1) |
|
||||||
= |
|
1 |
|
f3 − f1 |
− |
f |
2 − f1 |
|
|
|
. |
||||||
x3 |
|
|
|
|
||||
|
− x2 x3 − x1 |
|
x2 − x1 |
|||||
Таким образом, по трем заданным точкам и соответствующим значе- ниям функции можно оценить параметры а0, а1 и а2 аппроксими- рующего квадратичного полинома с помощью приведенных выше формул. Если точность аппроксимации исследуемой функции в ин- тервале от х1 до х3 с помощью квадратичного полинома оказывается достаточно высокой, то в соответствии с предложенной стратегией поиска построенный полином можно использовать для оценивания координаты точки оптимума.
Известно, что стационарные точки функции одной переменной определяются приравниванием к нулю ее первой производной и по- следующим нахождением корней полученного таким образом урав- нения. Продифференцируем квадратичную функцию q(x) и прирав- няем к нулю производную:
dq = a1 + a2 (x − x2 ) + a2 (x − x1) = 0, dx
тогда
20
