МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗ...
4 downloads
193 Views
909KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТАГАНРОГСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Б.Ф. Харчистов
МЕТОДЫ ОПТИМИЗАЦИИ
УЧЕБНОЕ ПОСОБИЕ
Таганрог 2004
УДК 519.8(075.5) Харчистов Б.Ф. Методы оптимизации: Учебное пособие. − Таганрог: Изд-во ТРТУ, 2004. − 140с. Изложены основные понятия и теоретические положения курса «Методы оптимизации». Приведены алгоритмы, реализующие различные методы решения оптимизационных задач. Применение алгоритмов иллюстрировано решением примеров. Каждый раздел содержит задачи, снабженные ответами. В пособие включено индивидуальное задание, посвященное решению задачи формирования портфеля ценных бумаг. Также дана характеристика контрольных работ, используемых для текущего рейтинг-контроля. Пособие предназначено для студентов специальностей 3514 и 0618, изучающих курс «Методы оптимизации», а также преподавателей, проводящих практические, индивидуальные занятия и рейтинг-контроль по данному предмету. Ил. 8. Библиогр.: 12 назв. Печатается по решению редакционно-издательского совета Таганрогского государственного радиотехнического университета. Рецензенты: Кафедра математики и информатики Таганрогского института управления и экономики. В.П.Карелин, доктор технических наук, профессор, заведующий кафедрой. Я.Е.Ромм, доктор технических наук, профессор, заведующий кафедрой информатики Таганрогского государственного педагогического института.
Харчистов Б.Ф., 2004
3 ВВЕДЕНИЕ Настоящее учебное пособие призвано помочь студентам в изучении ряда основных методов решения оптимизационных задач, а также преподавателям при проведении практических и индивидуальных занятий по курсу «Методы оптимизации». В современной литературе описано большое число методов решения оптимизационных задач, все их изложить невозможно. Поэтому в пособие включены лишь некоторые из наиболее эффективных и наиболее важных с методологической точки зрения методов. В разделах 1 и 2 приводятся классические методы решения оптимизационных задач, основанные на использовании дифференциального исчисления для нахождения точек экстремумов функций. В разделе 3 рассматривается одна из оптимизационных задач, обладающих специальной структурой – задача с квадратичной целевой функцией и линейными ограничениями. Разделы 4 и 5 посвящены методам одномерной минимизации, широко применяемым на практике в качестве составной части методов поиска экстремумов функций многих переменных. В разделах 6 и 7 рассматриваются численные методы безусловной оптимизации, а в разделах 8 и 9 – численные методы условной оптимизации. Разделы 10 и 11 посвящены методам решения задач целочисленного линейного программирования. В каждом разделе пособия даны краткая характеристика рассматриваемых методов, сводка рабочих формул и алгоритмы решения оптимизационных задач. Применение алгоритмов иллюстрируется решением примеров. В каждом разделе также приведены задачи, которые решаются студентами на практических занятиях или самостоятельно. Задачи снабжены ответами. Пособие в значительной мере отражает практику преподавания предмета «Методы оптимизации» на кафедре прикладной информатики ТРТУ. Следует отметить, что в пособии отсутствует раздел, непосредственно посвященный линейному программированию, поскольку методы решения задач линейного программирования изучаются ранее в другом курсе. Однако ука-
4 занные методы используются при решении нелинейных задач с ограничениями и линейных целочисленных задач. В пособие включено индивидуальное задание на тему «Задача выбора портфеля ценных бумаг», выполняемое по курсу «Методы оптимизации». В индивидуальном задании рассматриваются несколько моделей, оптимизирующих портфель ценных бумаг. В качестве критериев эффективности используются критерий максимизации ожидаемого дохода и критерий минимизации инвестиционного риска. Расчетная часть основана на гипотетических статистических данных о рынке ценных бумаг. Текущий рейтинг-контроль осуществляется в форме контрольных работ. Структура работ, тип и количество заданий приведены в соответствующем разделе пособия. Конкретный вид целевых функций, функциональных и иных ограничений, а также другой числовой материал, используемый в контрольных работах, задается преподавателем. По курсу используется следующее распределение рейтинга: • 5 контрольных работ (7% суммарного рейтинга за работу) − 35% суммарного рейтинга, • индивидуальное задание − 15% суммарного рейтинга, • экзамен − 50% суммарного рейтинга.
5 1. ЗАДАЧА БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ Задача оптимизации формулируется следующим образом: заданы множество Х (допустимое множество задачи) и функция f(x) (целевая функция), определенная на Х; требуется найти точки минимума или максимума функции f на Х. Задача оптимизации, в которой целевая функция подлежит минимизации, имеет вид f ( x) → min, (1.1) x ∈ X. В курсе рассматриваются задачи, допустимое множество которых лежит в евклидовом пространстве Rn. Точка x ∗ ∈ X называется точкой глобального минимума f(x) на множестве X, или глобальным решением задачи (1.1), если f ( x ∗ ) ≤ f ( x) при всех х ∈ Х . Точка x∗ ∈ X называется точкой локального минимума f(x) на множестве X, или локальным решением задачи (1.1), если
{
f ( x* ) ≤ f ( x) при всех x ∈ X ! Vε ( x ∗ ) ,
где Vε ( x ∗ ) = x ∈ R n : x − x ∗ ≤ ε
} − шар радиуса ε>0 с центром в
точке x∗ (ε - окрестность точки x∗). Ясно, что глобальное решение является и локальным; обратное неверно. Задача (1.1) называется задачей безусловной оптимизации, если X=Rn. На практических занятиях рассматриваются аналитические методы решения задач безусловной оптимизации, базирующиеся на условиях оптимальности. Различают необходимые условия оптимальности, т.е. условия, которым должна удовлетворять точка, являющаяся решением задачи, и достаточные условия оптимальности, т.е. условия, из которых следует, что данная точка является решением задачи.
6 1.1. ФУНКЦИЯ ОДНОЙ ПЕРЕМЕННОЙ
Для функции одной переменной условия оптимальности формулируются следующим образом. Необходимое условие локальной оптимальности. Пусть f (x ) дифференцируема в точке x ∗ ∈ R1. Если x∗ − точка локального оптимума (экстремума), то f ′( x ∗ ) = 0. (1.2) Точки, удовлетворяющие условию (1.2), называются стационарными. Стационарные точки могут быть и точками локального минимума, и точками локального максимума, и точками перегиба. Для определения характера стационарных точек используется достаточное условие локальной оптимальности. Достаточное условие локальной оптимальности. Пусть f (x ) k раз, k>1, дифференцируема в точке x ∗ ∈ R1 , причем
f ′( x ∗ ) = f ′′( x ∗ ) = ... = f ( k −1) ( x∗ ) = 0, f ( k ) ( x∗ ) ≠ 0. Тогда, если k − четное число, то x∗ − точка локального минимума (максимума) при f ( k ) ( x ∗ ) > 0 (при f ( k ) ( x ∗ ) < 0 ). Если k − нечетное число, то x∗ − точка перегиба. Используя необходимое и достаточное условия оптимальности, находятся точки локальных экстремумов. Для определения точек глобальных экстремумов вычисляются предельные (при x → ∞ и x → −∞ ) значения f(x). Если V ≡ max{ lim f ( x ), lim f ( x )} = +∞ , x →∞
x → −∞
то f(x) не имеет конечного глобального максимума. Если W ≡ min{ lim f ( x), lim f ( x)} = −∞ , x→∞
x → −∞
то f(x) не имеет конечного глобального минимума. Если f(x) имеет конечный глобальный максимум и (или) конечный глобальный минимум, то для их определения вычисляются также значения f(x) на множестве точек локальных экстремумов. Наименьшее из полученных значений, т.е. значений f(x) в точках локальных экстремумов и предельных значений f(x),
7 определяет точку глобального минимума, наибольшее из полученных значений − точку глобального максимума f(x). Алгоритм определения точек локальных и глобальных экстремумов функции одной переменной заключается в следующем. 1. Находится f ′(x) . 2. Вычисляются корни уравнения f ′(x) =0 − стационарные точки x(i ) , i ∈ I = {1,2,..., N }, где N − число стационарных точек. Полагается k=2. 3. Находится f ( k ) ( x).
( )
4. Вычисляются значения f ( k ) x(i ) для всех i ∈ I . Если
( )
f ( k ) x( i ) ≠ 0 , то определяется тип стационарной
точки x(i ) и ее номер исключается из множества I. 5. Проверяется условие определения типа всех стационарных точек I=∅. Если оно выполняется, то осуществляется переход к п.6. Если условие не выполняется, то полагается k=k+1 и осуществляется переход к п.3. 6. Вычисляются предельные (при x → ∞ и x → −∞ ) значения f(x). Если f(x) не имеет конечных глобальных экстремумов, то вычисления прекращаются. В противном случае осуществляется переход к п.7. 7. Вычисляются значения f(x) на множестве точек локальных экстремумов. По наименьшему из полученных значений f определяется точка глобального минимума, по наибольшему из полученных значений f − точка глобального максимума. Пример 1. Определить точки локальных и глобальных экстремумов функции f ( x ) = (1 − x )3 .
8 Решение. Находим первую производную f(x): f ′( x) = −3(1 − x ) 2 . Вычисляем корни уравнения f ′( x ) = 0 : − 3(1 − x) 2 = 0 → (1 − x) 2 = 0 → x(1) = 1 .
Получили одну стационарную точку ( I = {1 }) x(1) = 1 . Определяем характер стационарной точки. Находим вторую производную f(x): f ′′( x) = 6(1 − x). Вычисляем значение f ′′(x) в точке x(1) : f ′′( x(1) = 1) = 0. Поскольку характер стационарной точки не определен, то находим третью производную f(x): f ′′′( x) = −6 ≠ 0. Поскольку порядок k первой необращающейся в нуль в точке x=1 производной есть нечетное число (k=3), то точка x=1 является точкой перегиба (I=∅). Вычисляем предельные значения f(x):
{ } = (1 − ∞) = −∞, = { lim (1 − x) } = (1 + ∞) = ∞.
lim f ( x ) = lim (1 − x ) 3 = lim (1 − x )
x →∞
x →∞
3
x →∞
lim f ( x) = lim (1 − x ) 3
x →−∞
3
x → −∞
3
3
x → −∞
Поскольку V ≡ max{ lim f ( x ), lim f ( x )} = +∞ , x →∞
x → −∞
то f(x) не имеет конечного глобального максимума. Поскольку W ≡ min{ lim f ( x), lim f ( x)} = −∞ , x→∞
x → −∞
то f(x) не имеет конечного глобального минимума. Ответ: функция f ( x) = (1 − x)3 экстремумов не имеет. Пример 2. Определить точки локальных и глобальных
9 экстремумов функции f ( x ) = (1 − x ) 4 . Решение. Находим первую производную f(x): f ′( x) = −4(1 − x)3 . Вычисляем корни уравнения f ′( x) = 0 : − 4(1 − x )3 = 0 → (1 − x )3 = 0 → x(1) = 1.
Получили одну стационарную точку ( I = {1 }) x(1) = 1 . Определяем характер стационарной точки. Находим вторую производную f(x): f ′′( x ) = 12(1 − x ) 2 . Вычисляем значение f ′′(x ) в точке x(1) : f ′′( x(1) = 1) = 0. Поскольку характер стационарной точки не определен, то находим третью производную f(x): f ′′′( x ) = −24(1 − x ). Вычисляем значение f ′′′(x) в точке x(1) : f ′′′( x(1) = 1) = 0. Поскольку характер стационарной точки не определен, то находим четвертую производную f(x): f ( 4 ) ( x) = 24 ≠ 0. Поскольку порядок k первой необращающейся в нуль в точке x=1 производной есть четное число (k=4) и f ( 4 ) ( x) > 0 , то точка x=1 является точкой локального минимума (I=∅). Вычисляем предельные значения f(x):
{ } = (1 − ∞) = ∞, = { lim (1 − x) } = (1 + ∞) = ∞.
lim f ( x ) = lim (1 − x) 4 = lim (1 − x )
x →∞
x→∞
4
x →∞
lim f ( x) = lim (1 − x) 4
x →−∞
4
x → −∞
4
x →−∞
Поскольку V ≡ max{ lim f ( x ), lim f ( x )} = +∞ , x →∞
x → −∞
4
10 то f(x) не имеет конечного глобального максимума. Поскольку W ≡ min{ lim f ( x ), lim f ( x)} = +∞ ≠ −∞ , x →∞
x →−∞
то f(x) имеет конечный глобальный минимум. Вычисляем значение f(x) в точке x=1: f ( x = 1) = 0. Определяем точку глобального минимума f(x): . min1 f ( x) = min {f ( x = 1), W } = min { 0, + ∞ } = 0 = f ( x = 1). x∈R
Таким образом, точка x=1 является точкой глобального минимума f(x). Ответ: функция f ( x) = (1 − x ) 4 имеет в точке x=1 глобальный минимум. Пример 3. Определить точки локальных и глобальных x экстремумов функции f ( x) = . 1 + x2 Решение. Находим первую производную f(x): 1 + x2 − x ⋅ 2x 1 − x2 f ′( x) = . = (1 + x 2 )2 (1 + x 2 ) 2 Вычисляем корни уравнения f ′( x) = 0 : 1 − x2 = 0 → 1 − x 2 = 0 → x(1, 2 ) = ±1. 2 2 (1 + x ) Получили две стационарные точки ( I = {1, 2 }) : x(1) = 1 , x( 2 ) = −1. Определяем характер стационарных точек. Находим вторую производную f(x): − 2 x(1 + x 2 ) 2 − 2(1 + x 2 )2 x (1 − x 2 ) 2 x( x 2 − 3) f ′′( x ) = . = (1 + x 2 ) 4 (1 + x 2 )3 Вычисляем значение f ′′(x ) в точке x(1) :
11 2(1 − 3) 4 = − = −0,5 < 0. 3 8 (1 + 1) Следовательно, x=1 является точкой локального максимума ( I = { 2 }). Вычисляем значение f ′′(x ) в точке x( 2 ) : f ′′( x(1) = 1) =
− 2(1 − 3) 4 = = 0,5 > 0. 8 (1 + 1) 3 Следовательно, x = −1 является точкой локального минимума (I=∅). Вычисляем предельные значения f(x): x x 1 1 = lim 2 = lim = = 0, lim f ( x ) = lim x →∞ x→∞ 1 + x 2 x → ∞ x (1 + 1 x 2 ) x → ∞ x(1 + 1 x 2 ) ∞ ⋅1 f ′′( x( 2 ) = −1) =
lim f ( x) = lim
x → −∞
x → −∞
x 1 1 = lim = = 0. 2 2 → −∞ x x (1 + 1 x ) (−∞)1 1+ x
Поскольку V ≡ max{ lim f ( x), lim f ( x)} = 0 ≠ +∞ , x→∞
x → −∞
то f(x) имеет конечный глобальный максимум. Поскольку W ≡ min{ lim f ( x), lim f ( x )} = 0 ≠ −∞ , x→∞
x → −∞
то f(x) имеет конечный глобальный минимум. Вычисляем значения f(x) в точках локальных экстремумов: 1 f ( x = 1) = = 0,5; 1 + 12 −1 f ( x = −1) = = −0,5. 1 + (−1) 2 Определяем точку глобального минимума f(x): min1 f ( x) = min {f ( x = −1), W } = min {− 0,5; 0} = −0,5 = f ( x = −1). x∈R
Таким образом, точка x = −1 является точкой глобального минимума f(x).
12 Определяем точку глобального максимума f(x): max1 f ( x) = max{ f ( x = 1), V } = max{0,5; 0} = 0,5 = f ( x = 1). x∈R
Таким образом, точка x = 1 является точкой глобального максимума f(x). x имеет в точке x = −1 глоОтвет: функция f ( x ) = 1+ x2 бальный минимум, а в точке x = 1 − глобальный максимум. 1.2. ФУНКЦИЯ МНОГИХ ПЕРЕМЕННЫХ
Для функции f(x) многих переменных точка x представляет собой вектор, f ′(x) − вектор первых производных (градиент) функции f(x), f ′′(x ) − симметричную матрицу вторых частных производных (матрицу Гессе − гессиан) функции f(x). Для функции многих переменных условия оптимальности формулируются следующим образом. Необходимое условие локальной оптимальности. Пусть f(x) дифференцируема в точке x∗ ∈ R n . Если x∗ − точка локального экстремума, то f ′( x ∗ ) = 0. (1.3) Как и ранее, точки, являющиеся решениями системы уравнений (1.3), называются стационарными. Характер стационарной точки x ∗ связан со знакоопределенностью матрицы Гессе f ′′( x ∗ ) . Знакоопределенность матрицы А зависит от знаков квадратичной формы Q(α ) = αA, α при всех ненулевых α ∈ R n . Здесь и далее через x, y обозначается скалярное произведение векторов x и y. По определению, n
x, y = ∑ x j y j . j =1
Матрица A является положительно (неотрицательно) оп-
13 ределенной, если Q(α ) > 0 (Q(α ) ≥ 0) при всех ненулевых α ∈ R n ; отрицательно (неположительно) определенной, если n Q(α ) < 0 (Q (α ) ≤ 0) при всех ненулевых α ∈ R ; неопределенной, если Q (α ) > 0 для некоторых ненулевых α ∈ R n и Q (α ) < 0 для остальных ненулевых α ∈ R n . Достаточное условие локальной оптимальности. Пусть f(x) дважды дифференцируема в точке x∗ ∈ R n , причем f ′( x ∗ ) = 0 , т.е. x∗ − стационарная точка. Тогда, если матрица f ′′( x ∗ ) является положительно (отрицательно) определенной, то x∗ − точка локального минимума (максимума); если матрица f ′′( x ∗ ) является неопределенной, то x∗ − седловая точка.
Если матрица f ′′( x ∗ ) является неотрицательно (неположительно) определенной, то для определения характера стационарной точки x∗ требуется исследование производных более высокого порядка. Для проверки знакоопределенности матрицы, как правило, используется критерий Сильвестра. Согласно этому критерию, симметричная матрица А является положительно определенной в том и только том случае, если все ее угловые миноры положительны. При этом угловым минором матрицы А называется определитель матрицы, построенной из элементов матрицы А, стоящих на пересечении строк и столбцов с одинаковыми (причем первыми) номерами. Чтобы проверить симметричную матрицу А на отрицательную определенность, надо проверить матрицу (−А) на положительную определенность. Итак, алгоритм определения точек локальных экстремумов функции многих переменных заключается в следующем. 1. Находится f ′(x) . 2. Решается система ∂f ( x ) = 0, j = 1,n . ∂x j
14 В результате вычисляются стационарные x(i ) , i = 1,N . 3. Находится f ′′(x ) , полагается i=1. 4. Находится f ′′( x(i ) ) .
точки
5. Вычисляются угловые миноры матрицы f ′′( x(i ) ) . Если не все угловые миноры ненулевые, то для определения характера стационарной точки x(i ) требуется исследование производных более высокого порядка. При этом осуществляется переход к п.8. В противном случае осуществляется переход к п.6. 6. Анализируются знаки угловых миноров f ′′( x(i ) ) . Если f ′′( x(i ) ) является положительно определенной, то x(i ) является точкой локального минимума. При этом осуществляется переход к п.8. В противном случае осуществляется переход к п.7. 7. Вычисляются угловые миноры матрицы [− f ′′( x(i ) )] и анализируются их знаки. Если [− f ′′( x(i ) )] является положительно определенной, то f ′′( x(i ) ) является отрицательно определенной и x(i ) является точкой локального максимума. В противном случае f ′′( x(i ) ) является неопределенной и x(i ) является седловой точкой. 8. Проверяется условие определения характера всех стационарных точек i=N. Если оно выполняется, то вычисления завершаются. Если условие не выполняется, то полагается i = i + 1 и осуществляется переход к п.4. Пример. Определить точки локальных экстремумов функции f ( x) = x13 − 2 x1 x2 + x22 − 3x1 − 2 x2 .
15 Решение. Находим первые частные производные f(x): ∂f ∂f = 3x12 − 2 x2 − 3, = −2 x1 + 2 x2 − 2. ∂x1 ∂x2 Решаем систему уравнений 3x12 − 2 x2 − 3 = 0, (1) -2 x1 + 2 x2 − 2 = 0. (2) Разрешаем уравнение (2) относительно x1: 2 x1 = 2 x 2 − 2 → x1 = x 2 − 1 . Подставляя полученное выражение в уравнение (1), находим x2: 3( x2 − 1) 2 − 2 x2 − 3 = 3x22 − 8 x2 = x2 (3 x2 − 8) = 0 → 8 → x(1) 2 = 0, x(2 )2 = . 3 Соответственно 5 x(1)1 = −1, x(2 )1 = . 3 Таким образом, получили две стационарные точки ( N = 2 ): 5 8 x(1) = (−1, 0), x( 2 ) = ( , ). 3 3 Находим вторые частные производные f(x): ∂2 f ∂2 f ∂2 f x 6 , 2 , = = − = 2. 1 ∂x1∂x2 ∂x12 ∂x22 Составляем матрицу Гессе 6 x − 2 . f ′′( x) = 1 2 − 2 Определяем характер стационарной точки x(1) . Находим f ′′( x(1) ) :
16 2 −6 . f ′′( x(1) ) = 2 −2 Вычисляем угловые миноры f ′′( x(1) ) : M 1 = − 6 = −6 < 0, −6 −2 = (−6)2 − (−2)(−2) = −16 < 0. −2 2 Поскольку все угловые миноры ненулевые, то характер определяется с помощью f ′′(x). M2 =
x(1)
Поскольку матрица f ′′( x(1) ) не является положительно определенной, то рассматриваем матрицу [− f ′′( x(1) )] : 2 6 − f ′′( x(1) ) = . 2 − 2 Вычисляем угловые миноры [− f ′′( x(1) )] : M 1 = 6 = 6 > 0, 2 = 6(−2) − 2 ⋅ 2 = −16 < 0. −2 Поскольку матрица [− f ′′( x(1) )] не является положительно M2 =
6 2
определенной, то матрица f ′′( x(1) ) не является отрицательно определенной. Следовательно, матрица f ′′( x(1) ) является неопределенной и x(1) является седловой точкой. Определяем характер стационарной точки x( 2 ) . Находим f ′′( x( 2 ) ) : 10 − 2 f ′′( x(2) ) = . −2 2 Вычисляем угловые миноры f ′′( x( 2 ) ) : M1 = |10| = 10 > 0,
17 10 − 2 = 10 ⋅ 2 − (−2)(−2) = 16 > 0. −2 2 Поскольку все угловые миноры ненулевые, то характер определяется с помощью f ′′(x ) . M2 =
x( 2 )
Поскольку матрица f ′′( x( 2 ) ) является положительно определенной, то x( 2 ) является точкой локального минимума. Ответ: функция f ( x) = x13 − 2 x1 x2 + x22 − 3x1 − 2 x2 имеет в точке x = (5 3 , 8 3) локальный минимум. Задачи 1. Определить точки локальных и глобальных экстремумов функции f ( x ) = 1 − x 3 . 2. Определить точки локальных и глобальных экстремумов функции f ( x) = 1 − x 4 . 3.Определить точки локальных и глобальных экстремумов функции f (x) = x 4 − 4x 3 + 4x 2 − 1. 4. Определить точки локальных экстремумов функции f (x) = x12 x2 − 3x1 x2 − x1 + 2x2 + 5 . 5. Определить точки локальных экстремумов функции f (x) = x13 + x23 − 3x1 x2 . 6. Проверить, что точки x (1) = (0, 3, 1) , x(2) = (0, 1, − 1) и x (3) = (1, 2, 0)
являются x12
x 22
стационарными
точками
функции
x32
f ( x) = 2 x1 x 2 x3 + + + − 4 x1 x3 − 2 x2 x3 − 2 x1 − 4 x 2 + 4 x3 . Определить, какие из приведенных точек являются точками экстремумов данной функции. 7. Определить, являются ли точки x (1) = (0, − 1) и x (2) = (2, 1)
точками экстремумов функции
− 3x12 − 3 x1 x 2 + 3 x1 + 3 x 2 − 1.
f ( x ) = x13 + x 23 −
18 2. ЗАДАЧА УСЛОВНОЙ ОПТИМИЗАЦИИ Задача оптимизации (минимизации) f ( x) → min, x∈ X называется задачей условной оптимизации, если X − собственное подмножество пространства R n ( X ⊂ R n , X ≠ R n ). На практическом занятии рассматривается так называемая классическая задача на условный экстремум. Это задача оптимизации с допустимым множеством X, заданным системой конечного числа уравнений:
{
}
X = x ∈ R n : g i ( x ) = 0, i = 1, m . Здесь предполагается, что m < n . Обычно эта задача записывается в виде f ( x) → min,
(2.1) g i ( x) = 0, i = 1,m . Для решения задачи (2.1) используется метод множителей Лагранжа. Основная идея метода заключается в переходе от задачи на условный экстремум исходной функции f (x ) к задаче на безусловный экстремум некоторой специально построенной функции Лагранжа L( x, λ ) m
L( x, λ ) = f ( x) + ∑ λi g i ( x ), i =1
n
m
где x ∈ R , λ = ( λ1 , λ2 ,..., λm ) ∈ R . Необходимое условие локальной оптимальности. Пусть f(x), g1 ( x ), g 2 ( x ),..., g m ( x) дифференцируемы в точке x∗ ∈ R n . Если x ∗ − точка локального экстремума, то существует вектор λ∗ = ( λ∗1 , λ∗2 ,..., λ∗m ) , компоненты которого не равны нулю одновременно, такой, что
19 L′x ( x ∗ , λ∗ ) = 0,
(2.2) Lλ′ ( x ∗ , λ∗ ) = 0, где L′x ( x, λ ), Lλ′ ( x, λ ) − соответственно векторы первых частных производных функции Лагранжа по x j , j = 1,n, и ëi , i = 1,m . При этом должны выполняться условия регулярности: градиенты g1′ ( x∗ ), g 2′ ( x∗ ),..., g ′m ( x∗ ) должны быть линейно независимы. Это означает, что ранг матрицы G ′ , строками которой являются градиенты g i′ ( x∗ ) , должен быть равен m. Любая точка x∗ , удовлетворяющая при некотором ненулевом λ∗ условиям (2.2), называется стационарной точкой задачи (2.1). Для определения характера стационарных точек используется достаточное условие оптимальности с привлечением матрицы L′xx′ ( x, λ ) вторых частных производных функции Лагранжа по x j , j = 1,n . Достаточное условие локальной оптимальности. Пусть f(x), g1 ( x ), g 2 ( x ),..., g m ( x) дважды дифференцируемы в точке x∗ ∈ R n , причем при некотором λ∗ ≠ 0 выполняются условия (2.2), т.е. x∗ − стационарная точка. Тогда, если
α Lxx′′ ( x∗ , λ ∗ ),α > 0
( α Lxx′′ ( x∗ , λ∗ ) ,α < 0)
при всех ненулевых α ∈ R n таких, что g i′ ( x ∗ ),α = 0, i = 1,m, то x∗ − точка локального минимума (максимума) f(x) на множестве X. Алгоритм определения точек условных локальных экстремумов заключается в следующем. 1. Составляется функция Лагранжа L( x, λ ).
20 2. Находится L′x ( x, λ ). 3. Решается система ∂L( x, λ ) = 0, j = 1,n; ∂x j ∂L( x, λ ) = g i ( x ) = 0, i = 1,m . ∂λi В результате вычисляются стационарные x(l ) , l = 1, N , и соответствующие им λ (l ) , l = 1, N .
точки
4. Находятся g i′ ( x), α , i = 1,m . 5. Находится L ′xx′ ( x, λ ) , полагается l = 1. ′′ ( x( l ) , λ (l ) ) . Составляется квадратичная 6. Находится L xx ′′ ( x( l ) , λ (l ) ) : форма Ql (α ) , задаваемая матрицей L xx ′′ ( x (l ) , λ (l ) ),α . Ql (α ) = αL xx 7. Решается система g i′ ( x( l ) ),α = 0, i = 1,m . В результате вычисляются точки α (r ) . 8. Вычисляются значения Ql (α (r ) ) и анализируются их знаки. Если Ql (α ( r ) ) > 0 для всех ненулевых α (r ) , то x(l ) − точка условного локального минимума. Если Ql (α ( r ) ) < 0 для всех ненулевых α (r ) , то x(l ) − точка условного локального максимума. 9. Проверяется условие определения характера всех стационарных точек l=N. Если оно выполняется, то вычисления завершаются. Если условие не выполняется, то полагается l = l + 1 и осуществляется переход к п.6.
21 Пример. Определить точки локальных экстремумов функции 1 1 f ( x) = ax12 + bx 22 , a > 0 , b > 0, 2 2 при ограничении x13 + x 23 = 1 . Решение. Составляем функцию Лагранжа 1 1 L( x, λ ) = ax12 + bx 22 + λ ( x13 + x 23 − 1) . 2 2 Находим L′x ( x, λ ) : ∂L( x, λ ) ∂L( x, λ ) = ax1 + 3λx12 , = bx 2 + 3λx 22 . ∂x1 ∂x 2 Решаем систему уравнений ax1 + 3λx12 = x1 (a + 3λx1 ) = 0, 2 bx 2 + 3λx 2 = x 2 (b + 3λx 2 ) = 0, 3 3 x1 + x 2 − 1 = 0.
(1) (2) (3)
Для выполнения (1) должно выполняться условие x1 = 0 либо a + 3λx1 = 0 . Для выполнения (2) должно выполняться условие x 2 = 0 либо b + 3λx 2 = 0 . Однако в силу (3) одновременно не могут выполняться условия x1 = 0 и x 2 = 0 . Следовательно, система имеет 3 решения. 1) Пусть x1 = 0 . Тогда из уравнения (3) получаем x 2 = 1 . Поскольку x 2 ≠ 0, то для выполнения (2) должно выполняться условие b + 3λx 2 = 0 , откуда λ = − b 3 . Таким образом, получили первую стационарную точку x(1) и λ(1) : x(1) = (0, 1), λ (1) = − b 3.
22 2) Пусть x 2 = 0 . Тогда из уравнения (3) получаем x1 = 1 . Поскольку x1 ≠ 0 , то для выполнения (1) должно выполняться условие a + 3λx1 = 0 , откуда λ = − a 3 . Таким образом, получили вторую стационарную точку x (2 ) и λ (2 ) : x( 2 ) = (1, 0), λ ( 2 ) = − a 3 . 3) Пусть x1 ≠ 0 и x 2 ≠ 0 . Тогда для выполнения (1) должно выполняться условие a + 3λx1 = 0 , откуда λ = − a 3x1 ; для выполнения (2) должно выполняться условие b + 3λx2 = 0 , откуда b ë = − b 3x2 . Приравнивая выражения для λ, получаем x2 = x1. a Подставляя полученное выражение в уравнение (3), находим x1 : 3
a3 + b3 b x13 + x1 − 1 = 0 → x13 = 1 → x1 = a3 a Находим x2 и λ : b x2 = x1 = a
a 3
a3 + b3
.
3 3 a a + b3 =− , λ=− . 3x1 3 a3 + b3
b
3
Таким образом, получили x (3 ) и λ(3 ) : a b x( 3) = , 3 3 3 3 a3 + b3 a +b
третью стационарную точку 3 a 3 + b3 , λ (3) = − . 3
Находим g ′(x ), α : ∂g ( x) = 3 x12 , ∂x1
∂g ( x ) = 3x22 , ∂x2
(3 x12 ,3 x22 ),(á1,á2 ) = 3x12á1 + 3 x22 á2 .
23 Находим L′xx′ ( x, λ ) : ∂ 2 L ( x, λ ) = a + 6λx1, ∂x12
∂ 2 L ( x, λ ) ∂ 2 L ( x, λ ) = 0, = b + 6λx2 , ∂x1∂x2 ∂x22 0 a + 6λx1 ′′ ( x, λ ) = . Lxx b + 6λx2 0 Определяем характер стационарной точки x(1) . Находим
L ′xx′ ( x(1) , λ (1) ) : b 0 a + 6 − 3 0 a 0 = Lxx′′ ( x (1) , λ (1) ) = . b 0 − b b + 6 − 1 0 3 Составляем квадратичную форму Q1 (α ) : a 0 ′′ ( x(1) , λ(1) ) = (α1 , α 2 ) αLxx = (aα1 ,−bα 2 ), 0 − b Q1 (α ) = (aα1 ,−bα 2 ), (α1 , α 2 ) = aα12 − bα 22 . Решаем уравнение g ′( x(1) ), α = 0 : 3 ⋅ 0 ⋅ α1 + 3 ⋅ 1 ⋅ α 2 = 0 → 3α 2 = 0. Решением являются точки α (r ) = (α1 ,0). Вычисляем значения Q1 (α ( r ) ) : Q1 (α ( r ) ) = aα12 > 0 при α1 ≠ 0 . Поскольку Q1 (α ( r ) ) > 0 для всех ненулевых α (r ) , то x(1) является точкой условного локального минимума. ′′ ( x(1) , λ(1) ) не является положиОтметим, что матрица L xx тельно определенной. Определяем характер стационарной точки x( 2 ) . Находим ′′ ( x( 2 ) , λ( 2 ) ): Lxx
24 a 0 a + 6 − 3 1 − a 0 = Lxx′′ ( x ( 2) , λ( 2) ) = . a 0 b b + 6 − 0 0 3 Составляем квадратичную форму Q2 (α ) : − a 0 αL ′xx′ ( x ( 2) , λ( 2) ) = (α1 ,α 2 ) = (−aα1 , bα 2 ), 0 b Q2 (α ) = (− aα1 , bα 2 ), (α1 ,α 2 ) = − aα12 + bα 22 . Решаем уравнение g ′( x( 2 ) ), α = 0 : 3 ⋅1 ⋅ α1 + 3 ⋅ 0 ⋅ α 2 = 0 → 3α1 = 0. Решением являются точки α ( r ) = (0, α 2 ) . Вычисляем значения Q2 (α ( r ) ) : Q2 (α ( r ) ) = bα 22 > 0 при α 2 ≠ 0 . Поскольку Q2 (α ( r ) ) > 0 для всех ненулевых α (r ) , то x( 2 ) является точкой условного локального минимума. Отметим, что матрица L′xx′ ( x( 2 ) , λ( 2 ) ) не является положительно определенной. Определяем характер стационарной точки x(3) . Находим L′xx′ ( x(3) , λ(3) ) : 3 a 3 + b3 a + 6 − 3 Lxx′′ ( x(3) , λ(3) ) = 0
a 3 3 a + b3 3 a 3 + b3 b + 6 − 3
−a 0 = . 0 − b
= b 3 a 3 + b3 0
25 Составляем квадратичную форму Q3 (α ) : 0 − a αL′xx′ ( x(3) , λ(3) ) = (α1 ,α 2 ) = (−aα1 ,−bα 2 ), 0 − b Q(3) (α ) = (−aα1 ,−bα 2 ), (α1 , α 2 ) = − aα12 − bα 22 = −(aα12 + bα 22 ). Поскольку Q3 (α ) < 0 для всех ненулевых α (в том числе и для α (r ) , являющихся решением уравнения
g ′( x(3) ), α = 0 ), то
x(3) является точкой условного локального максимума. 1 2 1 2 ax1 + bx2 , a > 0 , b > 0, в до2 2 2 3 пустимой области X = x ∈ R : x1 + x23 = 1 имеет в точках x = (0, 1) и x = (1, 0) условные локальные минимумы, а в точке Ответ: функция f ( x) =
{
a х = , 3 3 3 a +b
}
− условный локальный максимум. 3 3 a +b b
3
Задачи 1. Определить точки локальных экстремумов функции f (x) = x1 + x2 при ограничении x12 + x22 = 1 . 2. Определить точки локальных экстремумов функции f ( x) = x12 + x22 + x32 при ограничении 4 x1 + x22 + 2 x3 = 14 . 3. Решить задачу условной максимизации f ( x ) = x1 x 2 x3 → max, x1 + x2 + x3 = a .
26 3. КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ Задачей квадратичного программирования (КП) называется задача оптимизации с квадратичной целевой функцией и линейными ограничениями. Задача КП, в которой целевая функция подлежит минимизации, имеет вид n
n
n
f ( x ) = ∑ c j x j + ∑ ∑ d jk x j xk → min, j =1
j =1 k =1
n
∑ aij x j ≤ bi ,
j =1
i = 1, m,
x j ≥ 0, j = 1, n. Допустимое множество X является выпуклым, матрица D = [d jk ] предполагается симметричной неотрицательно определенной. При этом f (x ) является выпуклой на X и задача КП является частным случаем задачи выпуклого программирования. Для решения задачи КП используются необходимые условия Куна − Таккера, которые в силу выпуклости задачи КП оказываются также достаточными для установления наличия решения. Предварительно составляется функция Лагранжа m
L( x, λ ) = f ( x) + ∑ λi g i ( x), i =1
n
где g j ( x) ≡ ∑ aij x j − bi . j =1
Условия Куна − Таккера имеют следующий вид: ∂L( x, λ ) ≥ 0, j = 1, n; ∂x j x j ≥ 0, xj
j = 1, n;
∂L( x, λ ) = 0, ∂x j
j = 1, n;
(3.1) (3.2) (3.3)
27 ∂L( x, λ ) ≤ 0, i = 1, m; ∂λ i
(3.4)
λi ≥ 0, i = 1, m; (3.5) ∂L( x, λ ) λi = 0, i = 1, m. (3.6) ∂λi Соотношения (3.3) и (3.6) определяют условия дополняющей нежесткости. Непосредственное решение данной системы очень громоздко. Поэтому используется следующий прием. Неравенства (3.1) и (3.4) преобразуют в равенства, вводя соответственно две группы дополнительных переменных v j , j = 1, n, и wi , i = 1, m, удовлетворяющих требованиям неотрицательности. В результате от системы (3.1)−(3.6) переходят к следующей системе: ∂L( x, λ ) − v j = 0, j = 1, n; (3.7) ∂x j x j ≥ 0, v j ≥ 0, x j v j = 0,
j = 1, n;
j = 1, n;
(3.8) (3.9)
∂L( x, λ ) + wi = 0, i = 1, m; ∂λi
(3.10)
λi ≥ 0, wi ≥ 0, i = 1, m;
(3.11)
λi wi = 0, i = 1, m. (3.12) Система уравнений (3.7) и (3.10) содержит (m + n) линейных уравнений с 2(m + n) неизвестными. Таким образом, исходная задача эквивалентна задаче нахождения допустимого, т.е. удовлетворяющего требованиям неотрицательности (3.8) и (3.11), базисного решения системы линейных уравнений (3.7) и (3.10), удовлетворяющего также условиям дополняющей нежесткости (3.9) и (3.12). Так как задача КП является выпуклой задачей оптимизации, то допустимое решение, которое удовлетворяет всем этим условиям, является оптимальным.
28 Для нахождения допустимого базисного решения системы линейных уравнений может быть применен метод искусственных переменных, используемый в линейном программировании (ЛП) для определения начального базиса. При этом в уравнения системы (3.7), (3.10), в которых знаки дополнительных переменных v j или wi совпадают со знаками свободных членов, вводятся неотрицательные искусственные переменные zl , l = 1, lmax , lmax ≤ m + n , знаки которых не совпадают со знаками соответствующих свободных членов. Затем решается вспомогательная задача ЛП F ( z ) = ∑ zl → min l
при ограничениях (3.7) − (3.12) с введенными неотрицательными искусственными переменными. Для решения этой задачи используется симплекс-метод. В процессе решения необходимо учитывать условия дополняющей нежесткости (3.9) и (3.12). Выполнение этих условий означает, что x j и v j , λi и wi не могут быть положительными одновременно, т.е. переменную x j нельзя сделать базисной, если v j является базисной и принимает положительное значение, также и λi с wi . В результате решения вспомогательной задачи могут быть два случая. 1. min F ( z ) = 0, т.е. все искусственные переменные вывеz
дены из базиса. Полученное оптимальное допустимое базисное решение вспомогательной задачи ЛП является допустимым базисным решением системы (3.7) − (3.12) и, следовательно, решением задачи КП. 2. min F ( z ) > 0, т.е. среди базисных остались искусственz
ные переменные. Это означает, что система (3.7) − (3.12) не имеет допустимого базисного решения и, следовательно, задача КП не имеет решения. Итак, алгоритм решения задачи КП заключается в сле-
29 дующем. 1. Ограничения задачи КП преобразуются к виду g i ( x) ≤ 0, i = 1, m. 2. Составляется функция Лагранжа m
L( x, λ ) = f ( x) + ∑ λi g i ( x ). i =1
3. Находятся частные производные
∂L ∂L , j = 1, n; , ∂x j ∂λi
i = 1, m , и составляются условия Куна − Таккера (3.1) − (3.6). 4. Посредством введения дополнительных переменных v j , j = 1, n; wi , i = 1, m , неравенства ∂L ∂L ≥ 0, ≤0 ∂x j ∂λi преобразуются в равенства ∂L ∂L − v j = 0, + wi = 0, ∂x j ∂λi в результате получается система (3.7) − (3.12). 5. Вводятся искусственные переменные z l , составляется вспомогательная задача ЛП минимизации F ( z ) = ∑ z l при ограl
ничениях (3.7) − (3.12) с введенными неотрицательными искусственными переменными. 6. Решается вспомогательная задача ЛП симплексметодом с учетом условий дополняющей нежесткости. Если в результате решения min F ( z ) = 0, то оптимальное z
допустимое базисное решение вспомогательной задачи определяет решение x* задачи КП. Если min F ( z ) > 0, то задача КП не имеет решения. z
Пример. Решить следующую задачу КП: f ( x) = 2 x12 + 2 x1 x 2 + 2 x 22 − 4 x1 − 6 x 2 → min,
30 x1 + 2 x 2 ≤ 2, x1 ≥ 0, x 2 ≥ 0. Решение. Преобразуем g ( x) ≤ 0 :
ограничение исходной задачи
к виду
g ( x) = x1 + 2 x2 − 2 ≤ 0 . Составляем функцию Лагранжа L( x, λ ) = 2 x12 + 2 x1 x2 + 2 x22 − 4 x1 − 6 x2 + λ ( x1 + 2 x2 − 2). Находим частные производные и составляем условия Куна − Таккера: ∂L ∂L = 4 x1 + 2 x2 − 4 + λ ≥ 0, x1 ≥ 0, x1 = 0; ∂x1 ∂x1 ∂L ∂L = 2 x1 + 4 x2 − 6 + 2λ ≥ 0, x2 ≥ 0, x2 = 0; ∂x2 ∂x2 ∂L ∂L = x1 + 2 x2 − 2 ≤ 0, λ ≥ 0, λ = 0. ∂λ ∂λ Вводим дополнительные переменные v1 , v2 и w , обращающие неравенства в равенства, в результате получаем 4 x1 + 2 x2 − 4 + λ − v1 = 0, x1 ≥ 0, v1 ≥ 0, x1v1 = 0; 2 x1 + 4 x2 − 6 + 2λ − v2 = 0, x2 ≥ 0, v2 ≥ 0, x2 v2 = 0; x1 + 2 x2 − 2 + w = 0, λ ≥ 0, w ≥ 0, λw = 0. Получили систему 3-х линейных уравнений с шестью неизвестными, которые должны также удовлетворять требованиям неотрицательности и условиям дополняющей нежесткости. Вводим в первое и второе уравнения соответственно искусственные переменные z1 и z 2 : 4 x1 + 2 x2 − 4 + λ − v1 + z1 = 0, 2 x1 + 4 x2 − 6 + 2λ − v2 + z 2 = 0. Разрешая первое уравнение относительно z1 , а второе уравнение относительно z2 , находим целевую функцию F (z ) вспомогательной задачи ЛП:
31 F ( z ) = z1 + z 2 = ( −4 x1 − 2 x 2 + 4 − λ + v1 ) + + (−2 x1 − 4 x 2 + 6 − 2λ + v 2 ) = 10 − 6 x1 − 6 x 2 − 3λ + v1 + v 2 . Составляем вспомогательную задачу ЛП: F ( z ) = 10 − 6 x1 − 6 x 2 − 3λ + v1 + v 2 → min, 4 x1 + 2 x2 + λ − v1 + z1 = 4, 2 x1 + 4 x2 + 2λ − v2 + z 2 = 6, x1 + 2 x2 + w = 2, x1 , x2 , λ , v1 , v2 , w, z1 , z 2 ≥ 0. Решаем задачу симплекс-методом с учетом условий дополняющей нежесткости. В качестве базисных выберем переменные z1 , z 2 и w . Таким образом, начальный базис Б 0 = {z1 , z 2 , w} . В результате приходим к табл. 3.1. Таблица 3.1 ↓
→
Базис
Своб. член
x1
x2
λ
v1
v2
w
z1
z2
z1
4
4
2
1
−1
0
0
1
0
4/4=1
z2
6
2
4
2
0
−1
0
0
1
6/2=3
w
2
1
2
0
0
0
1
0
0
2/1=2
F
10
6
6
3
−1
−1
0
0
0
Начальное допустимое базисное решение ДБР0= = ( z1 = 4, z 2 = 6, w = 2). ДБР0 не является оптимальным, поскольку в строке целевой функции есть положительные коэффициенты Fx1 = 6 , Fx2 = 6 , Fλ = 3. Согласно условиям дополняющей нежесткости, в базис можно вводить x1 , так как v1 = 0 , либо x2 , так как v2 = 0 , но нель-
32 зя вводить λ , так как w > 0 . Находим Б1 : Fx1 > 0 → x1 вводим в базис, 6 2 4 = 3, = 2 = 1 → z1 выводим из базиса. min = 1, 2 1 4 Таким образом, Б1 = {x1 , z 2 , w} . В результате приходим к табл. 3.2. Таблица 3.2 ↓ Своб. x1 x2 v1 v2 z1 z2 λ w Базис член
→
1/4 −1/4
0
0
1/4
0
2
3/2
1/2
−1
0
−1/2
1
4/3
3/2 −1/4 1/4
0
1
−1/4
0
2/3
−1
0
−3/2
0
x1
1
1
1/2
z2
4
0
3
w
1
0
F
4
0
3
3/2
1/2
Получили ДБР1 = ( x1 = 1, z 2 = 4, w = 1). ДБР1 не является оптимальным, поскольку в строке целевой функции есть положи3 1 тельные коэффициенты Fx2 = 3 , Fλ = и Fν 1 = . 2 2 Согласно условиям дополняющей нежесткости, в базис можно вводить x2 , так как v2 = 0 , но нельзя вводить λ, так как w > 0 , и v1 , так как x1 > 0 . Находим Б 2 : Fx2 > 0 → x 2 вводим в базис, 4 1⋅ 2 2 2 1 ⋅ 2 = 2, , = = → w выводим из базиса. min 3 3 3 3 1 Таким образом, Б 2 = {x1 , x2 , z 2 } . В результате приходим к табл. 3.3.
33 Таблица 3.3 ↓ Базис
Своб. член
x1
x2
x1
2/3
1
0
1/3 −1/3
x2
2/3
0
1
−1/6 1/6
z2
2
0
0
2
F
2
0
0
2
→
λ
v1
v2
z1
z2
0
−1/3 1/3
0
0
2/3 −1/6
0
0
−1
−2
0
1
0
−1
−2
−1
0
w
2
1
2 2 Получили ДБР2 = x1 = , x2 = , z2 = 2 . ДБР2 не явля3 3 ется оптимальным, поскольку в строке целевой функции есть положительный коэффициент Fλ = 2 . Согласно условиям дополняющей нежесткости, в базис можно вводить λ, так как w = 0 . Находим Б3 : Fλ > 0 → λ вводим в базис, 2 2 ⋅ 3 = 2, = 1 = 1 → z 2 выводим из базиса. min 2 3 ⋅1 Таким образом, Б3 = {x1 , x2 , λ} . В результате приходим к табл. 3.4. Таблица 3.4 Базис
Своб. член
x1
x2
λ
v1
v2
w
z1
z2
x1
1/3
1
0
0
−1/3
1/6
0
1/3
−1/6
x2
5/6
0
1
0
1/6
−1/12
1/2
−1/6
1/12
34 Окончание табл. 3.4
λ
1
0
0
1
0
−1/2
−1
0
1/2
F
0
0
0
0
0
0
0
−1
−1
(
)
Получили ДБР3 = x1 = 1 3 , x 2 = 5 6 , λ = 1 . ДБР3 является оптимальным решением. Таким образом, вспомогательная задача ЛП решена. Поскольку min F ( z ) = 0, то оптимальное ДБР вспомогаz
тельной задачи определяет решение x* задачи КП. Поэтому полагаем x * = x1* = 1 3 , x *2 = 5 6 , 1 1 5 25 1 5 1 f * = f ( x* ) = 2 ⋅ + 2 ⋅ ⋅ + 2 ⋅ − 4 ⋅ − 6 ⋅ = −4 . 9 3 6 36 3 6 6 1 1 5 Ответ: x * = , , f * = −4 . 6 3 6
(
)
Задачи 1. Решить задачу квадратичного программирования f ( x) = 2 x12 + 3 x22 + 4 x1 x2 − 6 x1 − 3 x2 → min , x1 + x2 ≤ 1 , 2 x1 + 3 x2 ≤ 4 , x1 ≥ 0 , x2 ≥ 0. 2. Решить задачу квадратичного программирования f ( x) = x1 + 2 x2 − x22 → max , 3 x1 + 2 x2 ≤ 6 , x1 + 2 x2 ≤ 4 , x1 ≥ 0 , x2 ≥ 0.
35 4. ЧИСЛЕННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ (МИНИМИЗАЦИИ) УНИМОДАЛЬНЫХ ФУНКЦИЙ Унимодальными называются функции, имеющие на заданном отрезке ∆ = [a, b] единственный экстремум. На практических занятиях рассматриваются унимодальные функции с минимумом. Свойство унимодальности обеспечивает выполнение очень важного для поиска точки минимума x∗ условия. Пусть f(x) унимодальна на ∆, x1 , x2 ∈ ∆, x1 < x2 . Тогда, если f ( x1 ) ≤ f ( x2 ) , то x* ≤ x2 ; если же f ( x1 ) ≥ f ( x2 ) , то x* ≥ x1 . Таким образом, на основании вычисленных значений f(x) можно указать отрезок ∆′ = [a′, b′], в котором заключена точка x∗ , меньшей длины, чем исходный отрезок ∆ = [a, b], т.е. L′ = b′ − a′ < L = b − a. Говорят, что точка минимума x∗ локализована в отрезке [a′, b′], при этом сам отрезок называют отрезком локализации минимума. На практических занятиях рассматриваются алгоритмы (методы) минимизации унимодальных функций, использующие информацию лишь о значениях функции (алгоритмы нулевого порядка). При записи алгоритмов и решении задач используются следующие обозначения: ∆ i = [ai , bi ] и Li = bi − ai , i = 1,2,", − соответственно отрезок локализации и его длина после i вычислений значений f(x), ∆ 0 ≡ [a, b], L0 ≡ b − a; N – количество вычислений значений f(x). Исходными данными для решения задачи минимизации унимодальной функции являются исходный отрезок локализации ∆ 0 и N, результатами решения − итоговый отрезок локализации ∆ N , а также оценки точки минимума x∗ и величины минимума f *.
36 4.1. ПАССИВНЫЙ МЕТОД ПОИСКА МИНИМУМА
Метод оптимизации называется пассивным, когда все точки xi , i = 1, N , вычислений характеристик задачи (в данном случае значений целевой функции) выбираются одновременно до начала вычислений. Если N четное, т.е. N = 2l , l = 1,2," , то наилучшее (в смысле максимального уменьшения длины отрезка локализации) размещение точек xi , i = 1, N , получается разбиением их на равноотстоящие ε-пары, т.е. x2 j −1 = a +
ε ε b−a b−a j − , x2 j = a + j + , j = 1, N 2, (4.1) N 2 +1 N 2 +1 2 2
где ε − некоторое малое положительное число. При этом b−a L ε ε LN = + = 0 + . N 2 +1 2 l +1 2 Если N нечетное, т.е. N = 2l + 1, l = 1,2, ", то наилучшим является равномерное распределение точек, т.е. xi = a +
b−a i, i = 1, N . N +1
(4.2)
При этом L b−a = 0 . N +1 l +1 Нетрудно заметить, что использование нечетного числа точек при пассивном методе поиска неэффективно. После определения точек xi , i = 1, N , вычисляются значеLN = 2
ния функции f ( xi ) . Пусть
f ( xk ) = min f ( xi ). Тогда, полагая i =1, N
x0 = a, x N +1 = b , определяется итоговый отрезок локализации ∆ N = [ xk −1 , xk +1 ] . Точка xk принимается за аппроксимацию
37 (оценку) точки минимума x∗, значение функции f ( xk ) − за оценку f * = f ( x* ) , т.е. x* ≅ xk , f * ≅ f ( xk ). Пример. Определить с помощью пассивного поиска ми1 нимум функции f ( x) = x + , заданной на отрезке ∆ = [0,2] : а) x при N=6, ε=0,1; б) при N=7. Решение. а) N=6, ε =0,1. Определяем пары точек x2 j −1 , x2 j с помощью соотношения (4.1): 2−0 0.1 x 2 j −1 = 0 + j− = 0,5 j − 0,05, j = 1,3; 3 +1 2 2−0 0.1 x2 j = 0 + j+ = 0,5 j + 0,05, j = 1,3. 3 +1 2 Результаты вычислений x и f (x ) заносим в табл. 4.1. Таблица 4.1 Номер отсчета x
1
2
3
4
5
6
0,45
0,55
0,95
1,05
1,45
1,55
f (x )
2,67
2,37
2,0026
2,0024
2,14
2,20
Поскольку f ( x4 ) = min f ( xi ) , то полагаем ∆6=[x3, x5]= i =1,6
=[0,95; 1,45], x ≅ x 4 = 1,05, f * ≅ f ( x 4 ) = 2,0024. ∗
Ответ: ∆ 6 = [0,95; 1,45] , x * ≅ 1,05, f * ≅ 2,0024. б) N=7. Определяем xi помощью соотношения (4.2): 2−0 xi = 0 + i = 0, 25i, i = 1,7. 7 +1
38 Результаты вычислений x и f (x ) заносим в табл. 4.2. Таблица 4.2 Номер отсчета x
1
2
3
4
5
6
7
0,25
0,5
0,75
1
1,25
1,5
1,75
f (x )
4,25
2,50
2,08
2,00
2,05
2,17
2,32
Поскольку
f ( x4 ) = min f ( xi ) , то полагаем ∆7=[x3, x5]= i =1, 7
=[0,75, 1,25], x* ≅ x4 = 1, f * ≅ f ( x4 ) = 2 . Ответ: ∆ 7 = [0,75; 1, 25] , x* ≅ 1, f * ≅ 2 . 4.2. АКТИВНЫЕ МЕТОДЫ ПОИСКА МИНИМУМА
Метод оптимизации называется активным, если точки xi , i = 1, N , вычислений характеристик задачи (в данном случае значений целевой функции) выбираются последовательно, с учетом информации, полученной на предыдущих шагах. Для активных (последовательных) методов поиска принято указывать в используемых обозначениях номер итерации с помощью надстрочного индекса в круглых скобках. В соответствии с этим отрезок локализации после j итераций будет обозначаться ∆( j ) = [a ( j ) , b ( j ) ] . Если при этом произведено i вычислений значений f(x), то ∆( j ) ≡ ∆ i , a ( j ) ≡ ai , b ( j ) ≡ bi . На практических занятиях рассматриваются такие активные методы поиска, как метод дихотомии, метод Фибоначчи и метод золотого сечения. Для каждого из этих методов на j-й, j =1,2,…, итерации рассматривается пара точек x1( j ) и x2( j ) , при этом x1( j ) < x2( j ). Значения функции в этих точках будут обозначаться соответственно f1( j ) и f 2( j ) .
39 Метод дихотомии (половинного деления) В данном случае общее количество вычислений f(x) четное, т.е. N = 2l , l = 1,2, " , на j-м шаге (j-й итерации) производится пара вычислений x1( j ) и x2( j ) , отстоящих на расстоянии ε / 2 по обе стороны от середины текущего отрезка локализации [a ( j −1) , b ( j −1) ] . Если f1( j ) ≤ f 2( j ) , то отбрасывается часть отрезка,
расположенная справа от x2( j ) ; если f1( j ) > f 2( j ) , то отбрасывается
часть отрезка, расположенная слева от x1( j ) . Используются два условия окончания вычислений: а) выполнение заданного количества вычислений N; б) достижение заданной величины δ уменьшения отрезка локализации. Итак, алгоритм поиска минимума унимодальной функции методом дихотомии заключается в следующем. 1. Задаются N (либо δ) и ε, полагается j=1. 2. На j-й итерации вычисляются ε ε 1 1 x1( j ) = (a ( j −1) + b ( j −1) ) − , x2( j ) = (a ( j −1) + b ( j −1) ) + , 2 2 2 2 f1( j ) = f ( x1( j ) ),
f 2( j ) = f ( x2( j ) ).
Если f1( j ) ≤ f 2( j ) , то a ( j ) = a ( j −1) , b ( j ) = x2( j ) . Если f1( j ) > f 2( j ) , то a ( j ) = x1( j ) , b ( j ) = b ( j −1) . 3. Проверяется условие окончания вычислений: L j а) j=N/2 либо б) 2 ≤ δ . L0 Если оно выполняется, то определяются итоговый отрезок локализации, оценки точки минимума x∗ и величины минимума f * = f ( x* ) , и вычисления завершаются. Если условие не выполняется, то полагается j = j + 1 и
40 осуществляется переход к п.2. Отметим, что для определения оценки точки минимума надо рассмотреть все исследованные точки итогового отрезка локализации и выбрать ту из них, для которой значение функции минимально. Пример. Определить методом дихотомии минимум функции f ( x) = x 4 − 6 x 2 + 10 , заданной на отрезке ∆=[1,3], при N=8, ε=0,1. Решение. В данном случае будут выполнены N/2=4 итерации. Результаты вычислений заносим в табл. 4.3. Таблица 4.3 Номер итерации
x1( j )
x2( j )
f1( j )
0
—
—
—
1
1,95
2,05
1,644
2
1,475
1,575
3
1,713
4
1,594
≤ >
f 2( j )
a( j)
b( j )
—
1
3
<
2,446
1
2,05
1,680
>
1,270
1,475
2,05
1,813
1,004
<
1,082
1,475
1,813
1,694
1,211
>
1,017
1,594
1,813
Поскольку j=N/2=4, то вычисления завершаются. Точка минимума локализована на отрезке ∆ 8 = [1,594; 1,813] . На данном отрезке исследованы 4 точки: a (4) = 1,594 → f (a (4) ) = 1, 211; b (4) = 1,813 → f (b (4) ) = 1, 082; * (3) * (3) x ≅ x1 = 1, 713, f ≅ f ( x1 ) = 1, 004. (4) (4) x2 = 1, 694 → f ( x2 ) = 1, 017; x1(3) = 1, 713 → f ( x1(3) ) = 1, 004; Ответ: ∆ 8 = [1,594; 1,813] , x * ≅ 1,713, f * ≅ 1,004 .
41 Метод Фибоначчи Метод Фибоначчи является наилучшим (в смысле максимального уменьшения длины отрезка локализации) среди активных методов поиска. Согласно методу Фибоначчи, на первом шаге (первой итерации) проводятся два вычисления значений f(x) в точках x1(1) и x2(1) (причем x1(1) < x2(1) ), расположенных симметрично относительно середины отрезка ∆ 0 = [a, b] . По результатам вычислений одна из частей отрезка ( [a, x1(1) ] либо [ x2(1) , b] ) отбрасывается, при этом одна из точек (соответственно x2(1) либо x1(1) ) уже проведенных вычислений остается внутри отрезка ∆ 2 ≡ ∆(1) . На каждом последующем шаге (последующей итерации) точка очередного вычисления выбирается симметрично оставшейся точки. Таким образом, на первой итерации проводятся два вычисления значений f(x), на каждой последующей − одно вычисление. Поэтому при заданном количестве вычислений N будет выполнено N − 1 шагов (итераций). При вычислении x1( j ) и x2( j ) , j = 1, N − 1, используются числа Фибоначчи, определяемые следующим образом: F0 = F1 = 1, Fk = Fk −1 + Fk − 2 , k = 2,3,.... Условием окончания вычислений является выполнение заданного количества вычислений N. Итак, алгоритм поиска минимума унимодальной функции методом Фибоначчи заключается в следующем. 1. Задается N, определяются числа Фибоначчи Fk, k = 0, N + 1, выбирается ε из условия b−a ε< . FN +1 Полагается j=1.
42 2. На j-й итерации вычисляются x1( j ) = a ( j −1) + x 2( j )
=a
( j −1)
+
FN − j −1 FN − j +1 FN − j FN − j +1
(b ( j −1) − a ( j −1) ) − (b
( j −1)
−a
( j −1)
(−1) N − j +1 ε, FN − j +1
(−1) N − j +1 ε, )+ FN − j +1
f1( j ) = f ( x1( j ) ), f 2( j ) = f ( x 2( j ) ). Если f1( j ) ≤ f 2( j ) , то a ( j ) = a ( j −1) , b ( j ) = x2( j ) , x2( j +1) = x1( j ) . Если f1( j ) > f 2( j ) , то a ( j ) = x1( j ) , b ( j ) = b ( j −1) , x1( j +1) = x2( j ) . 3. Проверяется условие окончания вычислений j = N − 1. Если оно выполняется, то определяются итоговый отрезок локализации, оценки точки минимума x∗ и величины минимума f * = f ( x* ) и вычисления завершаются. Если условие не выполняется, то полагается j=j+1 и осуществляется переход к п.2. Примечание. На j-й, j>1, итерации вычисляется только та точка xi( j ) , i = 1,2, которая не была определена на предыдущей итерации. Отметим, что оценкой точки минимума x* является та из точек xi( N −1) , i = 1,2, которая осталась внутри итогового отрезка локализации ∆N . Пример. Определить методом Фибоначчи минимум функции f ( x) = x 4 − 6 x 2 + 10 , заданной на отрезке ∆=[1,3], при N=4. Решение. В данном случае будут выполнены N − 1 = 3 итерации.
43 Определяем числа Фибоначчи Fk , k = 1,5 : F0 = F1 = 1, F2 = 2, F3 = 3, F4 = 5, F5 = 8. b − a 3 −1 ε< = = 0,25. F5 8 Выбираем ε=0,1. Первая итерация F F (−1) N ε = 1 + 2 (3 − 1) − x1(1) = a ( 0 ) + N − 2 (b (0 ) − a ( 0 ) ) − FN FN F4 − x
(1) 2
=a +
(−1) 4 2 ⋅ 2 − 0,1 ⋅ 0,1 = 1 + = 1 + 0, 78 = 1, 78, F4 5
( 0)
FN −1 (0) F (−1) N ( 0) + ε = 1 + 3 (3 − 1) + (b − a ) + FN FN F4
(−1) 4 3 ⋅ 2 + 0,1 ⋅ 0,1 = 1 + = 1 + 1, 22 = 2,22. F4 5
Вторая итерация FN −3 (1) F (−1) N −1 (2) (1) (1) x1 = a + (b − a ) − ε = 1 + 1 (2,22 − 1) − FN −1 FN −1 F3 −
(−1) 3 1 ⋅ 1,22 + 0,1 ⋅ 0,1 = 1 + = 1 + 0, 44 = 1,44. F3 3
Третья итерация F F (−1) N − 2 ε = 1,44 + 1 (2,22 − x 2( 3) = a ( 2) + N −3 (b ( 2) − a ( 2) ) + FN − 2 FN − 2 F2 (−1) 2 1 ⋅ 0,78 + 0,1 − 1,44) + ⋅ 0,1 = 1,44 + = 1,44 + 0, 44 = 1,88. F2 2 Результаты вычислений заносим в табл. 4.4.
44 Таблица 4.4 Номер ≤ ( j) a( j) b( j ) x2( j ) f1( j ) f 2( j ) итерации x1 > 0 — — — — 1 3 1 1,78* 2,22* 1,028 < 4,719 1 2,22 2 1,44* 1,78 1,858 > 1,028 1,44 2,22 3 1,78 1,88* 1,028 < 1,286 1,44 1,88 Примечание. Знаком * помечаем точки xi( j ) , i=1,2, вычисляемые на j-й итерации. Поскольку j=N−1=3, то вычисления завершаются. Точка минимума локализована на отрезке ∆ 4 = [1, 44; 1,88] , x * ≅ x1(3) = 1,78, f * ≅ f ( x1( 3) ) = 1,028 . Ответ: ∆ 4 = [1,44; 1,88] , x * ≅ 1,78, f * ≅ 1,028 . Метод золотого сечения Недостатком наиболее эффективного метода Фибоначчи является то, что должно быть задано количество вычислений N. Метод золотого сечения почти столь же эффективен, как и метод Фибоначчи, но при этом не зависит от N. Алгоритм поиска по методу золотого сечения определяется тем же правилом симметрии, что и алгоритм по методу Фибоначчи: на первой итерации выбираются две точки, расположенные симметрично относительно середины исходного отрезка; на каждой последующей итерации выбирается одна точка, расположенная симметрично оставшейся точки. Разница заключается в выборе точек. Метод золотого сечения основан на делении отрезка локализации «золотым сечением», т.е. таком делении, когда отношение большей части отрезка ко всему отрезку равно отношению меньшей части к большей A
C
B
45 AC CB = . AB AC При таком делении используются две дроби Фибоначчи 3− 5 5 −1 Ф1 = ≅ 0,382, Ф2 = ≅ 0,618, 2 2 удовлетворяющие условиям Ф1 + Ф2 = 1, Ф1 = (Ф2 ) 2 . В случае метода золотого сечения используются два условия окончания вычислений: а) выполнение заданного количества вычислений N, б) достижение заданной величины δ уменьшения отрезка локализации. Итак, алгоритм поиска минимума унимодальной функции методом золотого сечения заключается в следующем. 1. Задается N (либо δ), полагается j=1. 2. На j-й итерации вычисляются x1( j ) = a ( j −1) + Ф1 (b ( j −1) − a ( j −1) ), x2( j ) = a ( j −1) + Ф2 (b ( j −1) − a ( j −1) ), f1( j ) = f ( x1( j ) ), f 2( j ) = f ( x2( j ) ). Если f1( j ) ≤ f 2( j ) , то a ( j ) = a ( j −1) , b ( j ) = x2( j ) , x2( j +1) = x1( j ) . Если f1( j ) > f 2( j ) , то a ( j ) = x1( j ) , b ( j ) = b ( j −1) , x1( j +1) = x2( j ) . 3. Проверяется условие окончания вычислений: L j +1 а) j = N − 1 либо б) ≤ δ. L0 Если оно выполняется, то определяются итоговый отрезок локализации, оценки точки минимума x∗ и величины минимума f * и вычисления завершаются. Если условие не выполняется, то полагается j=j+1 и осуществляется переход к п.2. Пример. Определить методом золотого сечения минимум
46 функции f ( x) = x 4 − 6 x 2 + 10 , заданной на отрезке ∆=[1,3], при N=4. Решение. В данном случае будут выполнены N − 1 = 3 итерации. Результаты вычислений заносим в табл. 4.5. Таблица 4.5 Номер итераx1( j ) x2( j ) f1( j ) ции 0 — — — * * 1 1,764 2,236 1,012 2 1,472* 1,764 1,694 3 1,764 1,944* 1,012
≤ > < > <
f 2( j )
a( j )
b( j )
— 4,999 1,012 1,607
1 1 1,472 1,472
3 2,236 2,236 1,944
Поскольку j = N − 1 = 3 , то вычисления завершаются. Точка минимума локализована на отрезке (3) * ( 3) ∗ ∆ 4 = [1,472; 1,944] , x ≅ x1 = 1,764, f ≅ f ( x1 ) = 1,012. Ответ: ∆ 4 = [1,472; 1,944] , x * ≅ 1,764, f * ≅ 1,012 . Задачи 1. Определить с помощью пассивного поиска минимум функции f (x) = x 2 − 3x + 2 , заданной на отрезке ∆ = [0, 4]: а) при N=8, ε = 0,1 ; б) при N=9. 2. Определить методом дихотомии минимум функции f (x) = x2 − 3x + 2 , заданной на отрезке ∆ = [0, 4] , при N=8, ε = 0,1 . 3. Определить методом Фибоначчи минимум функции f (x) = x 2 − 3x + 2 , заданной на отрезке ∆ = [0, 4], при N=4, ε = 0,2 . 4. Определить методом золотого сечения минимум функции f (x) = x2 − 3x + 2 , заданной на отрезке ∆ = [0, 4] , при N=4.
47 5. ЧИСЛЕННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ МНОГОЭКСТРЕМАЛЬНЫХ ФУНКЦИЙ На практическом занятии рассматриваются методы отыскания глобального минимума функций одной переменной. Предполагается, что заданы исходный отрезок ∆ = [a, b] и количество вычислений N значений функции f (x ) . Требуется определить оценки точки глобального минимума x* и величины минимума f * = f ( x* ) . Простейшим методом глобальной оптимизации является так называемое сканирование (метод перебора), которое состоит в последовательном переборе точек xi ∈ ∆, i = 1, N . В простейшем случае точки выбираются равномерно. При этом исходный отреb−a зок ∆ разбивается на N интервалов длины h = , средними N точками которых и являются xi . Таким образом, h b−a xi = a + (i − 1)h + = a + (2i − 1), i = 1, N . (5.1) 2 2N При записи алгоритмов и решении задач используются следующие обозначения: xi* и f i* , i=1,2,…, − соответственно оценки точки глобального минимума и величины глобального минимума, полученные после i вычислений; α − любое число, не принадлежащее исходному отрезку [a, b] , т.е. α ∉ [a, b] ;
β − число, заведомо большее f * , т.е. β > f * . Алгоритм поиска глобального минимума методом сканирования заключается в следующем. 1. Задаются N, α и β ; полагается x0* = α , f 0* = β , i = 1 . 2. Вычисляются xi и f ( xi ) . 3. Полагается
48 xi , если f ( xi ) < f i*−1 , xi = xi*−1 , если f ( xi ) ≥ f i*−1 ; * * f ( xi ), если f ( xi ) < f i −1 , fi = f i*−1 , если f ( xi ) ≥ f i*−1 . 4. Проверяется условие окончания вычислений i=N. Если оно выполняется, то полагается x* ≅ x*N , f * ≅ f N* и вычисления завершаются. Если условие не выполняется, то полагается i=i+1 и осуществляется переход к п.2. Пример. Определить с помощью сканирования минимум f ( x) = 2 x 4 − 8 x 3 + 8 x 2 − x , заданной на отрезке функции ∆ = [−1,4] , при N=10. Решение. Задаем α=10, β=1000. Определяем xi с помощью соотношения (5.1): 4 +1 x i = −1 + (2i − 1) = −1,25 + 0,5i, i = 1, 10. 20 Результаты вычислений заносим в табл. 5.1. Таблица 5.1 *
Номер отсчета 1 2 3 4 5 6 7
xi
f ( xi )
−0,75 −0,25 0,25 0,75 1,25 1,75 2,25
9,26 0,883 0,133 1,01 0,508 −1,37 −1,62
≥ < < < < > > < <
f i*−1
xi*−1
1000 9,26 0,883 0,133 0,133 0,133 −1,37
10 −0,75 −0,25 0,25 0,25 0,25 1,75
49 Окончание табл. 5.1 8 9 10
2,75 3,25 3,75
5,76 29,8 82,4
> > >
−1,62 −1,62 −1,62 −1,62
2,25 2,25 2,25 2,25
Поскольку i=10=N, то вычисления завершаются. Ответ: x * ≅ 2,25, f * ≅ −1,62 . Модификацией сканирования с целью уменьшения количества вычислений является поиск (сканирование) с уточнением. В этом случае процедура равномерного сканирования выполняется n раз. На 1-м этапе осуществляется сканирование во всей зоне поиска (на всем отрезке) ∆( 0 ) = [a ( 0 ) ≡ a, b (0 ) ≡ b] . При этом выполняется N1 вычислений, т.е. исходный отрезок разбивается на b−a N1 отрезков длины h (1) = , в средних точках xi(1) которых N1 вычисляются значения функции f (x ) . В результате определяются оценки x*N(11) и f N*1(1) . На 2-м этапе осуществляется сканирование на отрезке ∆ = [a (1) , b (1) ] , границы которого определяются следующим образом. Пусть x*N(11) = xk(1) , k ∈ {1,2, " , N1 }, тогда (1)
a (1) = xk(1−)1 , b (1) = xk(1+)1 , здесь принято, что x0(1) ≡ a (0 ) , x N(11) +1 ≡ b ( 0 ) . Отметим, что x0*( 2 ) = x *N(11) , f 0*( 2 ) = f N*1(1) . На 2-м этапе выполняется N 2 вычислений, в результате которых определяются оценки x*N(22 ) и f N*2( 2 ) .
50 Затем выполняются 3-й, 4-й, …, n-й этапы. Поскольку общее количество вычислений равно N, то N j , j = 1, n , должны удовлетворять условию n
∑ N j = N.
j =1
Итоговыми оценками точки глобального минимума x* и величины глобального минимума f * являются величины x*N( n ) и n
f N*( n) , n
т.е. x* ≅ x*N( n ) , f * ≅ f N*( n ) . n
n
Пример. Определить с помощью поиска с уточнением минимум функции f ( x) = 2 x 4 − 8 x 3 + 8 x 2 − x , заданной на отрезке ∆ = [−2, 4] , при N=10, n=2, N1 =6, N 2 =4. Решение. Первый этап Задаем α=10, β=1000. Определяем xi(1) с помощью следующего соотношения: b−a xi(1) = a + (2i − 1), i = 1, N1 . 2 N1 В итоге получаем 4+2 xi(1) = −2 + (2i − 1) = −2,5 + i, i = 1,6. 12 Результаты вычислений заносим в табл. 5.2. Таблица 5.2 Номер отсчета 1 2 3
xi(1)
f ( xi(1) )
−1,5 −0,5 0,5
56,6 3,63 0,625
≥ < < < <
f i*−1(1)
xi*−(11)
1000 56,6 3,63
10 −1,5 −0,5
51 Окончание табл. 5.2 4 5 6
1,5 2,5 3,5
−0,375 0,625 51,6
< > >
0,625 −0,375 −0,375 −0,375
0,5 1,5 1,5 1,5
Поскольку i = 6 = N1 , то вычисления завершаются. В итоге получаем x6∗(1) = x 4(1) = 1,5, f 6∗(1) = −0,375. Второй этап Определяем ∆(1) = [ x3(1) , x5(1) ] = [0,5; 2,5]. Полагаем x0*( 2) = 1,5, f 0*( 2) = −0,375. Определяем xi( 2) с помощью следующего соотношения: b (1) − a (1) (2i − 1), i = 1, N 2 . x =a + 2N 2 В итоге получаем (2) i
x i( 2 ) = 0 ,5 +
(1)
2 ,5 − 0 ,5 ( 2 i − 1) = 0 , 25 + 0 ,5 i , 8
i = 1, 4 .
Результаты вычислений заносим в табл. 5.3. Таблица 5.3 Номер отсчета 1 2 3 4
xi( 2 )
f ( xi( 2 ) )
0,75 1,25 1,75 2,25
1,01 0,508 −1,37 −1,62
≥ < > > < <
f i*−(12)
xi*−(12)
−0,375 −0,375 −0,375 −1,37 −1,62
1,5 1,5 1,5 1,75 2,25
Поскольку i=4= N 2 , то вычисления завершаются. Ответ: x * ≅ 2,25, f * ≅ −1,62 .
52 Развитием и обобщением поиска с уточнением является поиск с разведкой. В этом случае исходный отрезок локализации разбивается на 2 равных по величине отрезка (зоны) D1 и D2 : a + b a + b D1 = a, = [a1 , b1 ] , D2 = , b = [a 2 , b2 ]. 2 2 На первом этапе в каждой из зон проводится разведка. Для этого из общего количества вычислений N выделяется N 0 вычислений (в каждой из зон выполняется по N 0 / 2 вычислений). Цель разведки состоит в выборе одной из зон для дальнейших исследований. Разведка заключается в сканировании каждой из зон. Обозначим точки, в которых производятся вычисления в зонах D1 и D2 , через yi и zi , i = 1, N 0 / 2 , соответственно. В результате вычислений определяются оценки точек минимума y *N значений минимума f ( y *N
0
/ 2)
и f ( z *N
0
/2 )
0
/2
и z *N
0
/2 ,
и средние значения M 1
и M 2 f (x ) в зонах D1 и D2 соответственно: N0 2
M1 = ∑
i =1
N0 2 f (z ) f ( yi ) i , M2 = ∑ . N0 2 i =1 N 0 2
Если M 1 < M 2 , то для дальнейших исследований выбирается зона D1 , в противном случае − зона D2 . На втором этапе осуществляется сканирование выбранного отрезка ( D1 или D2 ), при этом выполняется N−N0 вычислений. В качестве начальных значений искомых точки глобального минимума и значения глобального минимума выбираются полученные на первом этапе оценки, т.е. x0* = ( y *N
0
/2
или z *N
0
/ 2 ),
f 0* = ( f ( y *N
0/2
) или f ( z *N
0
/2 )
).
53 В результате определяются x*N − N и f N* − N = f ( x*N − N ) , ко0
0
0
торые считаются оценками искомых величин, т.е. x* ≅ x*N − N , f * ≅ f N*− N . 0
0
Пример. Определить с помощью поиска с разведкой минимум функции f ( x) = 2 x 4 − 8 x 3 + 8 x 2 − x , заданной на отрезке ∆ = [−2,4] , при N=10, N 0 =6. Решение. Определяем D1 и D2 : D1 = [−2, 1], D2 = [1, 4]. Первый этап Проводим разведку в D1. Задаем α=10, β=1000. Определяем yi с помощью следующего соотношения: b − a1 y i = a1 + 1 (2i − 1), i = 1, N 0 2. N0 В итоге получаем 1+ 2 y i = −2 + (2i − 1) = −2,5 + i, i = 1,3. 6 Результаты вычислений заносим в табл. 5.4. Таблица 5.4 Номер отсчета 1 2 3
yi
f ( yi )
−1,5 −0,5 0,5
56,6 3,63 0,625
≥ < < < <
f i*−1
yi*−1
1000 56,6 3,63 0,625
10 −1,5 −0,5 0,5
Поскольку i=3= N 0 / 2 , то вычисления завершаются. В итоге получаем
54 y 3* = 0,5, f ( y3* ) = 0,625, 56,6 + 3,63 + 0,625 M1 = = 20,3. 3 Проводим разведку в D2 . Задаем α=10, β=1000. Определяем zi с помощью следующего соотношения: b − a2 zi = a2 + 2 (2i − 1), i = 1, N 0 2. N0 В итоге получаем 4 −1 zi = 1 + (2i − 1) = 0,5 + i, i = 1,3. 6 Результаты вычислений заносим в табл. 5.5. Таблица 5.5 Номер отсчета 1 2 3
zi
f ( zi )
1,5 2,5 3,5
−0,375 0,625 51,6
≥ < < > >
f i*−1
zi*−1
1000 −0,375 −0,375 −0,375
10 1,5 1,5 1,5
Поскольку i=3= N 0 / 2 , то вычисления завершаются. В итоге получаем z 3* = 1,5, f ( z 3* ) = −0,375, − 0,375 + 0,625 + 51,6 = 17,3. 3 Поскольку M 1 > M 2 , то выбираем для дальнейшего исследования D2 . M2 =
Второй этап Полагаем x0* = 1,5, f 0* = −0,375. Определяем xi с помощью следующего соотношения:
55 b2 − a 2 (2i − 1), i = 1, N − N 0 . 2(N − N 0 ) В итоге получаем xi = a 2 +
xi = 1 +
4 −1 (2i − 1) = 0,625 + 0,75i, i = 1,4. 8
Результаты вычислений заносим в табл. 5.6. Таблица 5.6 Номер отсчета 1 2 3 4
xi
f ( xi )
1,375 2,125 2,875 3,625
1,02 −1,98 9,78 65,8
≥ < > < > >
f i*−1
xi*−1
−0,375 −0,375 −1,98 −1,98 −1,98
1,5 1,5 2,125 2,125 2,125
Поскольку i=4= N − N 0 , то вычисления завершаются. Ответ: x * ≅ 2,125, f * ≅ −1,98. Задачи 1. Определить с помощью сканирования минимум функции f ( x) = − exp {−2( x − 1) 2 } − 2 exp{−4( x − 3, 2) 2 }, заданной на отрезке ∆ = [0, 4] , при N=10. 2. Определить с помощью поиска с уточнением минимум функции f ( x) = − exp {−2( x − 1) 2 } − 2 exp{−4( x − 3, 2) 2 }, заданной на отрезке ∆ = [0, 4] , при N=10, n=2, N1=6, N2=4. 3. Определить с помощью поиска с разведкой минимум функции f ( x) = − exp {−2( x − 1) 2 } − 2 exp{−4( x − 3, 2) 2 }, заданной на отрезке ∆ = [0, 4] , при N=10, N0=6.
56 6. ГРАДИЕНТНЫЕ МЕТОДЫ Градиентные методы относятся к группе методов спуска, являющихся численными методами решения задач безусловной минимизации f ( x) → min, x ∈ Rn . Исходя из заданной начальной точки x ( 0 ) , методы спуска позволяют строить последовательность точек x (1) , x ( 2 ) ,…, удовлетворяющих условию f ( x ( k ) ) < f ( x ( k −1) ), k = 1,2,... (6.1) В общей схеме методов спуска последовательность x ( 0 ) , x (1) , x ( 2 ) ,… приближений к точке минимума x* выбирается по правилу x ( k ) = x ( k −1) + λk h ( k ) , k = 1,2,..., где h (k ) − вектор, определяющий направление убывания функции f (x ) (направление спуска) в точке x ( k −1) ;
λk − скаляр, определяющий длину шага вдоль h (k ) . Обычно название метода спуска определяется способом выбора h (k ) , а его различные варианты связываются с различными способами выбора λk . Градиентные методы основаны на идее замены минимизируемой функции в окрестности очередной точки x (k ) линейной частью ее разложения в ряд Тейлора. В градиентных методах в качестве направления спуска h (k ) выбирается антиградиент функции f (x ) в точке x ( k −1) , т.е. x ( k ) = x ( k −1) − λ k f ′( x ( k −1) ), k = 1,2,... Таким образом, данные методы относятся к методам первого порядка. Градиентные методы отличаются друг от друга способами
57 выбора параметра λk . На практическом занятии рассматриваются два способа: первый называется методом с дроблением шага, второй – методом наискорейшего спуска. .
Метод с дроблением шага В данном случае в качестве h (k ) используется нормированный антиградиент − f ′( x ( k −1) ) f ′( x ( k −1) ) , т.е. x (k ) определя-
(
)
ется из соотношения x ( k ) = x ( k −1) − λk
f ′( x ( k −1) ) f ′( x ( k −1) )
.
Величина λk выбирается так, чтобы выполнялось условие (6.1). Процесс выбора λk осуществляется следующим образом. 1 Выбираются некоторые константы α > 0 и 0<β<1 (часто β = ). 2 На k-й, k=1,2,…, итерации проверяется выполнение условия (6.1) при λk =α. Если оно не выполняется, то производится дробление шага, т.е. полагается λk =αβ и вновь проверяется выполнение условия (6.1). Процесс дробления, т.е. умножение текущего значения λk на β, продолжается до тех пор, пока условие (6.1) не окажется выполненным. Алгоритм решения задачи безусловной минимизации методом с дроблением шага заключается в следующем. 1. Задаются α, β, ε, x ( 0 ) ; вычисляются f ( x ( 0 ) ) , f ′( x ( 0 ) ) , f ′( x ( 0 ) ) , полагается k=1. 2. Полагается λk =α. 3. Вычисляются + ∆x (k } , f ( x (k ) ).
∆x ( k ) = −λ k
f ′( x ( k −1) ) , x ( k ) = x ( k −1) + ( k −1) ′ f (x )
58 4. Проверяется условие выбора λ k : f ( x ( k ) ) < f ( x ( k −1) ). Если оно выполняется, то осуществляется переход к п.5. Если условие не выполняется, то полагается λ k = λ k β и осуществляется переход к п.3. 5. Вычисляются f ′( x (k ) ) , f ′( x (k ) ) . 6. Проверяется условие окончания вычислений f ′( x ( k ) ) ≤ ε . Если
оно
выполняется,
то
полагается
x* ≅ x ( k ) ,
f * ≅ f ( x ( k ) ) и вычисления завершаются. Если условие не выполняется, то полагается k=k+1 и осуществляется переход к п.2. Отметим, что помимо рассмотренного применяется алгоритм, в котором в качестве начального значения λk используется конечное значение λk −1 . При этом в п.1 рассмотренного алгоритма добавляется определение λ0 : полагается λ0 = α ; в п.2 алгоритма заменяется определение λk : полагается λk = λk −1. Пример. Решить методом с дроблением шага задачу безусловной минимизации f ( x) = x12 + 2 x22 − 4 x1 + 2 x2 → min 1 при α = 1, β = , ε = 0,3, x ( 0 ) = (1, 0). 2 Решение. Находим первые частные производные f (x ) : ∂f ∂f = 2 x1 − 4, = 4 x2 + 2. ∂x1 ∂x2 Используем второй (упрощенный) вариант метода с дроблением шага. Результаты вычислений заносим в табл. 6.1.
59 Таблица 6.1 Ном. итер.
λ
∆x1
∆x 2
x1 1
0
−3
1
1
0,707
−0,707
1,71
−0,707
−4,32
2
1
0,580
0,820
2,29
0,113
−3,67
0
x2
∂f ∂x1
∂f ∂x 2
f′
−2
2
2,83
−0,586
−0,828
1,01
0
0,812
0,812
0
−0,188
0,188
f (x )
f ( x ( 2) ) > f ( x (1) ) → λ = λβ = 0.5 2
0,5
0,290
0,410
2,00
−0,297
−4,42
3
0,5
0
−0,5
2,00
−0,797
−4,32
f ( x ( 3) ) > f ( x ( 2 ) ) → λ = λβ = 0.25 3
(
0,25
0
2,00
−0,25
−0,547
−4,496
Поскольку условие окончания вычислений выполнено f ′( x ) = 0,188 < ε = 0,3 , то вычисления завершаются.
)
( 3)
В результате решения задачи безусловной минимизации получаем x * ≅ x (3) = (2; − 0,547), f * ≅ f ( x (3) ) = −4,496. Ответ: x * ≅ (2; − 0,547), f * ≅ −4,496 . Метод наискорейшего спуска В данном случае на каждой итерации шаг λk выбирается из условия минимума функции f (x ) в направлении движения, т.е. f ( x ( k −1) − λk f ′( x ( k −1) )) = min ϕ (λ ), λ >0
( k −1)
( k −1)
− λf ′( x где ϕ (λ ) = f ( x )). Такой способ выбора λk требует меньшего числа итераций, чем предыдущий, поскольку он обеспечивает достижение наименьшего значения функции вдоль заданного направления. Однако в этом варианте градиентного метода на каждой итерации требуется решать задачу одномерной минимизации, что приводит
60 к увеличению трудоемкости итерации. Итак, метод наискорейшего спуска требует меньшего числа итераций, чем метод с дроблением шага, но каждая итерация сложнее реализуется. Алгоритм решения задачи безусловной минимизации методом наискорейшего спуска заключается в следующем. 1. Задаются ε, x ( 0 ) ; вычисляются f ( x ( 0 ) ) , f ′( x ( 0 ) ) , f ′( x ( 0 ) ) ; полагается k=1. 2. Определяется λk . 3. Вычисляются ∆x ( k ) = −λk f ′( x ( k −1) ), x ( k ) = x ( k −1) + ∆x ( k ) , f ( x (k ) ) , f ′( x (k ) ) , || f ′( x (k ) ) || . 4. Проверяется условие окончания вычислений f ′( x ( k ) ) ≤ ε .
Если
оно
выполняется,
то
полагается
x* ≅ x ( k ) ,
f * ≅ f ( x ( k ) ) и вычисления завершаются. Если условие не выполняется, то полагается k=k+1 и осуществляется переход к п.2. Пример. Решить методом наискорейшего спуска задачу безусловной минимизации f ( x) = x12 + 2 x22 − 4 x1 + 2 x2 → min при ε = 0,3, x ( 0 ) = (1,0). Решение. Находим первые частные производные f (x ) : ∂f ∂f = 2 x1 − 4, = 4 x 2 + 2. ∂x1 ∂x 2 Первая итерация Определяем λ1 : x1( 0 ) − λ
∂f ( x ( 0 ) ) = 1 − λ (−2) = 1 + 2λ , ∂x1
61 x2(0 ) − λ
∂f ( x ( 0 ) ) = 0 − λ ⋅ 2 = −2λ ; ∂x2
ϕ (λ ) = f ( x ( 0) − λf ′( x ( 0) )) = (1 + 2λ ) 2 + 2(−2λ ) 2 − − 4(1 + 2λ ) + 2(−2λ ); ϕ ′(λ ) = 2(1 + 2λ )2 + 4(−2λ )( −2) − 8 + 2(−2) = 24λ − 8; ϕ ′(λ ) = 0 → 24λ − 8 = 0 → λ = 1 3 . Поскольку ϕ ′′(λ ) = 24 > 0 , то λ = 1 3 есть точка минимума ϕ (λ ) . Следовательно, λ1 = 1 3 = 0,333. Вторая итерация Определяем λ2 : x1(1) − λ
∂f ( x (1) ) = 1,667 + 0,667λ , ∂x1
x 2(1) − λ
∂f ( x (1) ) = −0,667 + 0,667λ ; ∂x 2
ϕ (λ ) = f ( x (1) − λf ′( x (1) )) = (1,667 + 0,667λ ) 2 + 2(−0,667 + + 0,667λ ) 2 − 4(1,667 + 0,667λ ) + 2(−0,667 + 0,667λ ); ϕ ′(λ ) = 2(1,667 + 0,667λ )0,667 + 4(−0,667 + 0,667λ )0,667 − − 4 ⋅ 0,667 + 2 ⋅ 0,667 = 2,667λ − 0,886; ϕ ′(λ ) = 0 → 2,667λ − 0,886 = 0 → λ = 0,332. Поскольку ϕ ′′(λ ) = 2,67 > 0 , то λ = 0,332 есть точка минимума ϕ (λ ) . Следовательно, λ 2 = 0,332. Третья итерация Определяем λ3 : x1( 2 ) − λ
∂f ( x ( 2) ) ∂f ( x ( 2 ) ) = 1,89 + 0,22λ , x 2( 2 ) − λ = −0,445 − 0,22λ ; ∂x1 ∂x 2
ϕ (λ ) = f ( x ( 2) − λf ′( x ( 2) )) = (1,89 + 0,22λ ) 2 + 2(−0,445 − 0,22λ ) 2 − − 4(1,89 + 0,22λ ) + 2(−0,445 − 0,22λ );
62
ϕ ′(λ ) = 2(1,89 + 0,22λ )0,22 + 4(−0,445 − 0,22λ )(−0,22) − − 4 ⋅ 0,22 + 2(−0, 22) = 0, 29λ − 0,0968; ϕ ′(λ ) = 0 → 0,29λ − 0,0968 = 0 → λ = 0,333. Поскольку ϕ ′′(λ ) = 0,29 > 0 , то λ = 0,333 есть точка минимума ϕ (λ ) . Следовательно, λ3 = 0,333. Результаты вычислений заносим в табл. 6.2. Таблица 6.2 Ном. итер.
∂f ∂x 2
∆ x1
∆x2
x1 1
0
−3
−2
2
2,83
1
0,333
0,667
−0,667
1,67
−0,667
−4,33
−0,667
−0,667
0,943
2
0,333
0,222
0,222
1,89
−0,445
−4,48
−0,22
0,22
0,311
3
0,333
0,074
−0,074
1,96
−0,518
−4,5
−0,074
−0,074
0,105
0
(
∂f ∂x1
λ
x2
f (x )
f′
Поскольку условие окончания вычислений выполнено f ′( x (3) ) = 0.105 < ε = 0,3 , то вычисления завершаются.
)
В результате решения задачи безусловной минимизации получаем x * ≅ x (3) = (1,96; − 0,518), f * ≅ f ( x ( 3) ) = −4,5. Ответ: x * ≅ (1,96; − 0,518), f * ≅ −4,5 . Задачи 1. Решить методом с дроблением шага задачу безусловной минимизации f ( x ) = x12 + 2 x22 − 2 x1 + x2 − 5 → min , при α = 1 , β = 0,5 , ε = 0,4, x (0) = (0, 2) . 2. Решить методом наискорейшего спуска задачу безусловной минимизации f ( x) = x12 + 2 x 22 − 2 x1 + x 2 − 5 → min , при ε = 0,4 , x (0) = (0, 2) .
63 7. МЕТОД НЬЮТОНА Метод Ньютона, так же как и градиентные методы, относится к методам спуска, т.е. предназначен для численного решения задач безусловной минимизации. Метод Ньютона основан на идее замены минимизируемой функции f (x ) в окрестности точ~ ки x (k ) квадратичной частью f k ( x) ее разложения в ряд Тейлора ~ f k ( x ) = f ( x ( k ) ) + f ′( x ( k ) ), ( x − x ( k ) ) + 1 ( x − x ( k ) ) f ′′( x ( k ) ), ( x − x ( k ) ) . 2 В методе Ньютона очередная точка x (k ) в последовательности x ( 0 ) , x (1) , x ( 2 ) ,... приближений к точке минимума x ∗ выбирается по правилу x ( k ) = x ( k −1) + h ( k ) = x ( k −1) − f ′( x ( k −1) )( f ′′( x ( k −1) )) −1 , k = 1,2 ,..., +
где A−1 − матрица, обратная матрице A. Таким образом, метод Ньютона является методом второго порядка. На практическом занятии рассматриваются два способа обращения невырожденной квадратной матрицы A a11 a12 ...a1n a a ...a A = 21 22 2 n . ..................... a n1 a n 2 ..a nn Первый способ заключается в непосредственном вычисле−1 нии A из соотношения A11 A21 ...An1 1 A12 A22 ...An 2 −1 A = , d ..................... A1n A2 n ..Ann
64 где d = A − определитель матрицы A , Aij = (−1)i + j M ij − алгебраическое дополнение элемента aij , M ij − минор элемента aij . Второй способ обращения матрицы A состоит в том, что сначала к матрице A справа присоединяется единичная матрица I того же размера. Затем с помощью элементарных операций над строками (умножение строки на произвольное отличное от нуля число; прибавление к одной строке другой строки, умноженной на некоторое число) матрица D0 ≡ [AI ] преобразуется к матрице
[ ]
Dn ≡ IA−1 . Пример. Найти матрицу A−1 , обратную матрице A вида 3 −1 0 A = − 2 1 1 . 2 − 1 4 Решение. Первый способ Вычисляем d и Aij , i = 1,3, j = 1,3 :
d = 3 ⋅ 1 ⋅ 4 + (−1)1 ⋅ 2 + (−2)( −1)0 − 0 ⋅ 1 ⋅ 2 − (−2)( −1)4 − (−1)1 ⋅ 3 = = 12 − 2 − 8 + 3 = 5; −2 1 −2 1 = 0, = 10, A13 = ( −1) 4 2 4 2 −1
A11 = ( −1) 2
1 1 = 5, −1 4
A21 = ( −1) 3
−1 0 3 0 3 −1 = 4, A22 = ( −1) 4 = 12, A23 = ( −1) 5 = 1, −1 4 2 4 2 −1
A31 = ( −1) 4
−1 0 3 0 3 −1 = −1, A32 = ( −1) 5 = −3, A33 = ( −1) 6 = 1. −2 1 −2 1 1 1
Таким образом,
A12 = ( −1) 3
65
A−1
A11 d A = 12 d A 13 d
A21 d A22 d A23 d
A31 d A32 d A33 d
4 1 1 5 − 5 = 2 12 − 3 . 5 5 1 1 0 5 5
Второй способ Записываем матрицу D0 : 3 − 1 0 1 0 0 D0 = [AI ] = − 2 1 1 0 1 0. 2 − 1 4 0 0 1 Для преобразования первого столбца D0 к виду (100)Т умножаем первую строку D0 на 1/3; прибавляем ко второй строке D0 первую строку D0 , умноженную на 2/3; прибавляем к третьей строке D0 первую строку D0 , умноженную на (−2/3), т.е. 1 2 2 11 = ⋅10 , 21 = 20 + ⋅ 10 , 31 = 30 − ⋅10 , 3 3 3 где через i j обозначена i-я строка матрицы D j . В результате получаем матрицу D1 : 1 1 1 − 3 0 3 0 0 1 2 D1 = 0 1 1 0. 3 3 0 − 1 4 − 2 0 1 3 3 Для преобразования второго столбца D1 к виду (010)T прибавляем к первой строке D1 вторую строку D1 ; умножаем
66 вторую строку D1 на 3; прибавляем к третьей строке D1 вторую строку D1 , т.е. 12 = 11 + 21 , 2 2 = 3 ⋅ 21 , 3 2 = 31 + 21 . В результате получаем матрицу D2: 1 0 1 D2 = 0 1 3 0 0 5
1 1 0 2 3 0 . 0 1 1 T
Для преобразования третьего столбца D2 к виду (001) прибавляем к первой строке D2 третью строку D2 , умноженную на (−1/5); прибавляем ко второй строке D2 третью строку D2 , умноженную на (−3/5); умножаем третью строку D2 на 1/5, т.е. 1 3 1 13 = 12 − ⋅ 32 , 23 = 2 2 − ⋅ 32 , 33 = ⋅ 32 . 5 5 5 В результате получаем матрицу D3 : 4 1 0 0 1 5 12 D 3 = 0 1 0 2 5 0 0 1 0 1 5
Таким образом,
A−1
1 = 2 0
1 − 5 3 − = IA −1 . 5 1 5
4 1 − 5 5 12 3 − . 5 5 1 1 5 5
[ ]
67 Алгоритм решения задачи безусловной минимизации методом Ньютона заключается в следующем. 1. Задаются ε x (0 ) ; вычисляются f ( x ( 0) ), f ′( x ( 0) ), f ′( x ( 0 ) ) ; полагается k = 1 . 2. Вычисляется f ′′( x ( k −1) ) . 3. Определяется ( f ′′( x ( k −1) )) −1 . 4. Вычисляются = x ( k −1) + ∆x ( k ) , f ′( x (k ) ) ,
∆x ( k ) = − f ′( x ( k −1) )( f ′′( x ( k −1) )) −1 ,
x (k) =
f ′( x (k ) ) .
5. Проверяется условие окончания вычислений f ′( x (k ) ) ≤ ε . Если оно выполняется, то полагается x* ≅ x ( k ) , f ∗ ≅ f ( x ( k ) ) и вычисления завершаются. Если условие не выполняется, то полагается k = k + 1 и осуществляется переход к п.2. Метод Ньютона находит минимум квадратичной функции за один шаг, независимо от начальной точки x ( 0 ) и степени овражности. Однако сходимость метода Ньютона в случае, когда целевая функция не является квадратичной, существенно зависит от начальной точки x ( 0) . Еще одним недостатком является высокая трудоемкость метода, обусловленная необходимостью вычисления и обращения на каждом шаге матрицы вторых производных минимизируемой функции. Пример. Решить методом Ньютона задачу безусловной минимизации 1 1 f ( x) = − x23 + x1 x2 + x12 − x1 + 3x2 + 4 → min 2 2 (0) при ε = 0,1, x = (4, −1) . Решение. Находим f ′′(x ) :
68 ∂f = x 2 + x1 − 1, ∂x1
∂f 3 = − x 22 + x1 + 3;. 2 ∂x 2
1 1 ∂2 f ∂2 f ∂2 f = = = −3x 2 → f ′′( x ) = 1 , 1 , . 2 2 ∂x1∂x 2 ∂x1 ∂x 2 1 − 3x 2 Первая итерация Вычисляем ∆x (1) : 1 1 1 3 − 1 1,5 − 0,5 f ′′( x ( 0 ) ) = = → ( f ′′( x (0 ) )) −1 = ; 2 − 1 1 − 0,5 0,5 1 3 1,5 − 0,5 ∆x (1) = −(2; 5,5) = − (0,25; 1,75) = (−0,25; − 1,75). 0,5 − 0,5 Вторая итерация Вычисляем ∆x ( 2 ) : 1 1 1 8,25 − 1 f ′′( x (1) ) = → ( f ′′( x (1) )) −1 = ; 7, 25 − 1 1 1 8,25 − 0,138 1,14 ∆x ( 2 ) = −(0; − 4,59) = (−0,633; 0,633). 0,138 − 0,138 Третья итерация Вычисляем ∆x ( 3) : 1 1 1 6,35 − 1 f ′′( x ( 2 ) ) = → ( f ′′( x ( 2 ) )) −1 = ; 5,35 − 1 1 1 6,35 − 0,187 1,19 ∆x ( 3) = −(0; − 0,605) = (−0,113; 0,113). 0,187 − 0,187 Результаты вычислений заносим в табл. 7.1.
69 Таблица 7.1 Номер итер.
∆x1
0 1 2 3
(
−0,250 −0,633 −0,113
∆x2
x1
x2
f (x )
∂f ∂x1
∂f ∂x 2
f′
−1,75 0,633 0,113
4 3,75 3,12 3,00
−1 −2,75 −2,12 −2,00
1,5 −0,88 −2,46 −2,50
2 0 0 0
5,5 −4,59 −0,61 0
5,85 4,59 0,61 0
Поскольку условие окончания вычислений выполнено f ′( x ) = 0 < ε = 0,1 , то вычисления завершаются. ( 3)
)
В результате решения задачи безусловной минимизации получаем x∗ ≅ x (3) = (3, 00; − 2, 00), f ∗ ≅ f ( x (3) ) = −2,50. Ответ: x ∗ ≅ (3,00; − 2,00), f ∗ ≅ −2,50 . Задачи 1. Найти матрицу A-1, обратную матрице A вида 2 1 2 A = − 4 3 1 . 2 3 5 2. Решить методом Ньютона задачу безусловной минимизации f ( x) = x12 + 2 x22 − 2 x1 + x2 − 5 → min при ε = 0,4 , x ( 0 ) = (0, 2). 3. Решить методом Ньютона задачу безусловной минимизации 1 f ( x) = x13 + x22 − x1 x2 + x1 − 3x2 − 4 → min 2 (0) при ε = 0,2 , x = (2, 2) .
70 8. МЕТОД АППРОКСИМИРУЮЩЕГО ПРОГРАММИРОВАНИЯ Метод аппроксимирующего программирования (МАП) относится к численным методам решения задач условной оптимизации. Наиболее простой и хорошо изученной задачей условной оптимизации является задача линейного программирования (ЛП). МАП является одним из методов решения задач нелинейного программирования. В данном случае исходная задача нелинейного программирования преобразуется в последовательность задач ЛП с помощью процедур линеаризации. Рассмотрим задачу условной минимизации вида f ( x) → min, x ∈ X = {x ∈ R+n : g i ( x ) ≤ 0, i = 1, r}, где f (x ) , g i (x) − произвольные нелинейные функции. МАП является итерационным методом. На k-й, k = 1,2,... , итерации определяется точка x (k ) − k-е приближение к точке минимума x∗ ; при этом исходной точкой для k-й итерации является точка x ( k −1) . В результате, исходя из заданной начальной точки x ( 0 ) , находится последовательность точек x (1) , x ( 2 ) ,..., сходящаяся при определенных условиях к решению x* исходной задачи нелинейного программирования. Отметим, что в качестве начальной точки x ( 0 ) выбирается некоторая точка из допустимого множества X, т.е. x ( 0 ) ∈ X ; точка x ( 0 ) выбирается произвольно, принадлежность к X определяется проверкой выполнения ограничений для этой точки. На k-й, k=1,2,…, итерации в окрестности точки x ( k −1) осуществляется линейная аппроксимация (линеаризация) задачи нелинейного программирования, т.е. каждая из нелинейных функций исходной задачи заменяется двумя первыми членами в разложении в ряд Тейлора. В результате получается задача ЛП ~ f ( x ) = f ( x ( k −1) ) + f ′( x ( k −1) ), ( x − x ( k −1) ) → min ,
71 g~i ( x) = g i ( x ( k −1) ) + g i′ ( x ( k −1) ), ( x − x ( k −1) ) ≤ 0, i = 1, r , x ∈ R+n . Затем находится решение x 0 задачи ЛП, после чего определяется точка x (k ) по известным x ( k −1) и x 0 . Эта точка должна удовлетворять условиям x (k ) ∈ X , (8.1) f ( x ( k ) ) < f ( x ( k −1) ). Существует много способов определения x (k ) . На практическом занятии x (k ) определяется из соотношения x ( k ) = x ( k −1) + λk ( x 0 − x ( k −1) ), 0 ≤ λk ≤ 1, k = 1,2,..., где λk − параметр (скаляр), определяющий длину шага из точки x ( k −1) в направлении точки x 0 . Очевидно, что при λk = 1 выполняется x ( k ) = x 0 , при
λk = 0 x ( k ) = x ( k −1) . Величина λk выбирается так, чтобы выполнялись условия (8.1). Процесс выбора шага, удовлетворяющего данным условиям, во многом аналогичен соответствующему процессу в случае градиентного метода с дроблением шага. Выбирается константа 0 < β < 1 (в данном случае α = 1 ). На k-й, k = 1,2,... , итерации проверяется выполнение условий (8.1) при λk=1, т.е. для x ( k ) = x 0 . Если они не выполняются, то производится дробление шага, т.е. полагается λk = β , и вновь проверяется выполнение условий (8.1). Процесс дробления, т.е. умножения текущего значения λk на β , продолжается до тех пор, пока условия (8.1) не окажутся выполненными. Алгоритм решения задачи условной минимизации методом аппроксимирующего программирования заключается в следующем. 1. Задаются β , δ 1 , δ 2 ; выбирается x ( 0 ) ; полагается k = 1 .
72 2. Осуществляется линеаризация исходной задачи в окрестности точки x ( k −1) . В результате получается задача ЛП. 3. Находится решение x 0 задачи ЛП. 4. Полагается λk = 1 . 5. Вычисляется x ( k ) = x ( k −1) + λk ( x 0 − x ( k −1) ) . 6. Проверяются условия выбора x ( ) : g i ( x ( k ) ) ≤ 0, i = 1, r ; k
f ( x ( k ) ) < f ( x ( k −1) ). Если они выполняются, то осуществляется переход к п.7. Если условия не выполняются, то полагается λk = λk β и осуществляется переход к п.5. 7. Проверяются условия окончания решения исходной задачи: f ( x ( k ) ) − f ( x ( k −1) ) ≤ δ1 , f ( x ( k −1) ) x (jk ) − x (jk −1) x (jk −1)
≤ δ 2,
j = 1, n.
Если они выполняются, то полагается x* ≅ x ( k ) , f * ≅ f ( x ( k ) ) и вычисления завершаются. Если условия не выполняются, то полагается k = k + 1 и осуществляется переход к п.2. Пример. Решить методом аппроксимирующего программирования задачу условной минимизации f ( x) = 4 x1 − x22 − 12 → min, x12 + x22 ≤ 25, 10 x1 − x12 + 10 x2 − x22 ≥ 34, x1 ≥ 0, при β = 0,7 , δ 1 = 0,1 , δ 2 = 0,3 .
x2 ≥ 0
73
Решение. Преобразуем g i ( x) ≤ 0 :
ограничения исходной
задачи
к виду
g1 ( x ) = x12 + x22 − 25 ≤ 0, g 2 ( x) = x12 − 10 x1 + x22 − 10 x2 + 34 ≤ 0. Находим f ′(x) , g1′ ( x) , g ′2 ( x) : ∂f ∂f = 4, = −2 x 2 → f ′( x) = (4,−2 x 2 ); ∂x1 ∂x 2 ∂g1 ∂g1 = 2 x1 , = 2 x 2 → g1′ ( x ) = (2 x1 ,2 x 2 ); ∂x1 ∂x 2 ∂g 2 ∂g 2 = 2 x1 − 10, = 2 x 2 − 10 → g ′2 ( x) = (2 x1 − 10,2 x 2 − 10). ∂x1 ∂x 2 Выберем x ( 0 ) = (2, 4) .
Проверяем принадлежность точки x (0 ) к допустимой области X: g1 ( x ( 0 ) ) = 2 2 + 4 2 − 25 = −5 < 0, g 2 ( x (0 ) ) = 2 2 − 10 ⋅ 2 + 4 2 − 10 ⋅ 4 + 34 = −6 < 0,
x
( 0)
x1( 0 ) > 0, x 2(0 ) > 0. Поскольку ограничения выполняются, = (2, 4) является допустимой, т.е. x ( 0 ) ∈ X .
то
точка
Первый этап (первая итерация) Осуществляем линеаризацию исходной задачи в окрестности точки x ( 0 ) : f ( x (0 ) ) = 4 ⋅ 2 − 4 2 − 12 = 8 − 16 − 12 = −20, f ′( x ( 0 ) ) = (4, − 2 ⋅ 4) = (4, − 8),
~ f ( x ) = −20 + (4, −8), ( x1 − 2, x 2 − 4) =
74 = −20 + 4( x1 − 2) − 8( x 2 − 4) = 4 x1 − 8 x 2 + 4; g1′ ( x ( 0 ) ) = (2 ⋅ 2, 2 ⋅ 4) = (4, 8),
g~1 ( x ) = −5 + (4, 8), ( x1 − 2, x2 − 4) = = −5 + 4( x1 − 2) + 8( x2 − 4) = 4 x1 + 8 x2 − 45; g ′2 ( x ( 0 ) ) = (2 ⋅ 2 − 10, 2 ⋅ 4 − 10) = (−6, − 2), g~ ( x ) = −6 + (−6, −2), ( x − 2, x − 4) = 2
1
2
= −6 − 6( x1 − 2) − 2( x2 − 4) = −6 x1 − 2 x2 + 14. Составляем задачу ЛП: ~ f ( x ) = → min, g~1 ( x) ≤ 0; g~2 ( x) ≤ 0; x1 ≥ 0, x2 ≥ 0. ~ Подставляем f ( x ), g~1 ( x), g~2 ( x ) : ~ f ( x ) = 4 x1 − 8 x2 + 4 → min , 4 x1 + 8 x 2 ≤ 45 , (1) 6 x1 + 2 x 2 ≥ 14 , (2) x1 ≥ 0, x 2 ≥ 0. Решаем задачу ЛП графическим методом (рис.8.1): 4 x1 + 8 x 2 = 45 : x1 = 0 → x 2 = 5,625, x 2 = 0 → x1 = 11, 25; 6 x1 + 2 x 2 = 14 : x1 = 0 → x 2 = 7, x 2 = 0 → x1 = 2,33; f# ′( x ) = (4, −8), ~ где f ′( x) − градиент целевой функции задачи ЛП. Из рис. 8.1 следует, что задача ЛП имеет решение x 0 . Точка x 0 является решением системы уравнений 4 x1 + 8 x2 = 45, 6 x1 + 2 x2 = 14.
75 x2 7 6 5 4 3 2 1
x0
1 2 3 4 5 6 7 8 9 10 11 12 #f ( x) (2)
(1)
x1
Рис. 8.1 Находим x 0 : 4 x1 + 8 x 2 = 45 11 − → x1 = = 0,55; 24 x1 + 8 x 2 = 56 20 − 20 x1 = −11 4 ⋅ 0,55 + 8 x 2 = 45 → 8 x 2 = 45 − 2,2 = 42,8 → x 2 = 5,35; x 0 = (0,55; 5,35). Полагаем λ1 = 1 . Вычисляем x(1): x (1) = x (0 ) + λ1 ( x 0 − x ( 0 ) ) = x 0 = (0,55; 5,35). Проверяем условия выбора x (1) : g1 ( x (1) ) = 0,55 2 + 5,35 2 − 25 = 3,9 > 0. Поскольку условия не выполняются, то (1) λ 1 = λ 1 β = 0 ,7 . Вычисляем x : x (1) = (2, 4) + 0,7(0,55 − 2; 5,35 − 4) = . = (2, 4) + (−1,015; 0,945) = (0,985; 4,945). Проверяем условия выбора x (1) : g1 ( x (1) ) = 0,985 2 + 4,945 2 − 25 = 0,423 > 0.
полагаем
76 Поскольку условия не λ1 = λ1 β = 0,49 . Вычисляем x(1):
выполняются,
то
полагаем
x (1) = (2, 4) + 0,49(−1,45; 1,35) = (2, 4) + (−0,71; 0,66) = (1,29; 4,66) . Проверяем условия выбора x (1) : g1 ( x (1) ) = 1,29 2 + 4,66 2 − 25 = −1,62 < 0, g 2 ( x (1) ) = 1,29 2 − 10 ⋅ 1,29 + 4,66 2 − 10 ⋅ 4,66 + 34 = −2,12 < 0, x1(1) > 0,
x2(1) > 0,
f ( x (1) ) = 4 ⋅ 1,29 − 4,66 2 − 12 = −28,56 < f ( x ( 0 ) ) = −20. Поскольку условия выполняются, то x (1) = (1,29; 4,66). Проверяем условия окончания решения исходной задачи f ( x (1) ) − f ( x ( 0 ) ) − 28,6 + 20 = = 0,428 > δ 1 = 0,1. − 20 f ( x ( 0) ) Поскольку условия не выполняются, то выполняем второй этап. Второй этап (вторая итерация) Осуществляем линеаризацию исходной задачи в окрестности точки x (1) : f ′( x (1) ) = (4; −2 ⋅ 4,66) = (4; −9,32), ~ f ( x ) = −28,56 + (4; −9,32), ( x1 − 1,29; x 2 − 4,66) = = −28,56 + 4( x1 − 1,29) − 9,32( x 2 − 4,66) == 4 x1 − 9,32 x 2 + 9,71; g1′ ( x (1) ) = (2 ⋅ 1,29; 2 ⋅ 4,66) = (2,58; 9,32),
g~1 ( x) = −1,62 + (2,58; 9,32), ( x1 − 1,29; x2 − 4,66) = = −1,62 + 2,58( x1 − 1, 29) + 9,32( x2 − 4,66) = 2,58 x1 + 9,32 x2 − 48,4; g 2′ ( x (1) ) = (2 ⋅ 1,29 − 10; 2 ⋅ 4,66 − 10) = (−7,42; − 0,68), g~ ( x ) = −2,12 + (−7,42; −0,68), ( x − 1,29; x − 4,66) = 2
1
2
77 = −7, 42 x1 − 0,68 x2 + 10,62. Составляем задачу ЛП: ~ f ( x ) = → min, g~1 ( x) ≤ 0; g~2 ( x) ≤ 0; x1 ≥ 0, x2 ≥ 0. ~ Подставляем f ( x ), g~1 ( x), g~2 ( x ) : ~ f ( x ) = 4 x1 − 9,32 x2 + 9,71 → min , (1) 2,58 x1 + 9,32 x2 ≤ 48,4 , 7,42 x1 + 0,68 x2 ≥ 10,6 , (2) x1 ≥ 0, x2 ≥ 0. Решаем задачу ЛП графическим методом (рис. 8.2): x2
12 10 8 6 4 2
x0
2 4 6 8 10 12 14 16 18 (1) x1 f# ( x) (2) Рис. 8.2 2,58 x1 + 9,32 x2 = 48, 4 : x1 = 0 → x2 = 5,2, x2 = 0 → x1 = 18,8; 7,42 x1 + 0,68 x2 = 10,6 : x1 = 0 → x2 = 15,6, x2 = 0 → x1 = 1, 43; ~ f ′( x ) = (4; −9,32) .
78 Из рис. 8.2 следует, что задача ЛП имеет решение x 0 . Точка x 0 является решением системы уравнений 2,58 x1 + 9,32 x2 = 48,4, 7,42 x1 + 0,68 x2 = 10,6. Находим x 0 : 2,58 x1 + 9,32 x2 = 48,4 44,7 − → x2 = = 4,92; 2,58 x1 + 0, 236 x2 = 3,7 9,084 9,084 x2 = 44,7 2,58 x1 + 9,32 ⋅ 4,92 = 48,4 → 2,58 x1 = 2,546 → x1 = 0,987; x 0 = (0,987; 4,92). Полагаем λ2 = 1 . Вычисляем x(2): x ( 2 ) = x (1) + λ2 ( x 0 − x (1) ) = x 0 = (0,987; 4,92). Проверяем условия выбора x ( 2 ) : g1 ( x ( 2 ) ) = 0,987 2 + 4,92 2 − 25 = 0,181 > 0. Поскольку условия не выполняются, то λ2 = λ2 β = 0,7. Вычисляем x(2):
полагаем
x ( 2 ) = (1,29; 4,66) + 0,7(0,987 − 1,2; 4,92 − 4,66) = = (1,29; 4,66) + (−0,21; 0,18) = (1,08; 4,84). Проверяем условия выбора x ( 2 ) : g1 ( x ( 2 ) ) = 1,082 + 4,84 2 − 25 = −0,41 < 0, g 2 ( x ( 2 ) ) = 1,082 − 10 ⋅ 1,08 + 4,842 − 10 ⋅ 4,84 + 34 = −0,61 < 0, x1( 2 ) > 0,
x2( 2 ) > 0,
f ( x ( 2 ) ) = 4 ⋅ 1,08 − 4,842 − 12 = −31,11 < f ( x (1) ) = −28,56. Поскольку условия выполняются, то x ( 2 ) = (1,08; 4,84). Проверяем условия окончания решения исходной задачи
79 f ( x ( 2 ) ) − f ( x (1) ) f ( x (1) ) x1( 2 ) − x1(1) x1(1) x2( 2 ) − x2(1) x2(1)
=
− 31,11 + 28,56 = 0,089 < δ1 = 0,1, − 28,56
=
1,08 − 1,29 = 0,163 < δ 2 = 0,3, 1,29
=
4,84 − 4,66 = 0,039 < δ 2 = 0,3. 4,66
Поскольку условия выполняются, то полагаем * ( 2) x ≅ x = (1,08; 4,84) , f ≅ f ( x ) = −31,1 и вычисления завершаются. Ответ: x* ≅ (1,08; 4,84) , f * ≅ −31,1 . *
( 2)
Задачи 1. Дана задача условной минимизации f (x ) = x12 + x22 − 16 x1 − 10 x2 → min, x12 − 6 x1 + 4 x2 ≤ 11, exp(x1 − 3) − x1x2 + 3 x2 ≤ 1, x1 ≥ 0, x2 ≥ 0. Определить методом аппроксимирующего программирования точку x (1) при x (0 ) = (4, 3), β = 0,25. 2. Решить методом аппроксимирующего программирования задачу условной максимизации f ( x ) = x1 + x2 → max, 2 x1 − x22 ≥ 1 , 0,8 x12 + 2 x2 ≤ 9 , x1 ≥ 0 , x2 ≥ 0 при â = 0,7, ä1 = 0,1 , ä2 = 0,2 , x (0) = (3, 0) .
80 9. МЕТОД ШТРАФНЫХ ФУНКЦИЙ Метод штрафных функций относится к численным методам решения задач условной оптимизации. В данном случае исходная задача условной оптимизации преобразуется в последовательность задач безусловной оптимизации путем введения штрафных функций. Рассмотрим задачу условной минимизации вида f ( x) → min, x ∈ X = {x ∈ R n : g i ( x) ≤ 0, i = 1, r}. На ее основе строится задача безусловной минимизации P( x, R) = f ( x) + Ω( R, g ( x )) → min, x ∈ Rn , где P( x, R) − расширенная функция, Ω ( R , g ( x )) − штрафная функция, R − штрафной параметр. Задача условной минимизации f (x ) заменяется последовательностью задач безусловной минимизации P( x, Rt −1 ) при t = 1,2 ,... . При этом, исходя из заданной начальной точки x[ 0 ] , находится последовательность точек x[1] , x[ 2 ] ,..., сходящаяся при ∗
определенных условиях к решению x исходной задачи. При минимизации расширенной функции P( x, Rt −1 ) , t = 1,2 ,... , исходной (начальной) точкой является x[t −1] , а решение задачи безусловной минимизации P( x, Rt −1 ) определяет точку x[t ] . Методы штрафных функций разделяются на методы внутренней точки и методы внешней точки. Метод штрафных функций называется методом внутренней точки (внешней точки), если все точки последовательности x[t ] , t = 0,1,2 ,..., являются допустимыми (недопустимыми). Вид метода (внутренней или внешней точки) определяет вид штрафной функции и правило, по которому производится пересчет штрафного параметра после решения
81 очередной задачи безусловной минимизации. Для методов внутренней точки штрафные функции должны обладать следующими свойствами: − на большей части допустимого множества X внутренние штрафные функции близки к нулю; − при приближении изнутри к границе допустимого множества X внутренние штрафные функции достаточно быстро возрастают. В качестве внутренней штрафной функции часто используются логарифмическая штрафная функция r
Ω( Rt , g ( x)) = − Rt ∑ ln( − g i ( x)), i =1
а также обратная штрафная функция 1 ⋅ i =1 g i ( x ) Внутренние штрафные функции имеют смысл только внутри допустимого множества X, в связи с этим необходимо проверять соблюдение ограничений при решении задач безусловной оптимизации. Для того чтобы обеспечить сходимость последовательности точек x[t ] к точке x* , в качестве последовательности Rt , t = 0,1,2,... , для методов внутренней точки следует выбирать монотонно убывающую сходящуюся к нулю последовательность положительных чисел, т.е. Rt → +0 при t → ∞ . При этом r
Ω( Rt , g ( x )) = − Rt ∑
P( x, Rt ) → f ( x) , x[t ] → x* . Для вычисления Rt используется рекуррентное соотношение Rt = Rt −1 c , t = 1,2, ! , где R0 > 0 (часто R0 = 1 ), c > 1 (часто c = 10 ). Для методов внешней точки штрафные функции должны обладать следующими свойствами: − во всех точках допустимого множества X внешние штрафные функции равны нулю;
82 − при выходе за пределы допустимого множества X внешние штрафные функции становятся положительными и достаточно быстро возрастают. В качестве внешней штрафной функции часто используется штрафная функция типа квадрата "срезки" r
2
Ω( Rt , g ( x)) = Rt ∑ g i ( x ) . i =1
Здесь g i (x ) − "срезка" функции g i (x ) , определяемая следующим образом: g i ( x ), если g i ( x ) ≥ 0, 〈 g i ( x )〉 = 0, если g i ( x ) < 0. Для того чтобы обеспечить сходимость последовательности точек x[t ] к точке x * , в качестве последовательности Rt , t = 0,1,2,... , для методов внешней точки следует выбирать монотонно возрастающую последовательность положительных чисел, т.е. Rt → ∞ при t → ∞ . Для вычисления Rt используется рекуррентное сооотношение Rt = Rt −1 ⋅ c, t = 1,2,!, где R0 > 0 (часто R0 = 1 ), c > 1 (часто c = 10 ). Метод штрафных функций позволяет в простых случаях явно (аналитически) решить задачу условной оптимизации. Рассмотрим в качестве иллюстрации аналитического решения следующий пример. Пример. Дана задача условной минимизации f (x ) = x → min, x ≥ 2. Легко видеть, что решением данной задачи является точка x*=2, при этом f∗=2. Рассмотрим аналитическое решение задачи: а) методом внешней точки, б) методом внутренней точки (логарифмическая штрафная функция), в) методом внутренней точки (обратная штрафная функция).
83 Решение. Преобразуем ограничение исходной задачи к виду g(x)≤0: g (x ) = 2 − x ≤ 0. а) Метод внешней точки. Штрафная функция типа квадрата «срезки» имеет вид Ω(R, g (x )) = R 2 − x . Получаем задачу безусловной минимизации 2
P(x, R ) = x + R 2 − x → min . При этом предполагается, что x – внешняя точка, т.е. x < 2, g ( x ) = 2 − x > 0. Уравнение, определяющее стационарные точки P(x,R), имеет вид dP = 1 − 2 R 2 − x = 0. dx Поскольку 2 − x > 0 , то по определению «срезки» получим 2 − x = 2 − x. Находим стационарную точку x(1)(R): 1 − 2 R ( 2 − x ) = 0 → x(1) ( R ) = 2 − 1 (2 R ). При этом g ( x(1) ( R )) = 1 ( 2 R ) > 0 при R>0, т.е. при любом конечном R>0 соответствующая стационарная точка является недопустимой (внешней) точкой и сделанное предположение не нарушается. Точка x*, являющаяся решением исходной задачи, определяется следующим образом: x* = lim x(1) ( R ) = lim (2 − 1 (2 R )) = 2. 2
R →∞
R →∞
б) Метод внутренней точки. Логарифмическая штрафная функция имеет вид Ω(R, g (x )) = − R ln (x − 2).
84 Получаем задачу безусловной минимизации P(x, R ) = x − R ln( x − 2) → min . При этом предполагается, что x − внутренняя точка, т.е. x ≥ 2, g ( x ) = 2 − x ≤ 0. Уравнение, определяющее стационарные точки P(x, R), имеет вид dP R =1− = 0. dx x−2 Находим стационарную точку x(1)(R): x(1) ( R) = 2 + R. При этом g ( x (1) ( R)) = − R ≤ 0 при R ≥ 0, т.е. при любом R≥0 соответствующая стационарная точка является допустимой (внутренней) точкой и сделанное предположение не нарушается. Точка x*, являющаяся решением исходной задачи, определяется следующим образом: x* = lim x(1) ( R) = lim (2 + R) = 2. R→0
R→0
в) Метод внутренней точки. Обратная штрафная функция имеет вид 1 R Ω(R, g (x )) = − R = . 2− x x−2 Получаем задачу безусловной минимизации R P (x , R ) = x + → min . x−2 При этом предполагается, что x – внутренняя точка, т.е. x ≥ 2, g ( x ) = 2 − x ≤ 0. Уравнение, определяющее стационарные точки P(x, R), имеет вид dP R = 1− = 0. dx ( x − 2) 2 Находим стационарные точки x(1,2)(R):
85 x(1,2) ( R) = 2 ± R . При этом g ( x (1) ( R)) = − R ≤ 0 при R ≥ 0, т.е. при любом R≥0 стационарная точка x(1)(R) является допустимой (внутренней) точкой и сделанное предположение не нарушается. С другой стороны g ( x ( 2) ( R)) = R > 0 при R > 0, т.е. при любом R>0 сделанное предположение нарушается, стационарная точка x(2)(R) является недопустимой (внешней) точкой и должна быть отброшена. Решение x* исходной задачи определяется следующим образом: x* = lim x(1) ( R) = lim (2 + R ) = 2. R →0
R →0
Алгоритм численного решения задачи условной минимизации методом штрафных функций заключается в следующем. 1. Задаются ε , δ 1 , δ 2 , R0 , c и x[ 0 ] ; определяется тип x[ 0 ] (внутренняя или внешняя); выбирается штрафная функция Ω ; строится расширенная функция P; полагается t=1. 2. Решается одним из численных методов задача безусловной минимизации P( x, Rt −1 ) → min, x ∈ Rn. При этом начальная точка x ( 0 ) = x [t −1] , условие окончания вычислений P′ x ( k ) , Rt −1 ≤ ε .
(
)
Результатом решения задачи безусловной минимизации является точка x[t ] , в качестве которой используется оценка x (k ) точки минимума задачи безусловной минимизации. 3. Проверяется условие t=1.
86 Если оно выполняется, то осуществляется переход к п.5. Если условие не выполняется, то осуществляется переход к п.4. 4. Проверяются условия окончания решения исходной задачи: P( x [t ] , Rt −1 ) − P( x [t −1] , Rt − 2 ) P( x [ t −1] , Rt − 2 ) x [jt ] − x [jt −1] x [jt −1] Если
они
≤ δ2,
выполняются,
то
≤ δ1,
j = 1, n. полагается
x * ≅ x [t ] ,
f * ≅ f ( x [t ] ) и вычисления завершаются. Если условия не выполняются, то осуществляется переход к п.5. 5. Определяется Rt , полагается t=t+1 и осуществляется переход к п.2. Пример. Решить методом штрафных функций задачу условной минимизации f ( x) = ( x1 − 4) 2 + ( x2 − 4) 2 → min, x1 + x 2 ≤ 5 при ε = 0,2 , δ 1 = 0,4 , δ 2 = 0,1 , R0 = 10 , c = 10 , x[ 0 ] = (1,1) . Для решения задачи безусловной минимизации применить градиентный метод с дроблением шага (α = 1, β = 1 4) . Решение. Преобразуем ограничение исходной задачи к виду g ( x) ≤ 0 : g ( x) = x1 + x 2 − 5 ≤ 0. Определяем тип x [0 ] : g ( x[ 0 ] ) = 1 + 1 − 5 = −3 < 0.
Поскольку ограничение выполняется, то точка x[ 0 ] явля-
87 ется внутренней (допустимой). Выбираем обратную штрафную функцию, т.е. Ω( R, g ( x)) = − R g ( x ) . При этом расширенная функция P(x,R) имеет вид P ( x, R ) = f ( x ) − R g ( x ) . Первый этап Решаем градиентным методом с дроблением шага (МДШ) задачу безусловной минимизации 10 P( x, R0 ) = ( x1 − 4) 2 + ( x2 − 4) 2 + → min . 5 − x1 − x2 1 Начальная точка x ( 0 ) = x[0 ] = (1, 1) , α = 1 , β = , ε = 0,2 . 4 Отметим, что в процессе решения нужно контролировать знак штрафной функции Ω( R, g ( x)) . Если окажется, что на k-м шаге Ω( R, g ( x )) < 0 , следует уменьшать (дробить) λk . Находим первые частные производные P( x, R0 ) : ∂P ∂P 10 10 = 2( x1 − 4) + = x − + , 2 ( 4 ) . 2 ∂x1 (5 − x1 − x2 ) 2 ∂x2 (5 − x1 − x2 ) 2 Результаты вычислений заносим в табл. 9.1. Таблица 9.1 Ном. итер.
λ
∆x1
∆x 2
0
x1
x2
Ω
P
∂P ∂x1
∂P ∂x 2
P′
1
1
3,33
21,3
−4,89
−4,89
6,92
−0,57
−0,57
0,806
−0,055
0,078
1
1
0,707
0,707
1,71
1,71
6,33
16,82
2
1
0,707
0,707
2,42
2,42
62,5
67,5
P( x ( 2 ) ) > P( x (1) ) → λ = λβ = 0,25 2
0,25
0,177
P( x 2
0,0625
0,044
0,177 (2)
1,89
1,89
8,20
17,1
) > P( x ) → λ = λβ = 0,0625
0,044
(1)
1,75
1,75
6,67
16,79
−0,055
88 Поскольку условие окончания вычислений выполнено (0,078<0,2), то вычисления завершаются. В результате решения задачи безусловной минимизации получаем x[1] ≅ x ( 2) = (1,75; 1,75), P( x[1] , R0 ) ≅ P( x ( 2) , R0 ) = 16,79. Определяем R1 = R0 c = 10 10 = 1 и выполняем второй этап. Второй этап Решаем МДШ задачу безусловной минимизации 1 P( x, R1 ) = ( x1 − 4) 2 + ( x2 − 4) 2 + → min . 5 − x1 − x2 1 Начальная точка x ( 0) = x[1] = (1,75; 1,75) , α = 1 , β = , 4 ε = 0,2 . Находим первые частные производные P( x, R1 ) : ∂P 1 ∂P 1 = 2( x1 − 4) + , = 2( x2 − 4) + . 2 ∂x1 ∂x2 (5 − x1 − x2 ) (5 − x1 − x2 ) 2 Результаты вычислений заносим в табл. 9.2. Таблица 9.2 Ном. итер.
λ
∆x1
∆x2
0 1
1
0,707
0,707
x1
x2
Ω
P
∂P ∂x1
∂P ∂x 2
P′
1,75
1,75
0,67
10,79
−4,06
−4,06
5,74
2,46
2,46
12,5
17,24
P( x (1) ) > P( x ( 0) ) → λ = λβ = 0,25 1
0,25
0,177
0,177
1,93
1,93
0,88
9,45
−3,37
−3,37
4,77
2
0,25
0,177
0,177
2,10
2,10
1,25
8,47
−2,24
−2,24
3,17
3
0,25
0,177
0,177
2,28
2,28
2,27
8,19
1,72
1,72
2,43
4
0,25
−0,177
−0,177
2,10
2,10
1,25
8,47
−0,11
0,156
P( x ( 4 ) ) > P( x ( 3) ) → λ = λβ = 0,0625 4
0,0625
−0,044
−0,044
2,23
2,23
1,85
8,12
−0,11
89 Поскольку условие окончания вычислений выполнено (0,156<0,2), то вычисления завершаются. В результате решения задачи безусловной минимизации получаем x [ 2] ≅ x ( 4 ) = (2, 23; 2,23), P( x [ 2] , R1 ) ≅ P( x ( 4) , R1 ) = 8,12. Проверяем условия окончания решения исходной задачи P( x [ 2 ] , R1 ) − P( x [1] , R0 ) [1]
P( x , R0 )
=
8,12 − 16,79 = 0,516 > δ 1 = 0,4. 16,79
Поскольку условия не выполняются, то определяем R2 = R1 c = 1 10 = 0,1 и выполняем третий этап. Третий этап Решаем МДШ задачу безусловной минимизации 0,1 P( x, R2 ) = ( x1 − 4) 2 + ( x 2 − 4) 2 + → min . 5 − x1 − x 2 1 Начальная точка x ( 0) = x [ 2] = (2,23;2,23) , α = 1 , β = , 4 ε = 0,2 . Находим первые частные производные P( x, R2 ) : ∂P 0,1 ∂P 0,1 = 2( x1 − 4) + , = 2( x 2 − 4) + . 2 ∂x1 (5 − x1 − x 2 ) ∂x 2 (5 − x1 − x 2 ) 2 Результаты вычислений заносим в табл. 9.3. Таблица 9.3 Ном. итер.
λ
∆x1
∆x2
0 1
1
0,707
0,707
x1
x2
Ω
2,23
2,23
0,185
2,94
2,94
−0,114
∂P
∂P ∂x2
P′
−3,2
−3,2
4,52
−0,09
0,127
P ∂x 1 6,45
Ω( R2 , g ( x)) = −0,114 < 0 → λ = λβ = 0, 25 1
0,25
0,177
0,177
2,41
2,41
0,556
5,61
−0,09
90 Поскольку условие окончания вычислений выполнено (0,127<0,2), то вычисления завершаются. В результате решения задачи безусловной минимизации получаем x [3] ≅ x (1) = (2,41; 2,41), P( x [3] , R2 ) ≅ P( x (1) , R2 ) = 5,61. Проверяем условия окончания вычислений исходной задачи P( x [ 3] , R2 ) − P( x [ 2 ] , R1 ) 5,61 − 8,12 = = 0,309 < δ 1 = 0,4, 8,12 P( x [ 2] , R1 ) x [j3] − x [j2 ] x
[ 2] j
=
2,41 − 2,23 = 0,081 < δ 2 = 0,1, 2,23
j = 1,2.
Поскольку условия выполняются, то полагаем * [3] x ≅ x ≅ ( 2,41; 2,41), f ≅ f ( x ) ≅ 5,06 и вычисления завершаются. Ответ: x * ≅ (2,41; 2,41), f * ≅ 5,06. ∗
[ 3]
Задачи 1. Дана задача условной минимизации f ( x) = ( x1 − 4) 2 + ( x 2 − 4) 2 → min , x1 + x2 ≤ 5 . Решить аналитически: а) методом внешней точки, б) методом внутренней точки (логарифмическая штрафная функция). 2. Дана задача условной минимизации f ( x) = x 1 + x 2 → min , x12 ≤ x2 , x1 ≥ 1 . Решить аналитически методом внутренней точки (логарифмическая штрафная функция).
91 10. МЕТОДЫ ОТСЕЧЕНИЙ Методы отсечений относятся к численным методам решения дискретных задач оптимизации (методам дискретного программирования). Они предназначены для решения целочисленных задач линейного программирования (ЛП). Идея методов отсечения состоит в следующем. Первоначально решается обычная ("непрерывная") задача ЛП, полученная из исходной задачи отбрасыванием требования целочисленности. Если полученное решение является целочисленным, то оно будет также решением исходной задачи. Если нет, то к ограничениям исходной задачи добавляется новое линейное ограничение, обладающее двумя свойствами: 1) полученное нецелочисленное решение ему не удовлетворяет; 2) все целочисленные точки допустимого множества исходной задачи ему удовлетворяют. Такое ограничение называется правильным отсечением. Затем решается расширенная непрерывная задача ЛП, т.е. непрерывная задача с добавленным ограничением. Если полученное решение не является целочисленным, добавляется новое правильное отсечение и т.д. Процесс повторяется до тех пор, пока решение очередной расширенной непрерывной задачи ЛП не окажется целочисленным. Таким образом, решение целочисленной задачи ЛП сводится к решению некоторой последовательности обычных задач ЛП. Геометрически добавление каждого такого линейного ограничения означает проведение гиперплоскости, отсекающей от многогранника допустимых решений очередной непрерывной задачи ЛП оптимальную точку с нецелочисленными координатами, но не затрагивающей ни одной из целочисленных точек этого многогранника. Поэтому методы, опирающиеся на эту идею, получили название методов отсечений. Обозначим через Lk и x (k ) , k=0,1,..., соответственно k-ю расширенную непрерывную задачу ЛП и ее решение. Отметим, что L0 представляет собой исходную задачу без учета требова-
92 ний целочисленности. Задача Lk+1 получается в результате добавления к ограничениям задачи Lk (k+1)-го правильного отсечения. Алгоритм решения целочисленной задачи ЛП методом отсечений заключается в следующем. 1. Решается задача ЛП L0. Если задача L0 не имеет решения, то исходная задача не имеет целочисленного решения и вычисления завершаются. 2. Находится решение x ( 0 ) . Если решение x ( 0 ) является целочисленным, то полагается x ∗ = x ( 0 ) , f ∗ = f ( x (0 ) ) и вычисления завершаются. Если решение x ( 0 ) не является целочисленным, то полагается k = 1 и осуществляется переход к п. 3. 3. Определяется k-е правильное отсечение, составляется задача Lk. 4. Решается задача ЛП Lk. Если задача Lk не имеет решения, то исходная задача не имеет целочисленного решения и вычисления завершаются. 5. Находится решение x (k ) . Если решение x (k ) является целочисленным, то полагается x ∗ = x ( k ) , f ∗ = f ( x ( k ) ) и вычисления завершаются. Если решение x (k ) не является целочисленным, то полагается k = k +1 и осуществляется переход к п. 3. Конкретные способы построения правильных отсечений приводят к конкретным вычислительным алгоритмам. На практическом занятии рассматривается первый (дробный) алгоритм Гомори, предназначенный для решения полностью целочисленных задач ЛП. Рассмотрим полностью целочисленную задачу ЛП: n
f ( x) = ∑ c j x j → max , j =1
93 n
∑ aij x j ≤ bi , i = 1, m , j =1
xj ≥ 0,
j = 1, n ,
x j − целые, j = 1, n . Отметим, что для применения первого алгоритма Гомори все коэффициенты и правые части ограничений исходной задачи должны быть приведены к целочисленному виду. Первоначально решается задача L0. Пусть решение x ( 0 ) этой задачи не является целочисленным. Согласно общему алгоритму, следует определить дополнительное ограничение (1-е правильное отсечение). Пусть последняя симплекс-таблица задачи L0 имеет следующий вид: Базис
Своб. член
x1′
...
x′m
x1′′
...
x′n′
x1′
b1
1
...
0
a11
...
a1n
"
"
"
...
"
"
...
"
x′m
bm
0
...
1
a m1
...
a mn
f
b0
0
...
0
c1
...
cn
Здесь через xi′ , i = 1, m , обозначены базисные переменные, а через x′j′ , j = 1, n , − свободные переменные. Такая система обозначений выбрана из соображений удобства. Строки симплекс-таблицы, которым соответствуют нецелые значения базисных переменных, т.е. нецелые bi , называют производящими. Каждая производящая строка задает правильное отсечение, которое определяется следующим образом: i-я производящая строка записывается в виде n
(1 + 0) xi′ + ∑ ([ aij ] + {aij }) x′′j = [bi ] + {bi } , j =1
94 где [а] и {a} − соответственно целая и дробная части действительного числа а, a = [a ] + {a} . Эта производящая строка задает правильное отсечение следующего вида: n
− ∑ {aij }x′′j + u1 = −{bi } , j =1
где u1 − неотрицательная дополнительная переменная, которая (по определению) должна принимать целые значения. Выбор производящей строки для построения правильного отсечения осуществляется с помощью эмпирических правил. Первое из них предписывает выбирать производящую строку, которой соответствует max{bi } , i
второе − строку, которой соответствует n max d i ≡ {bi } ∑ {a ij }. i j =1 Если с помощью указанных правил не удается выбрать производящую строку для построения правильного отсечения, производящая строка выбирается произвольно. В результате добавления к ограничениям задачи L0 дополнительного ограничения (1-го правильного отсечения) получаем задачу L1, т.е. L0 , n L1 − ∑ {aij }x′′j + u1 = −{bi }, j =1 u1 ≥ 0. Наиболее удобным методом решения задачи L1 в указанной постановке является двойственный симплекс-метод. При этом дополнительная переменная u1 вводится в базис, а дополнительное ограничение добавляется к итоговой симплекс-таблице задачи L0. Пример. Решить методом отсечений следующую цело-
95 численную задачу ЛП: f ( x) = 7 x1 + 9 x2 → max , − x1 + 3 x2 ≤ 6 , 7 x1 + x2 ≤ 35 , x1 ≥ 0 , x2 ≥ 0 , x1 , x2 − целые. Решение. Нулевой этап Записываем задачу L0 (исходная задача без учета требования целочисленности): f ( x) = 7 x1 + 9 x2 → max , − x1 + 3x 2 ≤ 6, 7 x1 + x2 ≤ 35 , x1 ≥ 0 , x2 ≥ 0 . Решаем задачу L0 симплекс-методом. Для этого преобразуем задачу к канонической форме, вводя дополнительные переменные x3 и x4: f ( x) = 7 x1 + 9 x2 → max , − x1 + 3 x2 + х3 = 6 , 7 x1 + x2 + х4 = 35 , x j ≥ 0 , j = 1,4 . В качестве базисных выберем переменные x3 и x4 . Таким образом, начальный базис Б0 = {x3 , x4 } . В результате приходим к табл. 10.1. Из табл. 10.1 следует, что начальное допустимое базисное решение ДБР0 = (x3=6, x4=35). ДБР 0 не является оптимальным, поскольку в строке целевой функции есть отрицательные коэффициенты f x1 = −7, f x 2 = −9 . Задача разрешима, поскольку в столбцах x1 и x2 есть положительные коэффициенты. Находим Б1 :
96 Таблица 10.1 ↓
Базис Своб. член →
x1
x2
x3
x4
x3
6
−1
3
1
0
6/3=2
x4
35
7
1
0
1
35/1=35
f
0
−7
−9
0
0
f x 2 < 0, f x 2 < f x1 → x2 вводим в базис,
min {6 3 = 2, 35 1 = 35} = 2 → x3 `выводим из базиса. Таким образом, Б1 = {x2 , x4 }. В результате приходим к табл. 10.2. Таблица 10.2 ↓ Своб. Базис x1 x3 x4 x2 член 1 1 2 1 0 x2 − 3 3 22 1 33 ⋅ 3 9 33 0 1 → x4 − = 3 3 22 2 f
18
0
−10
3
0
Из табл. 10.2 следует, что ДБР1 = ( х2 = 2, х4 = 33) . ДБР1 не является оптимальным ( f x = −10 < 0) , задача разрешима (в 1
столбце x1 есть положительный коэффициент). Находим Б 2 : f x < 0 → x1 вводим в базис, 1
x4 выводим из базиса. Таким образом, Б 2 = {x1 , x2 }. В результате приходим к табл. 10.3.
97 Таблица 10.3 Базис x1 x2 f
Своб. член 1 4 2 1 3 2 63
x1
x2
1
0
0
1
0
0
x3
x4
1 22 7 22 6 2 11
3 22 1 22 4 1 11
−
1 1 Из табл. 10.3 следует, что ДБР2 = x1 = 4 , x 2 = 3 , 2 2 ДБР2 является оптимальным решением. 1 1 Таким образом, задача L0 имеет решение х ( 0 ) = 4 , 3 , 2 2 при этом f ( х ( 0 ) ) = 63 . Поскольку x ( 0 ) не является целочисленным, то выполняем 1-й этап. Первый этап Определяем первое правильное отсечение. Производящими являются 1-я и 2-я строки итоговой симплекс-таблицы задачи L0 . 1 1 Поскольку {b1} = и {b2 } = , то первое правило не по2 2 зволяет выбрать производящую строку для построения отсечения. Используем второе правило выбора производящей строки. Вычисляем d1 и d 2 : 1 21 3 11 1 7 1 11 , d2 = d1 = + = + = . 2 22 22 24 2 22 22 8 Поскольку d1 < d2, то для построения 1-го правильного отсечения выбираем 2-ю строку итоговой симплекс-таблицы задачи L0. 2-й строке соответствует равенство
98 7 1 1 (1 + 0) x 2 + 0 + x 3 + 0 + x 4 = 3 + . 22 22 2 Следовательно, 1-е правильное отсечение имеет вид 7 1 1 − x3 − x4 + u1 = − . 22 22 2 Составляем задачу L1: L0 , 7 1 1 L1 − x3 − x4 + u1 = − , 22 2 22 u ≥ 0 . 1 Решаем задачу L1 двойственным симплекс-методом. В качестве базисных выберем переменные x1 , x2 , u1 . Таким образом, Б 0 = {x1 , x2 , u1}. В результате приходим к табл. 10.4. Таблица 10.4 ↓ Базис Своб. x1 x2 x3 x4 u1 член 1 1 3 1 0 0 x1 4 − 2 22 22 1 7 1 0 1 0 x2 3 2 22 22 1 7 1 0 0 1 → u1 − − − 2 22 22 6 4 0 f 63 0 0 2 1 11 11 8 30 Из табл. 10.4 следует, что начальное базисное решение БР0 1 1 1 = x1 = 4 , x 2 = 3 , u1 = − . БР0 не является допустимым, по2 2 2 скольку в столбце свободных членов есть отрицательный коэф-
99 фициент bu = − 1 2 < 0 . Задача разрешима, поскольку в строке u1 1
есть отрицательные коэффициенты. Находим Б1 : bu < 0 → u1 выводим из базиса, 1
28 7 15 1 min − = 8, − = 30 = 8 → x3 вводим в базис. 22 11 22 11 Таким образом, Б1 = {x1 , x2 , x3}. В результате приходим к табл. 10.5. Таблица 10.5 Базис x1 x2 x3 f
Своб. член 4 4 7 3 4 1 7 59
Из
табл.
x1
x2
x3
x4
u1
1
0
0
0
1
0
0
0
1
1 7 0 1 7
1 7 1 1 −3 7
0
0
0
1
8
10.5
следует,
что
−
4 БР1 = х1 = 4 , х 2 = 3, 7
4 х3 = 1 . БР1 является допустимым и, следовательно, оптималь7 ным решением. 4 Таким образом, задача L1 имеет решение x (1) = 4 , 3 , 7 (1) при этом f ( x ) = 59. Поскольку x (1) не является целочисленным, то выполняем 2-й этап. Второй этап Определяем второе правильное отсечение. Производящими являются 1-я и 3-я строки итоговой симплекс-таблицы задачи L1.
100 4 4 и {b3} = , то первое правило не по7 7 зволяет выбрать производящую строку для построения отсечения. Используем второе правило выбора производящей строки. Вычисляем d1 и d 2 : 4 1 6 4 4 1 6 4 d1 = + = , d2 = + = . 7 7 7 7 7 7 7 7 Поскольку d1 = d 2 , то второе правило не позволяет выбрать производящую строку для построения отсечения. Выберем произвольно 1-ю строку итоговой симплекс-таблицы задачи L1. Этой строке соответствует равенство 1 6 4 (1 + 0) x1 + 0 + x 4 + − 1 + u1 = 4 + . 7 7 7 Следовательно, 2-е правильное отсечение имеет вид 1 6 4 − x4 − u1 + u2 = − . 7 7 7 Составляем задачу L2: L1 , 1 6 4 L2 − x4 − u1 + u 2 = − , 7 7 7 u ≥ 0 . 2 Решаем задачу L2 двойственным симплекс-методом. В качестве базисных выберем переменные x1 , x2 , x3 , u2 . Таким образом, Б 0 = {x1 , x 2 , x3 , u 2 }. В результате приходим к табл. 10.6. Из табл. 10.6 следует, что начальное базисное решение 4 4 4 БР0 = x1 = 4 , x 2 = 3, x3 = 1 , u2 = − . БР0 не является допус7 7 7 тимым, поскольку bu = − 4 7 < 0 ; задача разрешима, поскольку в Поскольку {b1} =
2
строке u2 есть отрицательные коэффициенты. Находим Б1 :
101 Таблица 10.6 Базис Своб. член 4 x1 4 7 x2
x3 →
↓ x1
x2
x3
x4
1
0
0
1 7
3 4 1 7
0
1
0
0
0
1
0 1 7
u2
−
4 7
0
0
0
f
59
0
0
0
−
1 7
1 7
u1
u2
1 7
0
1
0
−
1 7
0
6 7
1
8 1 9 3
0
−3 −
bu < 0 → u2 выводим из базиса, 2
1 6 1 min 1 − = 7 , 8 − = 9 = 7 → x4 вводим в базис. 7 7 3 Таким образом, Б1 = {x1 , x2 , x3 , x4 }. В результате приходим к табл. 10.7. Из табл. 10.7 следует, что БР1 = ( х1 = 4, х 2 = 3, х3 = 1, x 4 = 4 ) . БР1 является допустимым и, следовательно, оптимальным решением. Таким образом, задача L2 имеет решение x ( 2 ) = (4, 3) , при этом f ( х ( 2 ) ) = 55 . Поскольку решение x ( 2 ) является целочисленным, то точка x ( 2 ) = (4, 3) является решением исходной задачи; поэтому полагаем х ∗ = x ( 2 ) = (4, 3) , f ∗ = f ( x ( 2 ) ) = 55 и вычисления завершаются.
102 Таблица 10.7 Базис Своб. член
x1
x2
x3
x4
u1
u2
x1
4
1
0
0
0
−1
1
x2
3
0
1
0
0
1
0
x3
1
0
0
1
0
−4
1
x4
4
0
0
0
1
6
−7
f
55
0
0
0
0
2
7
Ответ: х ∗ = (4, 3) , f ∗ = 55 . Задачи 1. Решить методом отсечений следующую целочисленную задачу ЛП: f ( x ) = x1 + 2 x2 → max, 4 x1 + 2 x2 ≤ 13 , x1 ≥ 0 , x2 ≥ 0 , x1 , x 2 − целые. 2. Решить методом отсечений следующую целочисленную задачу ЛП: f ( x ) = 2 x1 + 3x 2 → max, 2 x1 + 5 x2 ≤ 16 , 6 x1 + 5 x2 ≤ 30 , x1 ≥ 0 , x2 ≥ 0 , x1 , x 2 − целые.
103 11. МЕТОД ВЕТВЕЙ И ГРАНИЦ Метод ветвей и границ относится к группе комбинаторных методов дискретного программирования и является одним из наиболее распространенных методов этой группы. Центральную идею комбинаторных методов составляет замена полного перебора допустимого множества X частичным перебором. В случае метода ветвей и границ это осуществляется путем последовательного разбиения допустимого множества на подмножества (ветвления) и вычисления оценок (границ), позволяющих отбрасывать подмножества, заведомо не содержащие решения задачи. При реализации общей схемы метода ветвей и границ для различных задач дискретного программирования необходимо, исходя из специфики этих задач, конкретизировать правила ветвления и вычисления границ. На практическом занятии рассматривается метод ветвей и границ для задачи целочисленного линейного программирования (ЛП) следующего вида: n
f ( x) = ∑ c j x j → max , j =1
n
∑ aij x j ≤ bi , i = 1, m ,
j =1
xj ≥ 0 , x j − целые,
j = 1, n ,
j = 1, n .
Допустимое множество Х данной задачи предполагается ограниченным. В данном случае на каждом этапе (шаге) решаются непрерывные задачи ЛП: на предварительном (нулевом) этапе – задача L0; на k-м, k = 1, 2,..., этапе − задачи L2k-1 и L2k. Задача L0 , как и в методе отсечений, представляет собой исходную задачу без учета требования целочисленности; задача Lν , ν = 1,2,..., получается в результате добавления к задаче L0 дополнительных ограничений. Верхняя граница (оценка) ξν целевой функции f для задачи
104 Lν, ν = 0,1,2,..., определяется следующим образом: ξ ν ≡ f ( x (ν ) ) ,
где x (ν ) − решение задачи Lν .
Если задача Lν не имеет решения, то полагается ξ ν ≡ −∞ . В процессе решения строится дерево задач, в котором ν -я, ν = 0,1,2,..., вершина соответствует задаче Lν . Обозначим через I множество вершин, из которых возможно ветвление. Для ветвления на k-м, k =1,2,..., этапе выбирается ν-я, ν∈I, вершина (задача Lν ), которая имеет максимальную верхнюю оценку ξ ν . Пусть в решении x (ν ) некоторая компонента xr(ν ) , 1 ≤ r ≤ n , не является целочисленной. Допустимое, т.е. целочисленное, значение xr должно удовлетворять одному из неравенств, представляющих собой необходимые условия целочисленности xr : либо xr ≤ [ xr(ν ) ] , либо xr ≥ [ xr(ν ) ] + 1 , где [a] − целая часть действительного числа а. В результате задача Lν разветвляется (разбивается) на две не связанные между собой задачи L2 k −1 и L2 k . Задача L2 k −1 представляет собой задачу Lν с дополнительным ограничением ) xr ≤ [ x(í r ] , а задача L2k − задачу Lν с дополнительным ограниче-
нием xr ≥ [ xr(ν ) ] + 1 , т.е. Lν , L2 k −1 (ν ) x ≤ [ xr ];
Lν , L2 k (ν ) x ≥ [ xr ] + 1.
Для ускорения процесса решения вводится нижняя граница целевой функции f для целочисленного решения, обозначаемая Θ . После решения задачи Lν значение Θν определяется следующим образом:
105 Θν −1 , если задача L не имеет решения либо x (ν ) ν Θν = не является целочисленным; max{Θν - 1 ,ξ ν }, если x (ν ) является целочисленным. При этом Θ 0 ≡ −∞ . Ветвление на k-м, k = 1,2,.., этапе из i-й, i ∈ I, вершины следует прекратить, если верхняя граница ξ i целевой функции для задачи Li не больше известной на данном шаге нижней границы Θ 2 k целевой функции для целочисленного решения. Процесс решения завершается, когда отсутствуют вершины, из которых возможно ветвление, т.е. I = ∅. При этом оптимальное значение f ∗ = Θ 2k , решение x ∗ = x (ν ) , где x (ν ) определятся из условия f ( x (ν ) ) = Θ 2 k . Итак, алгоритм решения целочисленной задачи ЛП методом ветвей и границ заключается в следующем. 1. Решается задача ЛП L0. Если задача L0 не имеет решения, то исходная задача не имеет целочисленного решения и вычисления завершаются. 2. Находится решение x ( 0 ) , вычисляется верхняя граница ξ 0 = f ( x ( 0) ) . Если решение x ( 0 ) является целочисленным, то полагается x ∗ = x (0 ) , f ∗ = ξ 0 и вычисления завершаются. Если решение x ( 0 ) не является целочисленным, то полагается Θ 0 = −∞ , k=1 и осуществляется переход к п. 3. 3. Выбирается для ветвления ν-я вершина из I, для которой выполняется условие ξ ν = max ξ i . i∈ I
106 4. Выбирается (произвольно) одна из нецелочисленных компонент xr(ν ) , осуществляется ветвление по переменной xr , составляются задачи L2 k −1 и L2k . 5. Решается задача L j , j = 2k − 1, 2k . Если задача L j не имеет решения, то полагается ξ j = −∞ , Θ j = Θ j −1 и осуществляется (при j=2k) переход к п. 7. 6. Находится x ( j ) , вычисляется ξ j = f ( x ( j ) ) . Если решение x ( j ) является целочисленным, то полагается Θ j = max{Θ j −1 , ξ j } и осуществляется (при j = 2k) переход к п. 7. Если решение x ( j ) не является целочисленным, то полагается Θ j = Θ j −1 и осуществляется (при j = 2k) переход к п. 7. 7. Просматриваются вершины из I и прекращается ветвление, если выполняется условие ξ i ≤ Θ 2k , i ∈ I. 8. Проверяется условие окончания вычислений I = ∅. Если оно выполняется, то полагается f ∗ = Θ 2 k , x ∗ = x (ν ) , где x (ν ) определяется из условия f ( x (ν ) ) = Θ 2 k , и вычисления завершаются. Если условие не выполняется, то полагается k = k +1 и осуществляется переход к п. 3. Пример. Решить методом ветвей и границ следующую целочисленную задачу ЛП: f ( x) = 2 x1 + 3x2 → max , 5 x1 + 7 x2 ≤ 35 , 4 x1 + 9 x2 ≤ 36 , x1 ≥ 0 , x2 ≥ 0 , x1 , x2 − целые.
107 Решение. Предварительный (нулевой) этап Записываем задачу L0 (исходная задача без учета требования целочисленности): f ( x) = 2 x1 + 3x2 → max , (1) 5 x1 + 7 x2 ≤ 35 , (2) 4 x1 + 9 x2 ≤ 36 , x1 ≥ 0, x2 ≥ 0. Этой задаче соответствует нулевая вершина дерева задач (см. ниже рис. 11.6). Решаем графически задачу L0 (рис. 11.1). x2 6 5 4 3 2 1
x (0) f ( x) 1 2 3 4 5 6 7 8 9 (1) Рис. 11.1
x1 (2)
Из рис. 11.1 следует, что задача L0 имеет решение x ( 0 ) . Точка x ( 0 ) является решением системы уравнений 5 x1 + 7 x 2 = 35 , 4 x1 + 9 x 2 = 36 . Находим x ( 0 ) и ξ 0 :
108 −
45 x1 + 63x2 = 315 63 12 → x1 = =3 ; 28 x1 + 63 x2 = 252 17 17 17 x1
= 63
5 ⋅ 63 9 280 40 6 + 7 х2 = 35 → 7 х2 = 35 − 18 = → х2 = =2 ; 17 17 17 17 17 12 6 x ( 0 ) = (3 , 2 ); 17 17 12 6 8 ξ 0 = f ( x ( 0) ) = 2 ⋅ 3 + 3 ⋅ 2 = 14 . 17 17 17 ( 0) не является целочисленным, то полагаем Поскольку x 0 Θ = −∞ и выполняем 1-й этап. Первый этап Осуществляем ветвление из нулевой вершины. Выбираем для ветвления нецелочисленную компоненту 6 x2( 0 ) = 2 ; осуществляем ветвление по переменной x2 : x2 ≤ 2 , 17 x2 ≥ 3 ; составляем задачи L1 и L2 : L , L1 0 x 2 ≤ 2;
L , L2 0 x2 ≥ 3.
Записываем задачу L1: f ( x ) = 2 x1 + 3x 2 → max , 5 x1 + 7 x 2 ≤ 35 , (1) 4 x1 + 9 x2 ≤ 36 , (2) x1 ≥ 0, 0 ≤ x2 ≤ 2. Этой задаче соответствует первая вершина дерева задач (см. ниже рис. 11.6). Решаем графически задачу L1 (рис. 11.2). Из рис. 11.2 следует, что задача L1 имеет решение x (1) .
109 Точка x (1) является решением системы уравнений 5 x1 + 7 x 2 = 35 , x2 = 2 . x2 6 5 4 3 2 1
x (1) f ( x) 1 2 3 4 5 6 7 8 9 (1) Рис. 11.2
x1 (2)
Находим x (1) и ξ 1 : 1 5 х1 + 7 ⋅ 2 = 35 → 5 х1 = 21 → х1 = 4 ; 5 1 x (1) = (4 , 2); 5 1 2 ξ 1 = f ( x (1) ) = 2 ⋅ 4 + 3 ⋅ 2 = 14 . 5 5 (1) Поскольку x не является целочисленным, то полагаем 1 Θ = Θ 0 = −∞ . Записываем задачу L2 : f ( x) = 2 x1 + 3x2 → max , 5 x1 + 7 x2 ≤ 35 , (1) 4 x1 + 9 x2 ≤ 36 , (2) x1 ≥ 0, x2 ≥ 3.
110 Этой задаче соответствует вторая вершина дерева задач (см. ниже рис. 11.6). Решаем графически задачу L2 (рис. 11.3). x2 6 5 4 3 2 1
x (2) f ( x) 1 2 3 4 5 6 7 8 9 (1) Рис. 11.3
x1 (2)
Из рис. 11.3 следует, что задача L2 имеет решение x(2) . Точка x ( 2 ) является решением системы уравнений 4 x1 + 9 x 2 = 36 , x2 = 3 . Находим x ( 2 ) и ξ 2 : 1 4 х1 + 9 ⋅ 3 = 36 → 4 х1 = 9 → х1 = 2 ; 4 1 x ( 2 ) = (2 , 3); 4 1 1 ξ 2 = f ( x ( 2) ) = 2 ⋅ 2 + 3 ⋅ 3 = 13 . 4 2 ( 2) Поскольку x не является целочисленным, то полагаем 2 1 Θ = Θ = −∞ . Просматриваем вершины из I = {1, 2}.
111 2 > Θ 2 = −∞ , то не прекращаем ветвле5 ние из 1-й вершины. Таким образом, I = {1, 2}. 1 Поскольку ξ 2 = 13 > Θ 2 = −∞ , то не прекращаем ветвле2 ние из 2-й вершины. Таким образом, I = {1, 2}. Проверяем условие окончания вычислений. Поскольку I ≠ ∅, то выполняем 2-й этап. Поскольку ξ 1 = 14
Второй этап Выбираем для ветвления 1-ю вершину, поскольку выполняется условие 2 ξ 1 = 14 = max ξ i . 5 i ∈I 1 Выбираем нецелочисленную компоненту x1(1) = 4 ; осу5 ществляем ветвление по переменной x1 : x1 ≤ 4 , x1 ≥ 5 ; составляем задачи L3 и L4 : L, L3 1 x1 ≤ 4;
L, L4 1 x1 ≥ 5.
Записываем задачу L3 : f ( x) = 2 x1 + 3x2 → max , 5 x1 + 7 x2 ≤ 35 , (1) 4 x1 + 9 x2 ≤ 36 , (2) 0 ≤ x1 ≤ 4 , 0 ≤ x2 ≤ 2 . Этой задаче соответствует третья вершина дерева задач (см. ниже рис. 11.6). Решаем графически задачу L3 (рис. 11.4). Из рис. 11.4 следует, что задача L3 имеет решение x (3) :
112 x (3) = (4, 2) ;
ξ 3 = f ( x ( 3) ) = 2 ⋅ 4 + 3 ⋅ 2 = 14.
Поскольку x (3 ) является целочисленным, то полагаем Θ3 = max{Θ 2 , ξ 3 } = max{−∞,14} = 14 . x2 6 5 4 3 2 1
x (3) f ( x) 1 2 3 4 5 6 7 8 9 (1) Рис. 11.4
x1 (2)
Записываем задачу L4 : f ( x) = 2 x1 + 3x2 → max , 5 x1 + 7 x2 ≤ 35 , (1) 4 x1 + 9 x2 ≤ 36 , (2) x1 ≥ 5, 0 ≤ x2 ≤ 2 . Этой задаче соответствует четвертая вершина дерева задач (см. ниже рис. 11.6). Решаем графически задачу L4 (рис. 11.5). Из рис. 11.5 следует, что задача L4 имеет решение x ( 4 ) . Точка x ( 4 ) является решением системы уравнений 5 x1 + 7 x 2 = 35 , x1 = 5 . Находим x ( 4 ) и ξ 4 :
113 3 5 ⋅ 5 + 7 х2 = 35 → 7 х2 = 10 → х2 = 1 ; 7 3 x ( 4 ) = (5, 1 ); 7 x2 6 5 4 3 2 1
f ( x)
x (4)
1 2 3 4 5 6 7 8 9 (1) Рис. 11.5
x1 (2)
3 2 ξ 4 = f ( x ( 4) ) = 2 ⋅ 5 + 3 ⋅1 = 14 . 7 7 ( 4) Поскольку x не является целочисленным, то полагаем 4 3 Θ = Θ = 14 . Просматриваем вершины из I = {2, 3, 4}. 1 Поскольку ξ 2 = 13 < Θ 4 = 14 , то прекращаем ветвление 2 из 2-й вершины. Таким образом, I={3,4}. Поскольку ξ 3 = 14 = Θ 4 , то прекращаем ветвление из 3-й вершины. Таким образом, I = {4}. 2 Поскольку ξ 4 = 14 > Θ 4 = 14 , то не прекращаем ветвле7 ние из 4-й вершины. Таким образом, I = {4}. Проверяем условие окончания вычислений. Поскольку I ≠∅, то выполняем 3-й этап.
114 На 3-м этапе следует осуществлять ветвление из вершины 2 4, которой соответствует оптимальное значение f ( x ( 4 ) ) = 14 . 7 Несмотря на то, что полученное значение f превышает нижнюю границу целевой функции для целочисленного решения Θ 4 = 14 , дальнейшее ветвление из вершины 4 не позволяет улучшить нижнюю границу Θ , поскольку f ( x ( 4 ) ) − Θ 4 < 1 и все коэффициенты целевой функции являются целыми числами. Таким образом, ветвление из вершины 4 в лучшем случае приведет к другому целочисленному решению, для которого f = 14. Если поиск других решений с тем же самым значением f не представляет интереса, то ветвление из вершины 4 осуществлять нецелесообразно и f ∗ = Θ 4 = 14 , вычисления можно завершить. При этом x∗ = x (3) = (4, 2) . Ответ: x ∗ = (4, 2), f ∗ = 14. Задачи 1. Решить методом ветвей и границ следующую целочисленную задачу ЛП: f ( x) = x1 + 2 x2 → max , 4 x1 + 2 x2 ≤ 13, x1 ≥ 0 , x2 ≥ 0 , x1 , x2 − целые. 2. Решить методом ветвей и границ следующую целочисленную задачу ЛП: f ( x) = 2 x1 + 2 x2 → max , 2 x1 + 5 x2 ≤ 16 , 6 x1 + 5 x2 ≤ 30 , x1 ≥ 0 , x2 ≥ 0 , x1 , x2 − целые.
115
Рис. 11.6
116 ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ «ЗАДАЧА ВЫБОРА ПОРТФЕЛЯ ЦЕННЫХ БУМАГ» 1. ОПИСАНИЕ ЗАДАЧИ
Определение оптимального портфеля ценных бумаг представляет собой одну из важнейших задач, с которыми сталкиваются инвестиционные фирмы (банки, страховые компании и др.). Под портфелем понимают набор вложений в различные виды ценных бумаг: обычные облигации, банковские депозитные сертификаты, обычные акции и др. Для анализа задачи выбора портфеля ценных бумаг разработан ряд математических моделей. Предположим, что инвестиционная фирма может вложить наличный капитал K в следующем инвестиционном периоде в ценные бумаги N видов, требуется определить соответствующие доли вложений. Пусть x j , j = 1, N , − величина капитала, вкладываемого в ценные бумаги j-го вида. Тогда на переменные x j накладываются следующие ограничения: N
∑ xj ≤ K,
j =1
x j ≥ 0, j = 1, N . Предположим, что фирма имеет статистические данные о доходности от вложений r j (t ), j = 1, N , t = 1, T , для каждого вида ценных бумаг за T периодов, начиная с периода t0. Доходность r j (t ) определяется как доход за период t на одну денежную единицу вложений в ценные бумаги вида j. Величину r j (t ) можно определить из соотношения c j (t + 1) − c j (t ) + d j (t ) r j (t ) = , c j (t ) где c j (t ) − цена бумаг j-го типа на начало периода t; d j (t ) − суммарные дивиденты, полученные за период t.
117 Значения r j (t ) непостоянны и могут сильно колебаться от периода к периоду. Эти значения могут иметь любой знак или быть нулевыми. Для оценки целесообразности вложений в ценные бумаги j-го вида следует вычислить среднюю или ожидаемую доходность µ j от ценных бумаг вида j 1 t 0 +T −1 ∑ r j (t ). T t =t0 Средний или ожидаемый доход E(x) портфеля ценных бумаг определяется следующим образом:
µj =
N
E ( x) = ∑ µ j x j . j =1
Наряду со средним (ожидаемым) доходом важнейшей характеристикой портфеля ценных бумаг является риск, связанный с инвестициями. В качестве меры инвестиционного риска можно рассматривать величину отклонения доходности от ее среднего значения за последние T периодов. Тогда оценкой инвестиционного риска для бумаг вида j является дисперсия σ 2jj , которая вычисляется по формуле 1 t 0 +T −1 ∑ σ 2jj = r j (t ) − µ j 2 . t t = T 0 Кроме того, курсы некоторых ценных бумаг подвержены совместным колебаниям (примерами таких ценных бумаг являются акции нефтяных и автомобильных компаний). Оценкой инвестиционного риска для пары видов ценных бумаг, принадлежащих к взаимосвязанным областям экономики, является ковариация σ ij2 , которая вычисляется по формуле
[
]
[
]
1 t0 +T −1 ∑ [ri (t ) − µ i ] r j (t ) − µ j . . T t =t0 Заметим, что при i=j эта величина сводится к дисперсии бумаг вида j.
σ ij2 =
118 Таким образом, в качестве меры инвестиционного риска портфеля ценных бумаг может служить величина N
V ( x ) = ∑ σ 2jj x 2j + ∑ ∑ σ ij2 xi x j . j =1
i j ≠i
Отметим, что слагаемые двойной суммы приведенного выражения определяются лишь для тех пар видов ценных бумаг, которые принадлежат к взаимосвязанным областям экономики. На основании описанных характеристик − ожидаемый доход E(x) и инвестиционный риск V(x) − предложено несколько моделей, оптимизирующих портфель ценных бумаг. Рассмотрим три из них. Модель 1. Максимизация ожидаемого дохода при ограничении на общий объем инвестиций. Модель имеет вид N
E ( x) = ∑ µ j x j → max, j =1
N
∑ xj ≤ K,
j =1
x j ≥ 0, j = 1, N . Данная модель является моделью линейного программирования (ЛП). Оптимальное решение x ∗ = {x ∗j }, j = 1, N , E ∗ = E ( x ∗ ) может быть найдено, например, симплекс-методом. Портфель ценных бумаг может также формироваться с учетом различных ограничений, связанных с политикой фирмы. Модель 2. Максимизация ожидаемого дохода при ограничениях, определяемых политикой фирмы. Различные виды ценных бумаг можно отнести к различным группам инвестиционного риска. Например: 1-я группа − низкий риск; 2-я группа − средний риск; 3-я группа − высокий риск. К группе 1 могут быть отнесены обычные облигации, текущие банковские счета, банковские депозитные сертификаты и
119 др. Такие «безопасные» с точки зрения риска инвестиции дают, однако, небольшой доход. К группе 2 могут быть отнесены обычные акции. Доход от таких ценных бумаг выше, но он подвержен значительным колебаниям, что увеличивает риск. К группе 3 могут быть отнесены различные «спекулятивные акции». Курс таких ценных бумаг имеет тенденцию к сильным колебаниям, что увеличивает риск, но ожидаемый доход от них может быть достаточно высок. Политика фирмы состоит в том, что фирма выделяет из общей суммы наличного капитала определенные доли средств на вложения в бумаги различных групп. Так, правления многих инвестиционных фирм считают необходимым вкладывать определенную часть капитала в бумаги с низким риском. Такое ограничение записывается следующим образом: ∑ x j ≥ b1 K , j∈ J 1
где J1 − множество индексов бумаг 1-й группы. b1 − минимальная доля вложений в бумаги 1-й группы. С другой стороны, большинство инвестиционных фирм ограничивают размеры вложений в обычные и тем более «спекулятивные» акции, так как доход от них подвержен значительным колебаниям. Такие ограничения записываются следующим образом: ∑ x j ≤ b2 K , j∈ J 2
∑ x j ≤ b3 K ,
j∈ J 3
где J 2 , J 3 − соответственно множества индексов бумаг 2-й и 3-й групп; b2 , b3 − соответственно максимальные доли вложений в бумаги 2-й и 3-й групп. Таким образом, оптимизационная модель имеет вид
120 N
E ( x) = ∑ µ j x j → max, j =1
N
∑ xj ≤ K,
j =1
∑ x j ≥ b1K ,
j∈ J 1
∑ x j ≤ b2 K ,
j∈ J 2
∑ x j ≤ b3 K ,
j∈ J 3
x j ≥ 0, j = 1, N . Данная модель также является моделью ЛП. Оптимальное решение x ∗ = x∗j , j = 1, N , E ∗ = E ( x∗ ) может быть найдено любым из методов ЛП. Главный недостаток моделей 1 и 2 состоит в том, что риск, связанный с инвестициями, в них не учитывается. Портфель ценных бумаг, который находится в результате решения соответствующих задач ЛП, может обещать высокий средний доход, но при этом инвестиционный риск также будет велик. Вследствие этого истинный доход может оказаться значительно ниже ожидаемого. Этого недостатка лишена модель 3. Модель 3. Минимизация инвестиционного риска при заданном среднем доходе. Владельцы ценных бумаг могут быть заинтересованы в получении заданного ожидаемого дохода R при минимальном риске. Оптимизационная модель в этом случае имеет вид
{}
N
V ( x ) = ∑ σ 2jj x 2j + ∑ ∑ σ ij2 xi x j → min, j =1
i j ≠i
N
E ( x ) = ∑ µ j x j ≥ R, j =1
N
∑ xj ≤ K,
j =1
121
x j ≥ 0, j = 1, N . Отметим, что в модель могут быть введены дополнительные (подобные рассмотренным выше) ограничения, определяемые политикой фирмы. Данная модель является моделью квадратичного программирования, так как целевая функция квадратичная, а ограничения линейные. Оптимальное решение x ∗ = x ∗j , j = 1, N , V ∗ = V ( x ∗ ) может быть найдено методом квадратичного программирования.
{ }
2. ВАРИАНТЫ ЗАДАНИЙ
Исходные данные для составления моделей и расчетов помещены в табл. 1 и 2. Всего рассматривается 6 видов ценных бумаг, т.е. N=6. Предполагается, что к 1-й группе инвестиционного риска относятся бумаги 1-го и 2-го видов, т.е. J1 = {1,2}, ко 2-й группе − бумаги 3-го и 4-го видов, т.е. J 2 = {3, 4}, к 3-й группе − бумаги 5-го и 6-го видов, т.е. J 3 = {5,6}. Также предполагается, что бумаги 2-й группы инвестиционного риска (3-го и 4-го видов) принадлежат к взаимосвязанным областям экономики. Следует иметь в виду, что данные о доходности ценных бумаг, приведенные в табл. 2, − гипотетические, т.е. не соответствуют реальным ценным бумагам, хотя и отражают характер «поведения бумаг» соответствующего типа. Величины bi , i = 1,3, указаны в процентах от наличного капитала K. 3. ЗАДАНИЕ
1. Согласно заданному преподавателем варианту определить по табл. 1 величину наличного капитала К, значения коэффициентов bi , i = 1,3, анализируемые периоды времени t. Для заданных периодов времени t из табл. 2 выбрать данные о доходности ценных бумаг r j (t ), j = 1,6.
122 2. Составить задачу оптимизации в соответствии с моделью 1 и найти оптимальное решение x ∗ , E ∗ = E ( x ∗ ). 3. Составить задачу оптимизации в соответствии с моделью 2 и найти оптимальное решение x ∗ , E ∗ = E ( x ∗ ). 4. Составить задачу оптимизации в соответствии с моделью 3. Задаться средним ожидаемым доходом R и найти оптимальное решение x∗ , V ∗ = V ( x∗ ). 5. Записать полученные результаты в сводную таблицу следующего вида. Тип модели
x1∗
x2∗
. . .
x6∗
E ( x∗ )
V ( x∗ )
1 2 3 Сравнить полученные решения по величине ожидаемого дохода и величине инвестиционного риска. 6. Сделать выводы по результатам всех расчетов, сформулировать рекомендации по формированию оптимального портфеля ценных бумаг. 4. КОНТРОЛЬНЫЕ ВОПРОСЫ
Становясь последовательно то на позицию владельца будущего портфеля ценных бумаг, то на позицию аналитика, которому поручено провести анализ проблемы, постарайтесь ответить на следующие вопросы. 1. Можно ли спрогнозировать по данным о доходностях µ j оптимальное решение x ∗ , E ∗ в случае модели 1? 2. Как изменится величина E ∗ при переходе от модели 1 к модели 2? 3. Как экономически обосновать оптимальное решение x ∗ в случае модели 2?
123 4. Каким образом влияет на решение x ∗ , E ∗ в случае модели 2 изменение политики фирмы? 5. Как определить диапазон возможных значений заданного дохода R для модели 3? 6. Как будут соотноситься величины V ∗ для моделей 1 и 3, если выбрать в качестве значения R для модели 3 величину E ∗ , полученную в модели 1? 7. Как будут соотноситься величины V ∗ для моделей 2 и 3, если выбрать в качестве значения R для модели 3 величину E ∗ , полученную в модели 2? 8. Как Вы обоснуете выбранное значение R для модели 3? 9. Каким образом влияет на решение x ∗ , V ∗ в случае модели 3 характер взаимосвязи (положительная или отрицательная) курсов ценных бумаг? 10. Есть ли смысл решать задачу оптимизации во всех постановках или достаточно ограничиться моделью 3? 11. Возможно ли в какой-либо из моделей такое оптимальное решение x ∗ , при котором часть наличного капитала К останется неиспользованной (не будет вложена в ценные бумаги)? 12. Как Вы теоретически (но популярно!) обоснуете владельцу портфеля ценных бумаг те результаты, которые получили? 5. ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ
Пояснительная записка может быть представлена в тетради или на листах формата А4. Оформление должно удовлетворять требованиям ГОСТа. Содержание пояснительной записки: 1. Задание (данные, соответствующие конкретному варианту). 2. Краткое описание задачи «портфель ценных бумаг».
124 3. Модели задачи оптимизации и используемые методы решения. 4. Расчетная часть. 5. Заключение (что сделано в работе; выводы, обосновывающие решение об инвестициях; рекомендации по формированию оптимального портфеля ценных бумаг). Таблица 1 Номер варианта 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Периоды времени t 1,2,3,4,5 2,3,4,5,6 3,4,5,6,7 4,5,6,7,8 5,6,7,8,9 6,7,8,9,10 7,8,9,10,11 8,9,10,11,12 9,10,11,12,13 10,11,12,13,14 11,12,13,14,15 12,13,14,15,16 13,14,15,16,17 14,15,16,17,18 15,16,17,18,19 16,17,18,19,20 17,18,19,20,21 18,19,20,21,22 19,20,21,22,23 20,21,22,23,24 21,22,23,24,25 22,23,24,25,26 23,24,25,26,27 24,25,26,27,28 25,26,27,28,29 26,27,28,29,30
Капитал К (тыс. ед.) 100 200 300 400 500 600 700 800 120 220 320 420 520 620 720 820 140 240 340 440 540 640 740 840 160 260
Коэффициент (% от К) b2 b1 20 30 40 50 25 35 45 20 30 40 50 25 35 45 20 30 40 50 25 35 45 20 30 40 50 25
45 40 35 30 60 30 25 55 50 45 15 45 40 35 65 35 30 25 55 50 20 50 45 40 35 40
b3 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35
125 Продолжение табл. 1 Номер варианта 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
Периоды времени t 27,28,29,30,31 28,29,30,31,32 29,30,31,32,33 30,31,32,33,34 31,32,33,34,35 32,33,34,35,36 33,34,35,36,37 34,35,36,37,38 35,36,37,38,39 36,37,38,39,40 37,38,39,40,41 38,39,40,41,42 39,40,41,42,43 40,41,42,43,44 41,42,43,44,45 42,43,44,45,46 43,44,45,46,47 44,45,46,47,48 45,46,47,48,49 46,47,48,49,50 47,48,49,50,51 48,49,50,51,52 49,50,51,52,53 50,51,52,53,54 51,52,53,54,55 52,53,54,55,56 53,54,55,56,57 54,55,56,57,58 55,56,57,58,59 56,57,58,59,60 57,58,59,60,61 58,59,60,61,62 59,60,61,62,63 60,61,62,63,64 61,62,63,64,65
Капитал К (тыс. ед.) 360 460 560 660 760 860 180 280 380 480 580 680 780 880 110 210 310 410 510 610 710 810 130 230 330 430 530 630 730 830 150 250 350 450 550
Коэффициент (% от К) b2 b1 35 45 20 30 40 50 25 35 45 20 30 40 50 25 35 45 20 30 40 50 25 35 45 20 30 40 50 25 35 45 20 30 40 50 25
35 30 60 55 25 20 50 45 40 45 40 35 30 60 30 25 55 50 45 15 45 40 35 65 35 30 25 55 50 20 50 45 40 35 40
b3 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35 30 25 20 15 35
126 Окончание табл. 1 Номер варианта 62 63 64 65 66 67 68 69 70
Периоды времени t 62,63,64,65.66 63,64,65,66,67 64,65,66,67,68 65,66,67,68,69 66,67,68,69,70 67,68,69,70,71 68,69,70,71,72 69,70,71,72,73 70,71,72,73,74
Капитал К (тыс. ед.) 650 750 850 170 270 370 470 570 670
Коэффициент (% от К) b2 b1 35 45 20 30 40 50 25 35 45
35 30 60 55 25 20 50 45 40
b3 30 25 20 15 35 30 25 20 15
Таблица 2 Период времени t 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Доходность
r1 (t )
r2 (t )
r3 (t )
r4 (t )
r5 (t )
r6 (t )
0,05 0,08 0,07 0,14 0,10 0,09 0,07 0,12 0,06 0,11 0,07 0,05 0,12 0,10 0,13 0,06 0,15 0,09
0,13 0,09 0,15 0,11 0,10 0,14 0,05 0,12 0,07 0,13 0,08 0,11 0,07 0,15 0,12 0,10 0,09 0,13
0,1 −0,2 0,0 0,9 0,3 −0,1 0,7 0,4 0,2 0,5 0,6 −0,2 0,8 −0,1 1,0 0,1 0,7 0,0
0,4 0,8 −0,1 0,3 0,9 0,5 0,1 0,6 0,2 0,4 0,0 0,8 −0,2 0,5 0,0 0,7 0,3 −0,1
1,0 −2,0 0,0 3,0 −1,0 1,5 2,5 −1,5 3,5 −0,5 2,0 0,5 1,0 2,5 −2,0 3,0 1,0 −1,5
0,5 2,5 −1,5 1,5 2,5 1,0 2,0 −2,0 0,5 3,5 −1,0 1,5 0,0 3,0 −0,5 1,5 −1,5 3,5
127 Продолжение табл. 2 Период времени t 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
Доходность
r1 (t )
r2 (t )
r3 (t )
r4 (t )
r5 (t )
r6 (t )
0,11 0,14 0,05 0,15 0,08 0,11 0,09 0.07 0.14 0.10 0.09 0.13 0.06 0.13 0.11 0.15 0,12 0,07 0,12 0,10 0,05 0,14 0,11 0,15 0,06 0,12 0,14 0,08 0,10 0,13 0,07 0,09 0,14 0,11
0,06 0,11 0,08 0,14 0,07 0,15 0,06 0.08 0.12 0.09 0.06 0.15 0.05 0.11 0.07 0.13 0,06 0,10 0,05 0,14 0,12 0,08 0,14 0,09 0,05 0,13 0,07 0,10 0,15 0,06 0,12 0,08 0,13 0,07
0,2 0,6 0,9 −0,1 0,8 0,3 0,5 −0.2 0.3 0.8 0.0 0.6 0.2 0.4 0.7 0.1 0,5 1,0 −0,2 0,6 0,9 0,0 0,4 0,8 −0,1 0,9 0,2 0,7 0,5 0,1 0,3 0,8 0,2 0,6
0,6 0,1 0,5 1,0 −0,2 0,4 0,0 0.9 0.2 −0.1 0.7 0.3 0.1 0.8 −0.2 0.6 0,2 0,0 0,7 0,1 0,5 −0,1 0,4 0,8 0,3 −0,2 0,9 0,2 0,1 0,7 0,0 0,6 0,1 0,8
2,0 −0,5 3,5 0,0 1,5 −1,0 2,5 1.0 −0.5 0.5 2.0 −1.5 2.0 1.0 −2.0 1.5 4,0 −1,0 2,5 −0,5 2,0 −1,5 3,5 0,0 3,0 −1,0 3,5 0,5 3,0 −0,5 0,5 2,5 −2,0 3,0
1,0 1,5 −0,5 3,0 0,0 2,0 0,5 −2.0 3.5 0.0 −1.0 2.0 −0.5 3.0 0,0 2.5 1,0 −1,5 3,5 −0,5 2,0 1,5 0,0 3,0 0,5 −2,0 2,5 −0,5 1,0 0,0 3,5 −1,0 2,0 −0,5
128 Окончание табл. 2 Период времени t 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
Доходность
r1 (t )
r2 (t )
r3 (t )
r4 (t )
r5 (t )
r6 (t )
0,08 0,05 0,13 0,08 0,13 0,07 0,12 0,06 0,09 0,13 0,10 0,05 0,06 0,12 0,10 0,08 0,06 0,11 0,08 0,14 0,05 0,09
0,11 0,09 0,14 0,08 0,12 0,06 0,13 0,11 0,09 0,15 0,10 0,14 0,14 0,10 0,07 0,12 0,09 0,08 0,15 0,10 0,06 0,11
−0,2 0,4 0,9 0,0 0,5 0,3 0,7 −0,1 0,4 0,6 0,2 0,1 0,1 0,9 0,5 −0,2 0,4 0,7 −0,1 0,8 0,0 0,3
0,5 0,3 0,7 −0,1 1,0 0,4 0,2 0,6 −0,2 0,5 0,3 0,9 0,8 0,2 −0,2 0,6 0,9 0,4 0,0 0,7 −0,1 0,9
1,5 −1,5 1,0 3,5 −1,0 2,5 0,5 −0,5 3,0 0,0 1,5 −2,0 2,0 −1,0 1,5 0,0 3,5 −2,0 0,5 4,0 −1,5 0,0
3,0 −1,5 2,5 1,0 −2,0 3,5 0,5 −1,0 4,0 −1,5 1,5 −1,0 −1,5 3,0 −2,0 2,0 −1,0 4,0 1,0 −2,0 2,5 0,5
129 КОНТРОЛЬНЫЕ РАБОТЫ Контрольная работа №1 Контролируемые разделы курса: задачи безусловной и условной оптимизации. В контрольную работу включены две задачи. Задача 1а. Задана функция f(x), x∈R. Определить точки локальных и глобальных экстремумов f(x). Задача 1б. Задана функция f(x), x∈R2. Определить точки локальных экстремумов f(x). Задача 2а. Заданы матрица А размером 3 × 3 и точка * 3 α ∈R . Составить квадратичную форму Q(α)= αA, α и вычислить Q(α*). Задача 2б. Задана функция g(x), x∈R2 и точка x*∈R2. Записать в явном виде уравнение, задаваемое выражением g ′( x * ), α = 0. Примечание. Здесь и в дальнейшем номерами Na, Nб и т.д. обозначаются различные возможные варианты задачи с номером N. Контрольная работа №2 Контролируемые разделы курса: численные методы минимизации унимодальных и многоэкстремальных функций. В контрольную работу включены три задачи. Задача 1. Заданы унимодальная функция f(x), исходный отрезок локализации минимума ∆, количество вычислений N, малое положительное число ε (при четном N). Определить методом пассивного поиска итоговый отрезок локализации минимума ∆N, оценки точки минимума x* и величины минимума f ∗ . Задача 2а. Заданы унимодальная функция f(x), исходный отрезок локализации минимума ∆, количество вычислений N, малое положительное число ε. Определить методом дихотомии ито-
130 говый отрезок локализации минимума ∆N, оценки точки минимума x* и величины минимума f ∗ . Задача 2б. Заданы унимодальная функция f(x), исходный отрезок локализации минимума ∆, количество вычислений N, малое положительное число ε. Определить методом Фибоначчи итоговый отрезок локализации минимума ∆N, оценки точки минимума x* и величины минимума f ∗ . Задача 2в. Заданы унимодальная функция f(x), исходный отрезок локализации минимума ∆, количество вычислений N. Определить методом золотого сечения итоговый отрезок локализации минимума ∆N, оценки точки минимума x* и величины минимума f ∗ . Задача 3. Заданы функция f(x), исходный отрезок ∆, количество вычислений N. Определить с помощью сканирования оценки точки глобального минимума x* и величины глобального минимума f ∗ . Контрольная работа №3 Контролируемые разделы курса: градиентные методы, метод Ньютона. В контрольную работу включены две задачи. Задача 1а. Заданы задача безусловной минимизации f (x ) → min, x ∈ R2 , где f(x) – квадратичная функция, константы α и β (α>0, 0<β<1), допустимая погрешность ε, начальная точка x(0). Решить задачу методом с дроблением шага. Задача 1б. Заданы задача безусловной минимизации f (x ) → min, x ∈ R2 , где f(x) – квадратичная функция, допустимая погрешность ε, начальная точка x(0). Решить задачу методом наискорейшего спуска.
131 Задача 2. Заданы задача безусловной минимизации f (x ) → min, x ∈ R2 , где f(x) – квадратичная функция, допустимая погрешность ε, начальная точка x(0). Решить задачу методом Ньютона. Контрольная работа №4 Контролируемые разделы курса: метод аппроксимирующего программирования, метод штрафных функций. В контрольную работу включены две задачи. Задача 1а. Метод аппроксимирующего программирования. Заданы задача условной минимизации f (x ) → min, p1(x ) ≤ b1, p2 (x ) ≥ b2 ,
x ∈ R+2 , начальная точка x(0). Произвести линеаризацию исходной задачи (составить задачу линейного программирования) в окрестности точки x(0). Задача 1б. Метод аппроксимирующего программирования. Заданы задача условной минимизации f (x ) → min, p1(x ) ≤ b1, p2 (x ) ≥ b2 ,
x ∈ R+2 , текущая точка x(k-1), константа β (0<β<1). Известно решение x0 задачи линейного программирования, полученной в результате линеаризации исходной задачи в окрестности точки x(k-1). Определить точку x(k). Задача 2а. Метод штрафных функций. Заданы задача условной минимизации
132 f (x ) → min, p1(x ) ≤ b1, p2 (x ) ≥ b2 ,
x ∈ R2 , начальная точка x[0], начальное значение штрафного параметра R0. Составить расширенную функцию P(x, R0). Задача 2б. Метод штрафных функций. Задана задача условной минимизации f (x ) → min, p(x ) ≤ b, x ∈ R. Решить аналитически методом внешней точки. Контрольная работа №5 Контролируемые разделы курса: метод отсечений, метод ветвей и границ. В контрольную работу включены две задачи. Задача 1. Метод отсечений. Рассматривается задача целочисленного линейного программирования. Задана итоговая симплекс-таблица задачи L1. Составить начальную симплекс-таблицу задачи L2. Задача 2. Метод ветвей и границ. Задана задача целочисленного линейного программирования f (x ) → max, p1(x ) ≤ b1, p2 (x ) ≤ b2 ,
x ∈ R+2 ; x1 , x2 − целые. Выполнить нулевой и первый этапы метода ветвей и границ.
133 ОТВЕТЫ 1. Задача безусловной оптимизации 1. Функция f ( x) = 1 − x 3 экстремумов не имеет. 2. Функция f ( x ) = 1 − x 4 имеет в точке x = 0 глобальный максимум. 3. Функция f (x) = x 4 − 4x3 + 4x2 − 1 имеет в точках x = 0 и x = 2 глобальный минимум, а в точке x = 1 − локальный максимум. 4. Функция f (x) = x12 x2 − 3x1 x2 − x1 + 2x2 + 5 локальных экстремумов не имеет. 5. Функция f (x) = x13 + x23 − 3x1x2 имеет в точке x = (1, 1) локальный минимум. 6. Точка x = (1, 2, 0) является точкой локального минимума
функции
f ( x) = 2 x1 x 2 x3 + x12 + x 22 + x32 − 4 x1 x3 − 2 x 2 x3 −
− 2 x1 − 4 x 2 + 4 x3 . 7. Точка x = (2, 1) является точкой локального минимума функции f ( x) = x13 + x23 − 3x12 − 3 x1 x2 + 3 x1 + 3 x2 − 1 . 2. Задача условной оптимизации 1. Функция
f (x) = x1 + x2 в допустимой области X =
2 2 условный ло= {x ∈ R 2 : x12 + x 22 = 1} имеет в точке x = , 2 2 2 2 кальный максимум, а в точке x = − ,− − условный ло2 2 кальный минимум. 2. Функция f ( x) = x12 + x22 + x32 в допустимой области X = {x ∈ R 3 : 4 x12 + x 22 + 2 x3 = 14} имеет в точках x = (2, 2, 1) и
134 x = (2, − 2, 1 ) условные локальные минимумы. a a a 3. Точка x = , , является точкой условного мак3 3 3 симума функции f ( x) = x1 x2 x3 в допустимой области X = {x ∈ R 3 : x1 + x 2 + x3 = a}. 3. Квадратичное программирование 1. Выполняются 0-я итерация: Б0={z1, z2, w1, w2}, ДБР0=(6, 1 1 1 3, 1, 4); 1-я итерация: Б1={z1, x2, w1, w2}, ДБР1= 4, , , 2 ; 2 2 2 1 3 1 2-я итерация: Б2={z1, x1, w1, w2}, ДБР2= 3, , , 2 ; 3-я ите2 4 4 рация: Б3={z1, x1, v2, w2}, ДБР3=(2, 1, 1, 2); 4-я итерация: Б4={λ1, x1, v2, w2}, ДБР4=(2, 1, 3, 2). В результате получаем x ∗ = (1, 0) , f ∗ = −4 . 2. Выполняются 0-я итерация: Б0={z1, z2, w1, w2}, ДБР0=(1, 2, 6, 4); 1-я итерация: Б1={z1, x2, w1, w2}, ДБР1=(1, 1, 4, 2); 2-я ите4 2 рация: Б2={z1, x2, x1, w2}, ДБР2= 1, 1, , ; 3-я итерация: 3 3 5 1 1 2 Б3=={λ2, x2, x1, w2}, ДБР3= , , 1 , 1 . В результате получа9 3 3 9 4 5 2 ем x ∗ = 1 , , f ∗ = 2 . 9 9 3 4. Численные методы минимизации унимодальных функций 1. а) ∆ 8 = [0,85; 1,65] , x ∗ ≅ 1,55 , f ∗ ≅ −0,2475 ; б) ∆ 9 = [1,2; 2,0] , x ∗ ≅ 1,6 , f ∗ ≅ −0,24 .
135 2. ∆ 8 = [1,219; 1,563] , x ∗ ≅ 1,463 , f ∗ ≅ −0,2486. 3. ∆ 4 = [0,88; 1,76] , x ∗ ≅ 1,56 , f ∗ ≅ −0,2464. 4. ∆ 4 = [0,944; 1,888] , x ∗ ≅ 1,528 , f ∗ ≅ −0,2492. 5. Численные методы оптимизации многоэкстремальных функций 1. x ∗ ≅ 3,0, f ∗ ≅ −1,704. 2. x ∗ ≅ 3,17, f ∗ ≅ −1,993. 3. x ∗ ≅ 3,25, f ∗ ≅ −1,980. 6. Градиентные методы 1. Выполняются 0-я итерация, 1-я и 2-я итерации при λ = 1 , 3-я итерация при λ = 0,5 , 4-я итерация при λ = 0,25 . В результате получаем x ∗ ≅ (1,007; −0,166), f ∗ ≅ −6,111. 2. Выполняются 0-я итерация, 1-я итерация при λ1 = 0,256 , 2-я итерация при λ2 = 0,478 . В результате получаем x ∗ ≅ (0,979;−0,201) , f ∗ ≅ −6,120. 7. Метод Ньютона 1,2 0,1 − 0,5 1. A = 2,2 0,6 − 1 . − 1,8 − 0,4 1 2. Выполняются 0-я и 1-я итерации, получаем точное решение x ∗ = (1;−0,25) , f ∗ = −6,125. 3. Выполняются 0-я, 1-я и 2-я итерации. В результате получаем x ∗ ≅ (1,033; 4,033) , f ∗ ≅ −9,997. −1
8. Метод аппроксимирующего программирования 1. x 0 = (13,5; 0), λ1 = 0,0625.
В
результате
получаем
136 x (1) = (4,594; 2,813). 2. Выполняются 1-я итерация: x 0 = (0,5; 6,9 ), λ1 = 0,24, x (1) = (2,40; 1,66); 2-я итерация: x 0 = (2,49; 2,03), λ 2 = 0,7, ∗ (2 ) x = (2,46; 1,92 ). В результате получаем x ≅ (2,46; 1,92) , f ∗ ≅ 4,38. 9. Метод штрафных функций 1.
а)
Стационарная
точка
4 + 5R 4 + 5R x(1) ( R) = , , 1 + 2R 1 + 2 R
x∗ = (2, 5; 2,5) , f ∗ = 4,5 ; б) допустимая (внутренняя) стационарная точка 13 − 9 + 4 R 13 − 9 + 4 R ∗ , x = (2,5; 2,5) , f ∗ = 4,5. , x(1) ( R) = 4 4 2. Допустимая (внутренняя) стационарная точка 1 + 9 + 8R 5 + 12 R + 9 + 8R ∗ , x = (1, 1) , f ∗ = 2. x(1) ( R) = , 4 8 10. Метод отсечений
( )
1 1. Решаются задача L0: x (0 ) = 0, 6 , f x (0 ) = 13; задача 2 ( ( 1) 1) L1: x = (0, 6), f x = 12. В результате получаем x ∗ = (0, 6 ), f ∗ = 12 .
( )
2 1 4 2. Решаются задача L0: x (0) = 3 , 1 , f ( x (0) ) = 12 ; за5 2 5 2 5 8 дача L1: x (1) = 3 , 1 , f ( x (1) ) = 12 ; задача L2 (производящая 9 18 9 строка x2 ): x ( 2 ) = (3, 2),
f ( x (2) ) = 12 . В результате получаем
137 x ∗ = (3, 2) , f ∗ = 12 . 11. Метод ветвей и границ 1 1. Решается задача L0: x (0 ) = 0, 6 , ξ 0 = 13, Θ0 = −∞ 2 ( 0) (ветвление из 0-й вершины по x2 ). Решается задача L1: 1 1 x (1) = , 6 , ξ 1 = 12 , Θ1 = −∞ ; задача L2 не имеет допустимых 4 4 решений: Θ 2 = −∞ (ветвление из 1-й вершины по x1(1) ). Решаются 1 задача L3: x (3 ) = (0, 6 ), ξ 3 = 12, Θ 3 = 12; задача L4: x (4 ) = 1, 4 , 2
ξ 4 = 10 , Θ 4 = 12. В результате получаем x ∗ = (0, 6), f ∗ = 12. 3 1 4 2. Решается задача L0: x (0) = 3 , 1 , ξ 0 = 10 , Θ 0 = −∞ 5 2 5
(ветвление из 0-й вершины по x1(0) ). Решаются задача L1: 1 2 x (1) = (3, 2) , î1 = 10 , Θ1 = 10 ; задача L2: x (2) = 4, 1 , ξ 2 = 10 , 5 5 Θ 2 = 10 (ветвление из 2-й вершины по x 2(2) ). Решается задача L3: 1 1 x (3) = 4 , 1 , ξ 3 = 10 , Θ3 = 10 ; задача L4 не имеет допустимых 3 6 4 решений: Θ = 10 (ветвление из 3-й вершины по x1(3) ). Решаются задача L5: x (5) = (4, 1) , ξ 5 = 10 , Θ5 = 10 ; задача L6: x (6) = (5, 0) ,
ξ 6 = 10 ,
Θ 6 = 10 .
В
результате
x ∗ = {(3, 2), либо (4, 1), либо (5, 0)}, f ∗ = 10.
получаем
138 БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Аттетков А.В., Галкин С.В., Зарубин В.С. Методы оптимизации: Учеб. для студ. втузов. − М.: Изд-во МГТУ, 2001. 2. Банди Б. Методы оптимизации. Вводный курс. – М.: Радио и связь, 1988. 3. Карманов В.Г. Математическое программирование. − М.: Физматлит, 2000. 4. Корбут А.А., Финкельштейн Ю.Ю. Дискретное программирование. – М.: Наука, 1969. 5. Лесин В.В., Лисовец Ю.П. Основы методов оптимизации: Учеб. пособие для втузов. − М.: Изд-во МАИ, 1995. 6. Мину М. Математическое программирование. – М.: Наука, 1990. 7. Моисеев Н.Н., Иванилов Ю.П., Столярова Е.М. Методы оптимизации. – М.: Наука, 1978. 8. Растригин Л.А. Системы экстремального управления. − М.: Наука, 1974. 9. Реклейтис Г., Рейвиндран А., Рэгсдел К. Оптимизация в технике: В 2-х кн. – М.: Мир, 1986. 10. Сухарев А.Г., Тимохов А.В., Федоров В.В. Курс методов оптимизации. – М.: Наука, 1986. 11. Таха Х. Введение в исследование операций: В 2-х кн. – М.: Мир, 1985. 12. Химмельблау Д. Прикладное нелинейное программирование. – М.: Мир, 1975.
139 СОДЕРЖАНИЕ Введение……………………………………………………...…….3 1. Задача безусловной оптимизации….………....…...……..…….5 1.1. Функция одной переменной……………………………...…..6 1.2. Функция многих переменных……………………………….12 2. Задача условной оптимизации………………………………...18 3. Квадратичное программирование……………..….…………..26 4. Численные методы оптимизации унимодальных функций…35 4.1. Пассивный метод поиска минимума………………………..36 4.2. Активные методы поиска минимума……………………….38 5. Численные методы оптимизации многоэкстремальных функций.…...…………………………………………….…...……47 6. Градиентные методы………………...……………...………….56 7. Метод Ньютона….………………………...………….………...63 8. Метод аппроксимирующего программирования…………….70 9. Метод штрафных функций…………………………………….80 10. Методы отсечений…………………………………………….91 11. Метод ветвей и границ……………………………………....103 Индивидуальные задания «Задача выбора портфеля ценных бумаг»………………………………….………...……………….116 Контрольные работы………………………………………….…129 Ответы…………………………………………………………….133 Библиографический список….……………………………..…...138
140
Харчистов Борис Федорович Методы оптимизации Учебное пособие
Ответственный за выпуск Харчистов Б.Ф. Редактор Проценко И.А. Корректор Селезнева Н.И.
ЛР № 020565 от 23.06.1997 г. Подписано к печати 20.04.2004 г. Формат 60×84 1 . Бумага офсетная. 16 Офсетная печать. Усл. п. л. − 8,7. Уч.-изд. л. – 8,4. Заказ № 118. Тираж 150 экз. «С»
Издательство Таганрогского государственного радиотехнического университета ГСП 17А, Таганрог, 28, Некрасовский, 44 Типография Таганрогского государственного радиотехнического университета ГСП 17А, Таганрог, 28, Энгельса, 1