close

Вход

Забыли?

вход по аккаунту

?

NironovskiySolovieva

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
Л. А. Мироновский, Т. Н. Соловьева,
Д. В. Шинтяков
ЧИСЛЕННЫЕ МЕТОДЫ
И ОПТИМИЗАЦИЯ
Учебное пособие
Санкт-Петербург
2017
УДК 519.61
ББК 22.193
М64
Рецензенты:
доктор технических наук, профессор В. А. Слаев;
доктор технических наук, профессор Н. В. Колесов
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
Мироновский, Л. А.
М64 Численные методы и оптимизация: учеб. пособие /
Л. А. Мироновский, Т. Н. Соловьева, Д. В. Шинтяков. – СПб.:
ГУАП, 2017. – 147 с.
ISBN 978-5-8088-1180-5
Изложены основы численных методов отыскания корней функций, а также аналитических и численных методов поиска экстремума функций одной и многих переменных. Рассмотрены принципы
вариационного исчисления, приведены примеры решения задач с помощью уравнений Эйлера, Эйлера – Пуассона и Эйлера – Лагранжа.
Предназначено студентам, обучающимся по направлению
09.03.01 «Информатика и вычислительная техника», специальность
«Вычислительные машины, комплексы, системы и сети», а также по
родственным специальностям и направлениям, таким как 09.04.01
«Математические методы в научных исследованиях» и др.
Рекомендуется магистрантам и аспирантам, которым приходится
сталкиваться с аналитическими и численными методами решения
задач оптимизации, поиска экстремума и оптимального управления.
УДК 519.61
ББК 22.193
ISBN 978-5-8088-1180-5
©
©
Мироновский Л. А., Соловьева Т. Н.,
Шинтяков Д. В., 2017
Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2017
ПРЕДИСЛОВИЕ
Учебные курсы по численным методам и оптимизации читаются в большинстве технических вузов. Они охватывают широкий
круг вопросов, включая нахождение корней полиномов, поиск экстремумов функций одной или нескольких переменных, решение
задач линейного программирования, вариационного исчисления и
др. Многие из этих вопросов достаточно подробно освещены в имеющейся учебной литературе [1–14]. Настоящее пособие написано на
основе курсов лекций, читаемых авторами на протяжении ряда лет
в ГУАП по дисциплинам «Численные методы и вариационное исчисление», «Методы оптимизации», «Теория оптимального управления». Изучение указанных дисциплин сопровождается выполнением лабораторных работ в пакетах MATLAB и Maple.
При решении задач оптимизации используют численные и символьные методы. В первом случае входные данные представляют
собой массивы чисел или числовые матрицы, которые обрабатываются соответствующими программами. Численный подход является основным для таких математических пакетов, как Mathcad и
MATLAB. Во втором случае исходная математическая модель задается математическими формулами, записанными относительно
символьных переменных. Результат получается в виде математических соотношений между этими переменными. Символьный подход
реализован в таких пакетах, как Maple и Mathematica. В настоящем
учебном пособии рассматриваются оба подхода.
Пособие состоит из четырех разделов. Раздел 1 посвящен описанию численных методов поиска корней уравнений, включая метод
деления пополам, метод простой итерации, аппроксимационные
методы и оптимизационный подход.
В разделах 2 и 3 дана классификация методов оптимизации,
описаны методы поиска безусловного и условного экстремумов.
Для численного решения задач одномерной оптимизации изложен
принцип исключения интервалов, рассмотрены методы дихотомии,
Фибоначчи и золотого сечения.
3
Описаны классические алгоритмы многомерной оптимизации –
метод Ньютона, методы покоординатного и наискорейшего спуска,
дается понятие о генетических алгоритмах. Рассмотрены численные методы условной оптимизации, такие как метод штрафных
функций, метод барьерных функций, симплекс-метод решения задач линейного программирования.
В разделе 4 изложены вариационные методы оптимизации, даются основы вариационного исчисления, выводятся уравнения Эйлера, Эйлера – Пуассона и Эйлера – Лагранжа и приводятся примеры их применения для решения задач бесконечномерной оптимизации.
4
ВВЕДЕНИЕ
Численные методы предназначены для приближенного решения
математических задач. Как правило, алгоритмы численных методов имеют итерационный характер: некоторая вычислительная
процедура повторяется многократно, на каждом шаге уменьшая погрешность.
Численные методы можно противопоставить аналитическим
методам, в которых точное решение ищется путем преобразования
математических формул. Как правило, аналитическое решение задачи, если оно существует, предпочтительно: оно является точным.
Кроме того, аналитическое решение задачи, полученное в общем
виде, может быть подвергнуто дальнейшему анализу и изучению
свойств решения. С помощью численных методов ищется решение
конкретной задачи, а приближенная природа решения зачастую
не позволяет использовать его для математически строгого доказательства свойств решения.
Несмотря на достоинства аналитических методов решения, существуют ситуации, когда удобнее численное решение. В некоторых задачах аналитическое решение не существует или является
слишком сложным для практического применения. Примером
такой задачи может быть поиск корней полинома: для полиномов
степени 1 и 2 корни могут быть найдены аналитически при помощи простой формулы. Существуют аналитические формулы для
корней полиномов 3-й степени (формула Кардано) и менее известная
формула для корней полиномов 4-й степени, но эти формулы, особенно вторая из них, весьма сложны. Для полиномов общего вида
степени 5 и больше корни не могут быть аналитически выражены
через коэффициенты в рамках элементарных функций.
В то же время с использованием численных методов корни полинома могут быть найдены с любой заранее заданной точностью,
независимо от степени полинома. В качестве примера практической
задачи, которая сводится к отысканию корней полинома высокой
степени, можно привести поиск точки пересечения двух кривых
Безье. Для определения точки пересечения двух плоских кубических кривых Безье необходимо решить систему из двух кубических
уравнений с двумя неизвестными, что сводится к поиску корней полинома 9-й степени.
Существуют задачи, где численное решение, наоборот, затруднено, в то время как аналитическое может быть найдено легко. Такие задачи могут использоваться в качестве «пробного камня» для
5
оценки эффективности численного метода. Один из примеров такой
задачи – поиск минимума функции Розенброка:
F (x, y) =(x − 1)2 + 100(x2 − y)2 .
Аналитически несложно показать, что функция Розенброка
имеет единственный минимум в точке (1, 1). Действительно, функция представляет собой сумму двух квадратов, F (x, y) ≥ 0 для всех
(x, y), при этом неравенство обращается в равенство, если одновременно обращаются в нуль оба слагаемых:
0,

x − 1 =
 2
0.

x − y =
Первое уравнение непосредственно дает x = 1, тогда из второго
уравнения следует, что y = 1.
Между тем для многих численных методов данная задача представляет собой существенную сложность, так как она является характерным примером овражного функционала: в окрестности минимума линии уровня функции Розенброка сильно вытянуты вдоль
параболы y = x2, это линия, на которой обращается в нуль второе
слагаемое функции.
Благодаря тому, что функцию Розенброка легко вычислять, а ее
экстремум заранее точно известен, она является удобной тестовой
функцией для оценки эффективности численных методов поиска
минимума. Эта функция может быть расширена на произвольное
количество переменных, чтобы тестировать многомерные методы.
Построено и много других тестовых функций, создающих различные затруднения для численных алгоритмов поиска экстремума.
Значительная часть численных методов является итерационными алгоритмами: в них многократно повторяется одна и та же вычислительная процедура, которая уменьшает погрешность текущего приближенного ответа. Начальное приближение, используемое
на первом шаге, обычно является входным параметром метода.
Последовательные итерации порождают бесконечную последовательность приближений, которые в пределе могут сходиться
к искомому решению. Точное решение, как правило, не может быть
найдено за конечное число шагов, но перед численными методами и
не стоит задачи поиска точного решения. Для того чтобы построить
корректный алгоритм, завершающийся за конечное число шагов,
итерационный метод должен быть дополнен условием завершения,
6
которое прерывает итерации по достижении заданной погрешности. Надежная оценка погрешности сама по себе является отдельной сложной задачей, но на практике часто применяются упрощенные подходы. Распространенный способ: сравнить расстояние между двумя последними приближениями и завершить алгоритм, если
оно меньше заданной погрешности ε:
xi − xi −1 < ε.
Решая одну и ту же задачу, различные численные методы будут
порождать различные последовательности приближений.
Можно выделить две характеристики, описывающие способность численного метода достигать заданной погрешности:
– сходимость: метод сходится, если последовательность приближений имеет предел и этот предел равен точному решению задачи.
Иначе говоря, метод сходится, если погрешность стремится к нулю.
Например, метод дихотомии для решения уравнений сходится,
если целевая функция монотонна;
– скорость сходимости (то, как быстро уменьшается погрешность).
В общем случае говорят, что метод обладает сходимостью степени b, если существуют числа N и a, такие что rn + 1 < a|rn|b для всех
n > N, где rn – величина ошибки на шаге n. Линейная сходимость
соответствует степени 1, квадратичная – степени 2. Чем выше скорость сходимости, тем более эффективен метод, но, как правило,
скорость сходимости методов не превышает квадратичной (b = 2).
Минимальной скоростью сходимости является линейная (b = 1), более высокая скорость сходимости называется сверхлинейной. Скорость сходимости не может быть меньше единицы, так как в этом
случае погрешность не стремилась бы к нулю.
В терминах количества значащих цифр скорость сходимости
можно интерпретировать следующим образом: при линейной сходимости количество значащих цифр в решении пропорционально
числу шагов. При сверхлинейной сходимости со скоростью b > 1
каждый шаг увеличивает количество значащих цифр ответа в b
раз, и оно пропорционально bn, где n – номер шага.
Линейная сходимость: с каждым шагом погрешность уменьшается в среднем в k раз, где k зависит от свойств метода и задачи.
Например, если k ≈ 10 и на первом шаге погрешность r1 ≈ 0,1, то на
втором шаге она будет r2 ≈ 0,01, на третьем r3 ≈ 0,001 и т. д. Иначе го7
воря, при линейной сходимости количество значащих цифр ответа
пропорционально числу шагов.
Квадратичная сходимость: ошибка на следующем шаге rn+1 пропорциональна квадрату ошибки на предыдущем шаге: rn +1 ≈ krn2`.
Такая сходимость существенно быстрее линейной. Например, если
зависящий от особенностей метода и задачи параметр k ≈ 1 и на первом шаге погрешность r1 ≈ 0,1, то на втором шаге она будет r2 ≈ 0,01,
на третьем r3 ≈ 0,0001, затем r3 ≈ 0,000′000′01, то есть количество
значащих цифр ответа с каждым шагом удваивается.
8
1. ЧИСЛЕННЫЕ МЕТОДЫ ПОИСКА КОРНЕЙ УРАВНЕНИЙ
1.1. Решение уравнений с одной переменной
Рассмотрим задачу отыскания корней уравнения с одной переменной:
f(x) = 0,
которая входит в число самых распространенных вычислительных
задач. В ряде случаев уравнение может быть решено аналитически,
то есть корень x может быть представлен в виде функции от параметров уравнения. Примерами могут служить линейные, квадратные,
кубические уравнения и уравнение 4-й степени, для которых формулы корней известны. В качестве примера того, как могут выглядеть
эти формулы, в табл. 1.1 приведены формулы для корней уравнений
первого, второго и третьего порядков. Формула корней уравнения
4-й степени слишком сложна, чтобы привести ее в таблице.
Таблица 1.1
Уравнение
Корни
ax + b =
0
x = −b / a
ax2 + bx + c =
0
x3 + bx + a =
0
x1,2 =
−b ± b2 − 4ac
2a
a
a2 b 3 3 a
a2 b 3
x1,2,3 = 3 − +
+
+ − −
+
2
4 27
2
4 27
Формула, приведенная в табл. 1.1 для корней кубического уравнения, названа в честь итальянского математика Джероламо Кардано. Отметим, что всякий кубический корень из числа имеет три
значения, среди которых не более одного действительного. При решении кубических уравнений с помощью формулы Кардано значения кубических корней следует брать такими, чтобы их произведение было равно минус b/3. Таким путем можно найти три корня
кубического уравнения.
Однако еще в 1826 году Нильсом Абелем было доказано, что уже
полиномиальные уравнения 5-й степени (и выше) не разрешимы
в элементарных функциях, то есть невозможно, пользуясь только
четырьмя арифметическими операциями и корнями, выразить решение уравнения через коэффициенты полинома. Это, конечно же,
9
не означает, что корней нет: например, уравнение 5-й степени x5 + x =
3
имеет один действительный корень,
первые десятичные цифры которого
x1 x2
равны x = 1,13299756… . Это решение
x
0
не может быть выражено точно при
помощи элементарных функций, но
может быть приближенно вычислено
Рис. 1.1. Геометрическая
с любой желаемой точностью. Чтобы
интерпретация уравнения
найти его, необходимо воспользоf(x) = 0, x1,2 – корни
ваться численным методом.
Поиск решения уравнения имеет
наглядную геометрическую интерпретацию. Рассмотрим график
y = f(x), представляющий собой некоторую кривую на плоскости
(x, y). Вещественным решениям уравнения будут соответствовать
точки этой кривой с нулевым значением координаты y, то есть лежащие на пересечении графика f(x) c осью абсцисс (рис. 1.1).
Существует несколько подходов к численному решению подобных уравнений.
y
f(x)
1.1.1. Методы исключения интервалов
Один из общих подходов к построению численных методов поиска, будь то методы поиска нуля (решение уравнений) или методы
поиска минимума, основан на принципе «разделяй и властвуй».
В этих методах поиск ответа ведется на конечном интервале. На
каждом шаге интервал разбивается на части меньшего размера, после чего исключаются те из них, где ответа точно не может быть.
Способ деления и критерий исключения определяются конкретным
численным методом.
Метод дихотомии (деления пополам)
Одним из простейших методов исключения интервалов является
метод дихотомии для поиска корней уравнения. Рассмотрим задачу
поиска корня уравнения на конечном отрезке:
f=
(x) 0, x ∈ [a, b].
При этом будем полагать, что функция f(x) непрерывна на отрезке [a, b] и имеет на его концах разные знаки: f(a) f(b) < 0.
Метод деления пополам основан на следующем свойстве: если непрерывная функция имеет на концах отрезка [a, b] разные знаки, то
10
существует такая точка c ∈ [a, b], в которой f(c) = 0. При этом, если
функция монотонна, такая точка будет единственной.
На основе этого свойства может быть построен простой алгоритм
поиска корня, состоящий из следующих шагов:
Шаг 1. Задается уравнение f(x) = 0, границы интервала поиска [a,
b] и требуемая погрешность ε.
Шаг 2. Интервал поиска делится точкой c = (a + b)/2 на две равные
части [a, c] и [c, b].
Шаг 3. Из полученных двух отрезков выбирается тот, на котором
функция меняет свой знак. Этот отрезок обозначается [a, b].
Если длина нового интервала поиска стала меньше заданной
погрешности: b – a<ε, то алгоритм завершается, иначе – возврат
к шагу 2.
Таким образом, алгоритм на каждом шаге делит интервал поиска на две равные части, после чего одна из частей отбрасывается, и
интервал уменьшается вдвое.
Несложно определить, как быстро алгоритм достигнет заданной точности. Начальная длина интервала поиска равна b – a. После первого шага длина становится равной (b – a)/2, после второго
b−a
.
(b – a)/4, и после шага n длина интервала становится равна
2n
Если на некотором шаге N интервал впервые становится меньше ε,
b−a
b−a
то N −1 ≤ ε ≤ N , откуда можно получить выражение для требуе2
2
мого числа шагов N:
b−a

N = log2
,
ε 

где квадратные скобки означают округление вверх до ближайшего
целого.
Нужно отметить, что качество численного метода поиска определяется не числом шагов, а количеством вычислений целевой
функции, необходимым для достижения заданной точности. Действительно, будем, например, за один шаг выполнять два деления
и отбрасывания. В этом случае требуемое количество шагов уменьшится вдвое, но количество вычислений функции не изменится.
В данном алгоритме на начальном этапе требуется вычислить
значение функции f(x) в двух точках – концах отрезка, а на каждом
шаге выполняется одно дополнительное вычисление в центре отрезка. Таким образом, общее количество вычислений M определяется
как M = N + 2.
11
Свойства метода дихотомии:
– метод гарантированно сходится к одному из решений уравнения. Действительно, алгоритм гарантирует, что на каждом шаге
текущий интервал поиска содержит в себе по крайней мере один корень. Поэтому по мере того как длина интервала стремится к нулю,
обе его границы стремятся к одному из корней;
– скорость сходимости – линейная, погрешность с каждым шагом уменьшается в два раза. Погрешность, то есть неточность, с которой известно значение корня на некотором шаге, это просто длина
интервала поиска: ri = bi – ai. Тогда погрешность на следующем шаге
связана с погрешностью текущего шага как:
ri=
+1
1
1 1
=
ri
ri ,
2
2
откуда следует, что скорость сходимости равна единице;
– метод дает двустороннюю оценку решения: в виде интервала,
содержащего в себе точное решение. Это общее свойство и важное
достоинство всех методов исключения интервалов. Большинство
других методов дают точечную оценку.
Подытоживая эти свойства, можно сказать, что метод деления
пополам надежен и вычислительно устойчив, не требует наличия
производных у функции, но обладает невысокой скоростью сходимости. Он может применяться как самостоятельный метод, а также
как начальный этап комбинированного метода поиска корня. Применимость метода дихотомии ограничивает необходимость выбора
такого начального отрезка, на концах которого функция имеет разные знаки.
Метод простой итерации
Рассмотрим уравнение несколько иного вида:
f=
(x) x, x ∈ R.
Если f(x) считать отображением вещественной оси на себя, то решением уравнения такого вида являются такие точки x, которые
не меняются под действием f(x), то есть отображаются в себя. Такие
точки называются неподвижными точками преобразования f(x).
Вообще говоря, вопрос о существовании неподвижных точек отображений различных пространств имеет большое значение для теории дифференциальных и интегральных уравнений, топологии и
12
других областей математики. Но даже если рассматривать только
отображения действительных чисел на себя, задача поиска неподвижной точки часто оказывается полезной.
В качестве простейшего примера можно привести задачу поиска квадратного корня. Действительно, квадратный корень числа a
можно определить как неподвижную точку преобразования
a
f (x) = .
x
Несложно убедиться, что f ( a ) = a , то есть a действительно
является для него неподвижной точкой. Как найти неподвижную
точку, зная преобразование f(x)?
Задачу отыскания неподвижной точки можно свести к решению
обычного уравнения:
f (x) − x =
0.
Обратное также верно, обычные уравнения вида f(x) = 0 могут
быть сведены к вопросу о неподвижной точке следующим образом:
f (x) = 0 ⇔ kf (x) + x = x,
где k ≠ 0 – некоторый произвольный числовой коэффициент.
Метод простой итерации основан на следующей идее. Рассмотрим последовательность
x0, x1 = f (x0), x2 = f (f (x0)), x3 = f (f (f (x0))), … . (1.1)
Если первый элемент этой последовательности x0 является неподвижной точкой, то все элементы последовательности окажутся
равны между собой. Если же x0 отличается от неподвижной точки
на небольшую величину, то возможны два варианта поведения:
– по мере роста n отличие xn от неподвижной точки стремится
к нулю;
– отличие от неподвижной точки не стремится к нулю (обычно
возрастает).
В первом случае говорят о притягивающей неподвижной точке,
во втором случае – об отталкивающей.
Поясним их смысл на примере поиска корней нелинейного алгебраического уравнения методом простых итераций. Для численного нахождения корней исходное алгебраическое уравнение f(x) = 0
13
переписывается в виде x = f(x), и затем ему приводится в соответствие итерационное уравнение (1.1):
xn+1 = f(xn), n = 0, 1, 2, ... .
Тогда корни функции f(x) – это неподвижные точки функции f.
Пример 1.1. Рассмотрим кубическое уравнение
2(х – 1)2х – х2 = 0.
Оно имеет три вещественных корня 0, 1/2, 2.
Для отыскания корней перепишем уравнение в виде
x=
0
2(x − 1)2
и организуем простые итерации по
формуле
y
2,5
2
1,5
1
0,5
–1
x2
xn +1 =
x
1
2
3
4
5
Рис. 1.2.
Рис. 1.2. Анализ неподвижных
точек для примера 1.1
xn2
2(xn − 1)2
.
Для определения неподвижных
точек функции построим график
x2
в плоскости (x, y), где y =
2(x − 1)2
(рис. 1.2).
Он пересекается с биссектрисой y = х в трех точках (0, 0), (1/2,
1/2), (2, 2). Анализ итерационного процесса показывает, что первая
из них – притягивающая, две другие – отталкивающие.
Если, например, взять начальное значение х0 = –1, то, вычисляя следующие значения хi по формуле xn+1 = f(xn), получим
х1 = 1/8, х2 = 1/98, …, т. е. процесс быстро сходится к неподвижной
точке (0, 0).
Если же взять начальное значение вблизи точки 2, например,
х0 = 1,9, то последующие значения будут удаляться от нее: х1 = 1,82,
х2 = 2,46, …, т. е. эта неподвижная точка – отталкивающая. На рис. 1.2
соответствующий итерационный процесс показан раскручивающейся прямоугольной спиралью.
Аналогично устанавливается неустойчивость третьей неподвижной точки (0,5; 0,5). Заметим, что область сходимости к точке 0 – полуось −∞ < x < 1 / 2.
14
Следовательно, описанный вариант метода простой итерации позволит найти только один из трех корней.
Приведем общее правило (критерий), позволяющее определять
тип неподвижных точек уравнения f(x) = х. Оно опирается на вычисление значения производной функции f(x) в неподвижных точках и
состоит в следующем.
Критерий устойчивости неподвижной точки. Пусть хi – неподвижная точка уравнения xn+1 = f(xn). Если f ′ ( xi ) < 1, то эта точка –
устойчивая (притягивающая), если же f ′ ( xi ) > 1, то точка xi – неустойчивая (отталкивающая). Случай, когда модуль производной
функции f(x) в неподвижной точке равен нулю, требует дополнительного исследования (анализа производных высших порядков).
Применим этот критерий к рассмотренному примеру 1.1. В этом
примере функция f(x) и ее производная имеют вид
=
f (x)
−x
x2
=
,
f ′(x)
.
2(x − 1)
(x − 1)3
Вычисляя значение производной в неподвижных точках х = 0;
0,5; 2, получаем
f′(0) = 0, f′(0,5) = –4, f′(2) = –2.
В соответствии с критерием заключаем, что неподвижная точка
х1 = 0 – притягивающая, а точки х2 = 0,5, х3 = 2 – отталкивающие.
Метод простой итерации – это метод поиска притягивающей
неподвижной точки путем вычисления членов последовательности (1.1).
Его алгоритм:
1. Задается уравнение f(x) = x и начальное значение x0.
2. Вычисляется следующее приближение по формуле: xi+1 = f(xi),
где i – номер шага.
3. Проверяется условие завершения алгоритма. Например, если
расстояние между последними двумя вычисленными точками стало меньше заранее заданной величины |xn – xn–1|<ε, то можно считать решение найденным. Если условие не выполнено – возврат на
шаг 2, иначе – завершение алгоритма.
Условия сходимости метода простой итерации.
В отличие от метода дихотомии, метод простой итерации в общем
случае не гарантирует сходимости, даже если решение существует.
Необходимым условием того, чтобы метод сходился к решению
x*, является выполнение неравенства |f′(x*)| < 1. Выполнение этого
15
неравенства означает, что существует такая окрестность точки x*,
в которой преобразование x → f(x) будет сжимающим, и разность
xn – x* уменьшается по абсолютной величине с каждой итерацией.
Если начальная точка не попадает в эту окрестность, то предсказать
сходимость метода в общем случае невозможно.
Свойства метода простой итерации:
– сходимость метода в общем случае не гарантируется;
– скорость сходимости – линейная: если метод сходится, то
с каждым шагом точность возрастает примерно в 1/|f′(x*)| раз.
1.1.2. Метод Ньютона
Исаак Ньютон (1642–1727) – великий английский физик и математик, механик и астроном. Он заложил основы современного естествознания, сформулировал основные законы классической механики,
открыл закон всемирного тяготения, разработал основы дифференциального и интегрального исчислений, объяснил большинство световых явлений с помощью развитой им корпускулярной теории света.
Считается величайшим ученым в истории человечества.
Сам Ньютон говорил о своей деятельности следующее: «Не знаю,
как на меня посмотрит мир, но самому себе я представляюсь мальчиком, играющим на морском берегу и приходящим в восхищение, когда
ему удается порой найти более гладкий, нежели обыкновенный, камушек или красивую раковину; между тем громадный океан сокровенной
истины простирается передо мной».
Снова вернемся к задаче решения уравнений вида
f=
(x) 0, x ∈ R
и будем считать на этот раз, что про функцию f (x) известно, что она
гладкая, то есть имеет непрерывную первую производную.
Как уже было сказано, аналитически такая задача разрешима
только для очень ограниченного набора функций f(x). В частности,
даже если f(x) представляет собой полином, аналитического решения в общем случае не существует, если степень полинома превышает 4.
Рассмотрим численный метод решения таких уравнений, основанный на идее аппроксимации.
Любой алгоритм, основанный на аппроксимационном подходе,
следует общей схеме:
1. Вначале задается исходная задача, то есть уравнение f(x) = 0 и
начальное приближение x0.
16
2. Выполняется аппроксимация: строится новая задача, которая
в некотором смысле приближенно равна исходной задаче в окрестности текущего приближения xi, где i – номер шага. То есть строится новое уравнение f*(x) = 0 таким образом, что f(x) ≈ f*(x) при x ≈ xi.
3. Приближенная задача решается, ее решение дает новое приближение xi+1. Вид функции f* можно выбрать такой, чтобы приближенная задача f*(x) = 0 решалась легко.
4. Проверяется условие завершения. Обычно расстояние между
двумя последними приближениями сравнивается с заранее заданной допустимой погрешностью: |xi+1–xi| < ε, и если условие выполнено, то требуемая точность считается достигнутой и алгоритм завершается. Иначе – возврат на шаг 2.
Конкретный численный метод определяется тем, как именно
строится приближенная задача.
Метод Ньютона получается, если для аппроксимации использовать линейную функцию:
f*(x) = kx + b.
Коэффициенты k и b выбираются таким образом, чтобы в текущей точке xi совпадали значения самих функций f(x) и f*(x), а также их первых производных:
f (xi ) = f * (xi ),

*
f ′(xi ) = f ′ (xi ).
Решив эту систему относительно k и b, можно записать уравнение приближенной функции в явном виде:
f * (x) =
f (xi ) + f ′(xi )(x − xi ). (1.2)
Поскольку функция f*(x) линейна, найти решение приближенной задачи легко:
f (xi ) + f ′(xi )(xi +1 − xi ) =
0,
xi +=
1 xi −
f (xi )
. f ′(xi )
(1.3)
Найденное значение и будет следующим, более точным приближением к решению.
Линейное приближение функции в точке имеет простую геометрическую интерпретацию. Действительно, уравнение (1.2) пред17
ставляет собой уравнение касательной к функции f(x) в точке xi. Пересечение этой касательной с осью x дает
следующее приближение. На рис. 1.3
показаны два последовательных приx ближения.
xi+2 xi+1 xi
Формула (1.3) и лежит в основе метода Ньютона.
Рис. 1.3. Решение уравнений
Алгоритм метода может быть
методом Ньютона
представлен следующим образом:
Шаг 1. Задаются целевая функция f(x) и начальная точка x0.
Шаг 2. Вычисляется следующая точка по формуле (1.3), где i –
номер текущего шага.
Шаг 3. Проверяется условие завершения, обычно расстояние
между последними двумя приближениями сравнивается с заранее
заданной величиной погрешности: |xi+1 – xi| < ε. Если условие выполнено, то алгоритм завершается и текущая точка является ответом, иначе – возврат на шаг 2.
Условие завершения может меняться в зависимости от конкретной задачи. Обычно алгоритм останавливается, когда расстояние
между соседними приближениями |xi – xi–1| или абсолютная величина |f(xi)| становятся меньше некоторой заданной малой величины ε.
y
f(x)
f*(x)
Свойства метода Ньютона
Cкорость сходимости метода в общем случае – квадратичная. Однако если в точке, где функция f(x) принимает нулевое значение, ее
производная f′(x) также равна нулю, то скорость падает до линейной.
В общем случае сходимость не гарантируется. Если у исходного
уравнения имеется несколько корней, метод находит один из них,
причем в общем случае невозможно предсказать, какой из корней
будет найден из заданной начальной точки.
Метод Ньютона требует вычисления первой производной целевой функции.
Метод Ньютона является одним из самых эффективных в том
случае, когда целевая функция гладкая и ее производная известна. Однако он более требователен к целевой функции, чем методы
исключения интервалов: функция должна иметь первую производную и быть достаточно гладкой (то есть эффективно аппроксимироваться прямой линией) в окрестности решения уравнения. Метод
18
Ньютона может применяться и как самостоятельный метод, и как
заключительный этап комбинированных методов.
Пример 1.2. Рассмотрим применение метода Ньютона для решения уравнения cos(x) = 0. Из школьного курса тригонометрии известно, что это уравнение имеет бесконечное множество решений
π
π
+ πk, k ∈ Z, одно из которых равняется .
вида xi=
2
2
В данной задаче f(x) = cos(x), f′(x) = –sin(x). Следовательно, формула итерации примет вид
xi +=
1 xi +
cos(x)
.
sin(x)
Если выбрать в качестве начальной точки 2,5, первые 5 итераций
алгоритма дадут следующие значения:
Шаг i
xi
Отклонение от π / 2
Число верных цифр
0
2,5000000000
0,9292036732
0
1
1,1613518717
0,4094444551
1
2
1,5953227460
0,0245264192
2
3
1,5707914077
0,0000049191
6
4
1,5707963268
3,96766 ×
10–17
16
Таким образом, пяти шагов оказалось достаточно, чтобы найти
значение π/2 с точностью порядка 10–17, что больше, чем двойная
точность чисел с плавающей запятой в формате IEEE.
1.2. Решение систем уравнений.
Метод Ньютона для систем уравнений
Системы уравнений возникают в задачах, где есть несколько неизвестных величин, связанных набором ограничений. Как правило, для того чтобы у системы уравнений было конечное количество
решений, необходимо, чтобы число уравнений равнялось числу неизвестных. Если уравнений меньше, чем неизвестных, система называется недоопределенной и обычно имеет бесконечное множество
решений. Если уравнений больше, чем неизвестных, система называется переопределенной и решений обычно не имеет.
Расширим построенный ранее метод Ньютона для решения скалярных уравнений на многомерный случай. Рассмотрим задачу решения системы n нелинейных уравнений c n неизвестными:
19
 f1 (x1, , xn ) = 0,
 f (x , , x ) = 0,
2 1
n



fn (x1, , xn ) = 0,
где fi(x1,…, xn) – гладкие функции n переменных x1, ..., xn ∈ R. Такую систему уравнений иногда удобнее рассматривать как одно
уравнение векторного аргумента:
f (=
x) 0, x ∈ R n .
Аналогично тому, как в одномерном методе Ньютона целевая
функция может быть аппроксимирована касательной, функцию
векторного аргумента можно аппроксимировать в точке x0 многомерной линейной функцией:
f*(x) = Kx + b,
где K – матрица коэффициентов; b – вектор свободных членов. Снова, по аналогии с одномерным случаем, выберем значения K и b такими, чтобы совпадали значения и первые производные функций
f(x) и f*(x). Аналогично одномерному случаю это условия для построения касательной плоскости в пространстве размерности n + 1.
Для функции, аргумент и значение которой являются n-мерными
векторами, первые производные образуют квадратную матрицу
n × n, называемую матрицей Якоби J:
 ∂f1
 ∂x
 1
J= 

 ∂fn
 ∂x1
∂f1
∂x2

∂fn
∂x2
∂f1 
∂xn 
  .

∂fn 

∂xn 

x) Kx + b матрица Якоби равна K.
Для линейной функции f * (=
Тогда условия построения линейной аппроксимации в окрестности
точки xi (где верхний индекс означает номер итерации) можно записать как:
f (=
xi ) Kxi + b,

J = K.
20
K J=
, b f (xi ) − Jxi . ПодстаОткуда несложно найти решение:=
*
вив эти значения в уравнение для f (x), окончательно получим уравнение касательной плоскости в многомерном случае:
f * (x) = K(x − xi ) + f (xi ).
Аналогично одномерному случаю эта аппроксимация представляет собой первые два члена ряда Тейлора для функции f(x). Приравняв нулю f*(x), можно найти следующую точку приближения:
1
xi +=
xi − J−1f (xi ).
Эта формула описывает один шаг итерации метода Ньютона, алгоритм которого может быть сформулирован следующим образом:
Шаг 1. Задается начальная точка x0.
Шаг 2. В текущей точке вычисляется матрица Якоби:

 ∂f 

J =  i .
∂
x
 j


Шаг 3. Вычисляется следующее приближение:
−1
xi +=
1 xi − J f (xi ).
Если достигнута необходимая точность, алгоритм завершается,
иначе – возврат на шаг 2.
Свойства метода Ньютона для систем уравнений
Свойства метода Ньютона для многомерного случая принципиально ничем не отличаются от одномерного. Он особенно удобен, если
удалось найти аналитическое выражение для элементов матрицы J
(то есть для частных производных левых частей уравнений).
Недостатком метода является то, что на каждом шаге необходимо вычислять n2 частных производных. Если для производных не
найдено аналитического выражения, их вычисление методом конечных разностей является затратной операцией. Кроме того, требуется обращать матрицу n-го порядка, что не всегда является вычислительно устойчивой задачей.
1.3. Оптимизационный подход
Любую задачу, в которой требуется решить уравнение или систему уравнений, можно свести к оптимизационной задаче, где целе21
вой функцией является норма вектора невязки, то есть отклонения
правых частей системы уравнений от нуля. Таким образом, уравнение
f (=
x) 0, x ∈ R n
заменяется оптимизационной задачей
f (x) → min, x ∈ R n ,
где ⋅ – некоторая векторная норма, например корень квадратный
из суммы квадратов компонент вектора.
Поскольку норма по определению неотрицательна и равна нулю
только для нулевого вектора, несложно показать, что искомое решение будет доставлять минимум функции ||f(x)||. Обратное, вообще
говоря, неверно: не всякому минимуму ||f(x)|| соответствует нуль f(x).
Достоинством оптимизационного подхода является то, что он
позволяет находить приближенные решения переопределенных и
противоречивых систем уравнений. В этом случае строгое равенство достигнуто не будет, но будет найдено решение, которое одновременно доставляет близкие нулю значения всем уравнениям системы.
Недостаток оптимизационного подхода состоит в том, что у выражения ||f(x)|| могут иметься локальные минимумы, в которых значение функции отличается от нуля. Такие локальные минимумы
будут давать побочные решения, которые необходимо отбрасывать.
Численные методы решения оптимизационных задач рассмотрены в следующем разделе.
22
2. МЕТОДЫ ПОИСКА ЭКСТРЕМУМА
2.1. Постановка оптимизационной задачи
Задачи, в которых требуется найти значение аргумента, максимизирующее или минимизирующее некоторый числовой критерий,
широко распространены во всех областях математики и техники.
Как сказал Л. Эйлер, «в мире не происходит ничего, в чем бы не был
виден смысл какого-нибудь максимума или минимума». Несмотря
на разнообразие этих задач, все они могут рассматриваться как
частные случаи задачи оптимизации.
Математическую формулировку задачи оптимизации можно
представить следующим образом. Пусть задано множество D, являющееся подмножеством конечномерного линейного пространства RN.
Данное множество D называется допустимым множеством задачи.
Пусть теперь на множестве D задана функция f (x), x ∈ D, принимающая действительные значения. Функция f(x) называется целевой функцией задачи.
Тогда оптимизационная задача заключается в поиске такого элемента x0 ∈ D, который доставляет функции f(x) минимальное значение:
x0 = arg min f (x).
x∈D
Таким образом, корректная постановка задачи оптимизации
сводится к заданию допустимого множества D и целевой функции
на нем. Поскольку задача на поиск максимума всегда может быть
сведена к задаче на поиск минимума изменением знака целевой
функции, в дальнейшем часто будет рассматриваться только задача
минимизации.
Если расширить формулировку оптимизационной задачи, взяв
вместо конечномерного векторного пространства бесконечномерное
пространство функций, то придем к задаче вариационного исчисления: области оптимизации, в которой искомой величиной является
функция. Основы вариационного исчисления излагаются в разделе 4.
2.1.1. Глобальный и локальный экстремумы
Глобальный экстремум. Пусть точка x0, лежащая внутри множества D, обладает следующим свойством:
f (x0 ) < f (x)
23
или
f (x0 ) ≤ f (x)
для всех x ∈ D, x ≠ x0 . Тогда такая точка x0 называется глобальным
минимумом целевой функции на данном множестве. Если неравенство строгое, то минимум называется строгим, иначе говорят о нестрогом минимуме. Максимум определяется аналогично.
Из определения следует, что строгий глобальный экстремум,
если он существует, может быть только один. Нестрогих экстремумов может быть любое количество, в том числе и бесконечно много.
При этом значение целевой функции во всех нестрогих глобальных
экстремумах одинаково.
Условия существования глобального экстремума задает теорема
Вейерштрасса.
Теорема 2.1 (Вейерштрасса). Функция, непрерывная на замкнутом и ограниченном подмножестве евклидова пространства, ограничена на нем и достигает своей верхней и нижней
грани.
Локальный экстремум. Исходя из определения глобального экстремума, локальный экстремум можно определить следующим образом.
Точка x0 называется точкой локального экстремума, если существует такая окрестность точки x0, в которой она является глобальным экстремумом.
Локальные экстремумы, так же как и глобальные, могут быть
строгими и нестрогими, но, в отличие от глобальных, их количество
неограниченно. Все глобальные экстремумы являются также и локальными, обратное, очевидно, неверно. Различные типы экстремумов показаны на примере функции одной переменной на рис. 2.1.
y
х
A
B
C
D
E
Рис. 2.1. Типы экстремумов: строгие: A – локальный минимум,
B – локальный максимум, C – глобальный минимум; нестрогие:
интервал [D; E] – глобальный максимум
24
Необходимо отметить, что в корректно поставленной оптимизационной задаче целевая функция может быть только одна. Часто
встречающаяся формулировка «максимум прибыли при минимальных затратах» является типичным примером некорректной
постановки задачи. В подобных случаях, чтобы сделать постановку
корректной с точки зрения теории оптимизации, необходимо ввести
новую объединенную целевую функцию. Например, это может быть
функция прибыли – разница между доходами и расходами.
2.1.2. Классификация методов оптимизации
Задача оптимизации в общей постановке практически не поддается решению. Поэтому практические методы оптимизации рассматриваются для отдельных классов оптимизационных задач.
Ниже приводится используемая в пособии классификация задач
оптимизации и методов их решения.
1. По способу решения:
– аналитические методы,
– численные методы.
2. По порядку используемой производной:
– прямые методы,
– методы первого порядка,
– методы второго порядка,
– методы более высоких порядков.
3. По использованию случайных чисел:
– детерминированные,
– стохастические.
4. По размерности задачи:
– одномерная оптимизация,
– многомерная оптимизация,
– бесконечномерная оптимизация – вариационное исчисление.
5. По ограничениям:
– безусловная оптимизация (без ограничений),
– условная оптимизация (с ограничениями): ограничения типа
равенств, ограничение типа неравенств.
К аналитическим относят методы, в которых решение ищется путем формальных манипуляций над математической записью
целевой функции и ограничений, то есть путем преобразования и
упрощения формул.
Неоспоримым достоинством этих методов является то, что они
дают математически точный ответ, а также позволяют решить за25
дачу в общем виде. Главным недостатком аналитических методов
является то, что не всякая задача поддается аналитическому решению даже в том случае, если удается записать в аналитическом виде
целевую функцию и ограничения.
Кроме того, в некоторых практических задачах целевая функция вообще не может быть представлена в виде формулы, так как
она является результатом измерения физической величины (задана
таблицей значений). В качестве примера можно привести задачу автоматической фокусировки фотоаппарата, когда целевой функцией
является оценка четкости изображения на матрице.
Тем не менее, несмотря на некоторую ограниченность применения, аналитические методы служат основой для построения численных методов, а также могут давать эталонные решения для
оценки качества численных методов.
Численные методы оптимизации – алгоритмы поиска численного значения экстремума функции. Как правило, они находят
приближенное решение и имеют итерационный характер: одно и то
же вычисление многократно повторяется, на каждом шаге уточняя
ответ. Решение ищется на заданном интервале с некоторой заранее
заданной конечной точностью, по достижении которой алгоритм завершается.
Особняком стоят методы линейного программирования, которые
внешне являются численными, но позволяют найти точное решение за конечное число шагов (см. подп. 3.2.3).
Прямые методы не используют значения производной целевой
функции. Они наименее требовательные, но имеют сравнительно
медленную сходимость.
Методы первого порядка используют значение производной целевой функции. Естественным дополнительным требованием для
их применения является гладкость целевой функции: f(x) должна быть непрерывной и ее производные должны существовать.
Как правило, методы первого порядка обеспечивают более высокую скорость сходимости, чем прямые методы. Это естественное
следствие того, что они получают дополнительную информацию о
функции.
Методы второго порядка, помимо самой целевой функции и ее
первой производной, используют также значение ее второй производной. Эти методы накладывают еще больше ограничений на целевую функцию, чем методы первого порядка, и, как правило, сходятся быстрее.
26
Можно сконструировать методы более высоких порядков, третьего и выше, но они обладают плохой вычислительной устойчивостью и мало применяются на практике.
При одномерной оптимизации целевая функция является функцией одного действительного аргумента. Методы одномерной оптимизации имеют самостоятельное значение, потому что одномерные
задачи часто встречаются на практике. Кроме того, они могут служить базовыми элементами для построения методов многомерной
оптимизации.
В случае, когда целевая функция зависит от нескольких аргументов или, что то же самое, от одного векторного аргумента, необходимо
применять методы многомерной оптимизации. Одни из них опираются на одномерные методы, другие – используют принципиально
иные подходы. Если в результате решения задачи требуется найти
некоторую непрерывную функцию, говорят о бесконечномерной оптимизации. Задачи такого типа рассматриваются в разделе 4.
В зависимости от дополнительных ограничений на область поиска экстремума различают задачи условной оптимизации (с ограничениями) и задачи безусловной оптимизации (без ограничений).
Соответственно, говорят о методах условной и безусловной оптимизации.
2.2. Методы безусловной оптимизации
2.2.1. Аналитические методы. Одномерный случай.
Метод Ферма
Основным аналитическим методом решения задач одномерной
оптимизации является применение леммы Ферма (иногда называемой теоремой Ферма), которая дает необходимый признак экстремума.
Лемма Ферма. Производная дифференцируемой функции
в точке локального экстремума равна нулю.
Доказательство. Пусть x0 – локальный минимум функции f(x).
Следовательно, по определению локального минимума, существует
такая окрестность D точки x0, в которой выполняется неравенство:
f (x) ≤ f (x0 ) для всех x из D.
Выпишем определение производной:
f (x0 + h) − f (x0 )
.
h
h →0
f ′(x0 ) = lim
27
Рассмотрим односторонние пределы этой величины и определим
их знаки. Числитель f (x0 + h) − f (x0 ) всегда меньше нуля, потому
что x0 – точка минимума, а знак числителя зависит от того, с какой
стороны берется предел.
Для левостороннего предела h<0. Следовательно, предел слева
неотрицателен:
f−′ (x0 ) = lim ∆f / h ≥ 0.
h →−0
Для предела справа h>0, следовательно, он неположителен:
f+′ (x0 ) = lim ∆f / h ≤ 0.
h →+0
Для того чтобы существовал двусторонний предел, необходимо,
чтобы оба односторонних предела существовали и были равны:
′ (x0 ) f−=
′ (x0 ) f+′ (x0 ).
f=
Так как функция f(x) по условию леммы гладкая, то предел существует. Следовательно, он равен нулю, так как это единственное
значение, которое одновременно неотрицательно и неположительно. Тем самым доказано, что f ′(x0 ) = 0.
Пьер де Ферма (1601–1665) – французский математик, один из
создателей аналитической геометрии, математического анализа,
теории вероятностей и теории чисел. Изучая геометрические построения, Ферма открыл следующее: для нахождения максимумов и
минимумов площадей фигур не требуются особенно сложные чертежи. Свой систематический прием для отыскания экстремумов Ферма описал в работе «Метод исследования максимумов и минимумов».
Полностью она была опубликована в 1779 г., после смерти ее автора.
Ряд замечательных результатов Ферма относится к теории чисел. В первую очередь это так называемая «Великая теорема Ферма» – пожалуй, самая знаменитая теорема в истории математики.
Сегодня она звучит так: не существует отличных от нуля целых чисел x, y и z, для которых имеет место равенство xn + yn = zn при n > 2.
Более 400 лет математики пытались доказать эту теорему,
удалось это только в наше время. Доказательство получено Эндрю
Уайлсом, содержит 129 страниц и опубликовано в журнале Annals of
Mathematics в 1995 году.
Лемма Ферма имеет простую геометрическую интерпретацию.
Рассмотрим кривую, являющуюся графиком функции y = f(x). Про28
изводная функции в некоторой
f(x)
y
точке x равна тангенсу угла наклона касательной к кривой, про4
веденной в этой точке. Если функ2
ция возрастает, угол наклона ка3
x3 x2
x1
сательной положителен (наприx
мер, прямая 4 на рис. 2.2), если
1
функция убывает, угол наклона
касательной отрицателен.
Рис. 2.2. Касательные к функции
Точка экстремума является пов различных точках
граничной между интервалами
возрастания и убывания, поэтому
касательная, проведенная через эту точку, занимает промежуточное, строго горизонтальное положение (прямые 1, 2, 3 на рис. 2.2).
Такое положение соответствует нулевому углу наклона и нулевому
значению производной.
Физическая интерпретация метода Ферма опирается на толкование производной как скорости изменения некоторой величины.
В частности, если величина это положение материальной точки, а
производная берется по времени, то результатом дифференцирования будет мгновенная скорость движения материальной точки.
В такой интерпретации лемма Ферма будет означать, что в момент
достижения экстремума мгновенная скорость обращается в нуль.
Этот факт упоминался Ньютоном как «принцип остановки»: «Когда величина есть наибольшая или наименьшая из всех возможных,
она в этот момент не течет ни вперед ни назад». Поэтому точки,
для которых f′(x) = 0, называются стационарными точками [13] .
Пример 2.1. Экстремальный путь из точки А в точку В с заходом
на прямую.
Сказочная формулировка задачи. Серый Волк хочет оживить
Ивана-царевича. Как ему добраться до Ивана-царевича кратчайшим путем, набрав по дороге живой воды в реке (рис. 2.3)?
Другая формулировка задачи. По одну сторону от прямого шоссе
расположены две деревни. В каком месте на шоссе нужно построить
автобусную остановку, чтобы сумма расстояний от деревень до остановки была наименьшей?
Аналитическое решение. Введем систему координат так, чтобы
максимально упростить решение задачи. Пусть ось абсцисс совпадает с рекой, а ось ординат проходит через точку с Волком, как это
показано на рис. 2.3, б. Пусть известны координаты точек A (0; a),
29
А (Волк)
а)
б)
y
А (0; a)
В (Иван)
В (b; c)
x
0
С (живая вода)
С (x; 0)
Рис. 2.3. Задача об Иване-царевиче и Сером Волке
B (b; c). Требуется найти абсциссу точки C (x; 0) такую, что сумма
длин отрезков АС и СВ будет минимальной:
L = АС + СВ → min. (2.1)
Запишем L как функцию неизвестной координаты точки С. Для
этого выразим длины отрезков AC и CB через их координаты (по теореме Пифагора):
AC = a2 + x2 , CB = (b − x)2 + c2 .
Подставляя эти выражения в (2.1), получим критерий оптимизации:
L(x) =
a2 + x2 + (b − x)2 + c2 → min. (2.2)
Для поиска минимума, согласно лемме Ферма, найдем производную L по x и приравняем результат нулю:
x
x−b
Lx′ =
+
=
0.
2
2
a +x
(b − x)2 + c2
Перенесем одно из слагаемых в правую часть уравнения и возведем обе части в квадрат:
x2
a2 + x 2
=
( x − b )2
(b − x)2 + c2
.
(2.3)
Перейдем к обратным величинам:
a2 + x 2
x2
30
=
(b − x)2 + c2
(x − b)2
⇒1+
a2
x2
=1+
c2
(x − b)2
⇒
a2
x2
=
c2
(x − b)2
.
Извлечем корень из обеих частей последнего уравнения:
a
c
= ±
.
x
x−b
Отсюда получаем два решения:
ab
ab
=
x1 =
, x2
.
a+c
a−c
Для того чтобы выбрать из полученных двух решений то, которое соответствует минимуму целевой функции, воспользуемся очевидным условием минимума: x < b (рис. 2.3). Этому условию точка
x2 не удовлетворяет, следовательно, кратчайший путь дает решение
x1.
Также для выбора x1 можно воспользоваться условием положительности x при любых значениях a, b и c.
Замечание: точка x2 соответствует минимуму функции
a2 + x2 − (b − x)2 + c2 и является побочным решением, появившимся при получении уравнения (2.3) путем возведения в квадрат.
Подставляя x1 в формулу (2.2), найдем длину кратчайшего пути:
L(x1 ) =
= a
a2 +

ab 
2
+ b −
 +c =
2
a
c
(
)
+
(a + c)


(a + c)2 + b2
(a + c)2
2
a2 b2
+ c2 +
c2b2
(a + c)2
=
(a + c)2 + b2 .
Серый Волк доберется до Ивана-царевича кратчайшим путем,
 ab

; 0 .
если придет на реку с живой водой в точке C 
a+c 
Геометрическое решение. Наша
y
задача имеет простое геометричеА (0; a)
ское решение. Действительно, при
В (b; c)
определении расстояния не имеет
значения, по какую сторону от реки
D (b; 0)
находится точка B. Отразив точку
0
С (x; 0)
x
B зеркально относительно оси абсцисс, получим точку B1 (рис. 2.4).
В1 (b; –c)
Тогда очевидно, что решение задачи – точка пересечения оси абсцисс
Рис. 2.4. Геометрическое
и прямой AB1.
решение задачи
31
Неизвестную координату точки C можно найти из подобия треугольников AOC и BDC (эти треугольники подобны по двум углам):
x/(b – x) = a/c ⇒ x = ab/(a + c).
Оптическое решение. Еще один способ решения этой задачи основан на знании законов оптики. Известно, что свет из одной точки
в другую распространяется по кратчайшему расстоянию. Тогда для
решения обсуждаемой задачи поставим вопрос: в какой точке луч
света при движении из точки А в точку В коснется зеркала, расположенного вдоль оси абсцисс?
Известно, что угол падения луча равен углу его отражения, откуда, как и в предыдущем решении, следует подобие треугольников
AOC и BDC по двум углам.
Аналитическое решение в пакете Maple. Рассмотрим аналитическое решение рассматриваемой задачи с помощью пакета символьных вычислений Maple.
Зададим целевую функцию:
> L: = sqrt(a^2 + x^2) + sqrt((b-x)^2 + c^2);
Продифференцируем эту функцию по x:
> Ldif: = diff(L,x);
Упростим полученное выражение:
> Lds: = simplify(Ldif);
Lds := −
−x
x 2 − 2 b x + b2 + c 2 + a 2 + x 2 b − a 2 + x 2 x
a 2 + x 2
x 2 − 2 b x + b2 + c 2
Приравняем числитель нулю и решим полученное уравнение относительно x:
> rez: = solve(numer(Lds),x);
rez :=
ab
ab
,
a + c −c + a
Подставим найденное решение, соответствующее минимуму,
в целевую функцию:
> simplify(subs(x = rez[1],L),symbolic);
a 2 + 2 a c + c 2 + b2
Таким образом, мы нашли значение минимума.
В пакете Maple существует специальная команда extrema для
символьного поиска экстремума. Используя ее, получаем:
> simplify(extrema(L,{},x,′rezx′),symbolic);
32

a 2 − 2 a c + c 2 + b2 ( a + c ) 
{ max a 2 + 2 a c + c 2 + b2 ,
,
a − c


2
2
2

a − 2 a c + c + b ( a + c ) 
min a 2 + 2 a c + c 2 + b2 ,
}
a − c


Результатом выполнения команды являются значения экстремумов. Для получения координат экстремумов требуется указать
имя переменной:
> rezx;
{ { x = ab
ab
}, { x = }}
a − c
a + c
Численное решение в пакете Maple. Большинство математических пакетов имеют функции для численного решения задач оптимизации. При этом все параметры целевой функции должны быть
заданы численно.
Рассмотрим решение задачи из примера 2.1 в пакете Maple для
случая a = 4, b = 6, c = 8. Согласно ответу, полученному выше, в этом
ab
= 2 и составлять
случае минимум должен достигаться в точке
a+c
2
2
(a + c) + b =
6 5.
Для поиска экстремума необходимо подключить библиотеку оптимизации (входит в состав Maple для версий старше 9-й):
> with(Optimization):
Далее следует воспользоваться функцией Minimize (функция [,
ограничения] [, область значений переменных] [, опции]):
> a: = 4;b: = 6;c: = 8; L: = sqrt(a^2 + x^2) + sqrt((b-x)^2 + c^2); Minimize(L);
В результате получим ответ:
20
19
[ 13.4164078649987389 , [ x = 1.99999999999999956
]]
18
78649987389 , [ x = 1.99999999999999956 ] ] .
17
Здесь первое число – значение минимума, второе – аргумент
функции, при котором достигается
минимум.
Для того чтобы построить график целевой функции, воспользуемся командой plot:
> plot(L,x = –4..10); (рис. 2.5).
16
15
14
13
–4
–2
0
2
4
6
8
10
Рис. 2.5. График целевой
функции L(x)
33
Из графика видно, что минимум действительно достигается
в точке x = 2.
Упражнение. Пусть в задаче о Сером Волке и Иване-царевиче
(пример 2.1) живая вода находится не в реке, а в круглом озере радиуса 1 км с центром в точке с координатами (0; –1). Волк находится
в точке А (–3; 4), Иван-царевич в точке В (1,5; 2) (рис. 2.6). Определите длину L кратчайшего пути из точки А в точку В с заходом на
озеро.
Ответ: L = 7,5 км.
Другая формулировка задачи. По одну сторону от озера расположены два коттеджа А и В. В каком месте на берегу нужно сделать пляж,
чтобы сумма расстояний от коттеджей до пляжа была наименьшей?
Возможна также оптическая формулировка задачи, при которой
для решения используется правило
y
«угол падения равен углу отражения».
A
Заметим, что в общем случае кратB
чайший путь из точки А в точку В с
заходом на озеро частично проходит
x
вдоль берега озера, т. е. состоит не из
двух отрезков, как это показано на
рис. 2.6, а включает еще дугу окружности. В частности, так будет, если
точки А и В расположены по разные
Рис. 2.6. Путь из точки А
в точку В с заходом на озеро стороны от озера.
Достаточный признак экстремума
Лемма Ферма дает необходимое, но не достаточное условие экстремума. То есть выполнения равенства f′(x) = 0 в некоторой точке
недостаточно для того, чтобы сделать
y
вывод о наличии в этой точке экстреy=x 3
мума. Кроме того, лемма Ферма не позволяет отличить максимум от мини0
мума или от точки перегиба кривой.
x
Примером может служить функция
f(x) = x3 (рис. 2.7).
Для
этой
функции f ′(x) = 3x2 ,
f ′(0) = 0, однако в точке x = 0 нет экстремума.
Таким образом, для поиска эксРис. 2.7. График кубической
тремума необходим анализ не только
функции
34
первой производной функции, но и производных более высоких порядков. Достаточное условие экстремума можно сформулировать
следующим образом.
Пусть n – натуральное число, такое, что для всех 0 ≤ i < n выполняется равенство f (i) (x0 ) = 0; а f (n) (x0 ) ≠ 0. Иначе говоря, n – порядок первой из производных, которая не равна нулю. Тогда:
– если n – четное, то x0 – экстремум, причем:
если f (n) (x0 ) < 0, то x0 – максимум, иначе – минимум;
– если n – нечетное, то x0 не является экстремумом (это точка
перегиба).
Для примера проведем анализ функции f (x) = x5 . Так как
f ′(0) = 0, x0 = 0 – стационарная точка. Рассмотрим производные
функции в этой точке:
f ′(x
=
x04 0,
0 ) 5=
f ′′=
(x0 ) 20
=
x03 0,
f ′′′=
(x0 ) 60
=
x02 0,
)
f (4=
(x0 ) 120
=
x0 0,
f (5) (x=
0 ) 120 ≠ 0.
Следовательно, n = 5. Так как n – нечетное, то x0 является точкой
перегиба и не является точкой экстремума.
Таким образом, чтобы аналитически найти экстремум функции
f(x), необходимо сначала найти ее стационарные точки, то есть значения x, для которых f′(x) = 0. После того как стационарные точки
определены, нужно провести дополнительный анализ, определив
тип этих точек (минимум, максимум, точка перегиба), как это описано выше. Во многих случаях этот дополнительный анализ необязателен, так как тип экстремума очевиден из задачи.
Аналитические методы многомерной оптимизации
Основным аналитическим подходом к решению задачи безусловной оптимизации является многомерный аналог леммы Ферма, утверждающий следующее:
Если x* = (x1* , x2* , ..., xn* ) – локальный экстремум функции n переменных f (x1, x2 , ..., xn ), и в этой точке существуют все частные
∂f
, i = 1, ...,n, то в данной точке эти производные
производные
dxi
равны нулю:
35
∂f (x* )
= 0, ∀i= 1, ...,n.
dxi
Данная лемма позволяет свести оптимизационную задачу к решению системы n уравнений с n неизвестными (в общем случае –
нелинейную). Для доказательства этой леммы достаточно в точке
экстремума фиксировать все переменные, кроме одной, сведя тем
самым задачу к одномерной, после чего воспользоваться леммой
для одномерного случая. Аналогично одномерному варианту данный признак является необходимым, но не достаточным. Для получения достаточного признака необходим анализ частных производных более высоких порядков. Это осложняется тем, что у функции
нескольких переменных частные производные порядка n образуют
n-мерную таблицу, и для анализа недостаточно только знака производных.
2.2.2. Численные методы. Одномерный случай
Методы исключения интервалов
Идея исключения интервалов заключается в следующем. Интервал, в котором ищется экстремум, делится на несколько частей,
сравниваются значения функции в каждой части, после чего часть
интервала отбрасывается. Этот процесс повторяется до тех пор,
пока длина интервала не достигнет достаточно малого значения, соответствующего заданной точности поиска экстремума.
Ниже рассматриваются три метода исключения интервалов: метод дихотомии (деления пополам), метод Фибоначчи и метод золотого сечения.
Все три метода обладают рядом общих свойств:
– допустимая область представляет собой отрезок [a, b] на действительной оси;
– в пределах допустимого множества целевая функция f(x) должна быть унимодальной, т. е. иметь только один экстремум;
– эти методы являются прямыми, т. е. не используют значения
производной f′(x) и даже не требуют того, чтобы эта производная
существовала. Более того, целевая функция может даже иметь разрывы, если они не нарушают унимодальности;
– эти методы дают двустороннюю оценку положения экстремума: сверху и снизу;
– методы исключения интервалов гарантированно сходятся и
имеют линейную скорость сходимости. Более того, число шагов не
36
зависит от вида целевой функции
f(x)
y
и определяется только длиной отрезка поиска и требуемой точностью.
Дадим более строгое опредеa
x*
b
ление понятия унимодальности,
x
упоминаемого в свойстве 2.
Функция f(x) называется унимодальной на отрезке [a, b], если
Рис. 2.8. График унимодальной
на нем имеется единственное зна*
*
функции
чение x , такое, что f(x ) – минимум f(x) на [a, b] и f(x) строго убывает для x ≤ x* и строго возрастает для x ≥ x*.
Пример того, как может выглядеть график унимодальной функции, показан на рис. 2.8. Обратите внимание на то, что такая функция может иметь как изломы, так и разрывы.
Требование унимодальности целевой функции является принципиально важным для методов исключения интервалов, попытка
применить эти методы для иной функции может привести к тому,
что будет найдена точка, не являющаяся ни минимумом, ни максимумом.
Метод дихотомии
Рассмотрим задачу поиска минимума унимодальной целевой
функции на отрезке:
f (x) → min,
x∈ [a,b] ,
f(x) – унимодальна на [a, b].
Аналогично задачам на поиск нуля функции для поиска экстремума также существует подход, основанный на делении отрезка:
метод дихотомии, иначе называемый методом деления пополам.
Необходимым условием для его применения является требование
унимодальности целевой функции f(x): на рассматриваемом промежутке [a, b] функция f(x) должна иметь не более одного минимума
(рис. 2.8).
В основе метода лежит свойство унимодальной функции: если на
отрезке [x, y] функция возрастает, то минимум не может быть больше, чем y. Это позволяет построить следующий алгоритм:
Шаг 1. На начальном шаге отрезок, на котором ищется минимум, задается равным интервалу допустимых значений [a, b].
37
a+b
и цен2
тров его правой и левой половин: x1 = (a + c)/2, x2 = (c + b)/2.
Шаг 3. Вычисляются значения целевой функции в точках f(c),
f(x1), f(x2).
Шаг 4. Значения функции в точках c, x1, x2 сравниваются, и
определяется положение нового, уточненного интервала поиска.
При этом интервал поиска уменьшается в два раза:
– если f(c) >f(x1), то новый отрезок [a, c];
– если f(c) >f(x2), то новый отрезок [c, b];
– иначе новый отрезок [x1, x2].
Шаг 5. Если длина отрезка меньше заданной точности ε, то алгоритм завершается, иначе осуществляется переход на шаг 2.
Алгоритм проиллюстрирован графиком (рис. 2.9), где штриховкой показана область, к которой будет осуществлен переход после
первого шага метода.
Для уменьшения количества вычислений
можно воспользоваться
f(x)
тем, что на втором и последующих
шагах значение функции в центре
нового отрезка всегда будет вычислено на предыдущем шаге, поэтому
a
x1
c
x2
b
на каждом новом шаге требуется
вычислять целевую функцию тольРис. 2.9. Метод дихотомии,
ко в центрах правого и левого полуf(x1)<f(c)
отрезков.
Так как каждый последующий отрезок всегда ровно в два раза
меньше предыдущего, метод дихотомии обеспечивает увеличение
точности в два раза за каждые два вычисления целевой функции или
в среднем в 2 ≈ 1,41 раза на одно вычисление целевой функции.
Свойства метода дихотомии:
– скорость сходимости: линейная. С каждым шагом ошибка
уменьшается ровно в два раза;
– метод дает двустороннюю оценку точки экстремума;
– метод гарантирует сходимость, если целевая функция унимодальна.
Данный метод – типичный представитель методов исключения
интервала.
Пример 2.2. Задача о цепи из пяти звеньев. Найти глубину провисания металлической цепочки, состоящей из пяти шарнирно соШаг 2. Вычисляется положение центра отрезка c =
38
0
A (1,5; 0)
F
–h1
D(0,5;–y)
E
–h2
–h
C (x; –y)
B(0,5; –h)
Рис. 2.10. Задача о цепи из пяти звеньев
единенных звеньев единичной длины, концы которой также шарнирно закреплены в точках (–1,5; 0) и (1,5; 0).
Решение. Изобразим расположение звеньев цепи (рис. 2.10). Очевидно, что цепь будет располагаться симметрично относительно
вертикальной оси, и ее среднее звено разместится горизонтально.
В основе решения этой задачи лежит принцип минимума потенциальной энергии, который гласит, что любая система стремится
перейти в состояние, при котором ее потенциальная энергия будет
минимальной. Таким образом, требуется найти такое положение
цепи, при котором сумма потенциальных энергий всех звеньев будет минимальной.
Обозначим координаты центров тяжестей звеньев –h1, –h2, –h
(рис. 2.10), а их массы m. Тогда целевая функция примет вид
E = –2(mgh1 + mgh2) – mgh → min.
Для решения задачи методом одномерной оптимизации необходимо представить E в виде функции от h, а для этого выразить h1 и
h2 через h.
Координату нижнего конца первого звена обозначим y. Заметим,
что h1 = 0,5y, h2 =0,5(h + y). Таким образом, целевая функция принимает вид
E = – 2mg (y + h) → min. (2.4)
Теперь необходимо выразить y через h. Для этого рассмотрим
прямоугольный треугольник BCD (рис. 2.10) и заметим, что
y = h – BD = h – CB cos(DBC).
Длина каждого звена по условию равна единице, следовательно:
y = h – cos(DBC).
Угол DBC равен сумме двух углов: DBA и ABC. Согласно формуле
для косинуса суммы углов:
cos(DBC) = cos(DBA) cos(ABC) – sin(DBA) sin(ABC).
39
Из прямоугольных треугольников BFA и BEC находим
=
cos(DBA)
h
=
, cos( ABC)
h2 + 1
h2 + 1
,
2
2
 h2 + 1 
1
3 − h2
 =
sin(DBA) =, sin( ABC) =
.
CE =
1−


2
2
h2 + 1


Таким образом, получаем
y=
h
3 − h2
+
.
2 2 1 + h2
Подставим найденное выражение в целевую функцию (2.4):
 3h
3 − h2 
E=
−2mg 
+
→ min.
(2.5)
 2 2 1 + h2 


Заметим, что положительный множитель 2mg на решение не
влияет. Таким образом, задачу поиска минимума функции (2.5)
можно рассматривать как задачу поиска точки максимума функции:
3h
3 − h2
J(h) =
+
→ max.
2 2 1 + h2
(2.6)
Математическая формулировка задачи окончена. Приступим
к ее численному решению методом дихотомии. Для этого на начальном этапе необходимо выбрать интервал для поиска максимума. Из
(2.6) видно, что область допустимых значений h ≤ 3. Зададим интервал поиска: [0; 3 ] и точность ε = 0,1.
Разделим интервал [0; 3 ] на четыре равные части и вычислим
3 3 3 3
, 3 ]. Точка в цензначения функции в пяти точках: [0, , ,
4 2
4
3
h0
≈ 0,87 является нулевым приближением.
тре интервала =
2
Длина интервала равна 1,73.
>> syms h;
>> J = 3*h/2 + sqrt(3-h^2)/sqrt(1 + h^2);
>> h1 = sqrt(3)*[0,1/4,1/2,3/4,1];
>> J1 = subs(J,h1)
40
J1 = 1.7321 2.1885 2.4329 2.6474 2.5981
Максимальным является четвертое значение функции, следовательно, новый интервал поиска – это правая половина исходно3
; 3]. Длина нового интервала поиска равна 0,9;
го интервала: [
2
3 3
=
h1
≈ 1,30.
4
Вновь разделим интервал на четыре равные части. Получим точки
[
3 5 3 3 3 7 3
,
,
,
, 3 ].
2
8
4
8
Значения в середине интервала и на его границах нам уже известны, поэтому вычислим функцию только в двух новых точках.
>>J2 = [J1(3),subs(J,5*sqrt(3)/8),J1(4),subs(J,7*sqrt(3)/8),J1(5)]
J2 = 2.4329 2.5413 2.6474 2.7351 2.5981
Максимальным снова является четвертое значение, следователь3 3
7 3
; 3], его длина равна 0,4;=
h2
≈ 1,52.
но, новый интервал [
4
8
Новые точки:
[
3 3 13 3 7 3 15 3
,
,
,
, 3 ].
4
16
8
16
Вычислим значения в новых точках.
>>J3 = [J2(3),subs(J,13*sqrt(3)/16),J2(4),subs(J,15*sqrt(3)/16),J2(5)]
J3 = 2.6474 2.6958 2.7351 2.7518 2.5981
Новый интервал [
7 3
;
8
3], его длина равна 0,2;
h3
=
15 3
≈ 1,62.
16
Новые точки:
[
7 3 29 3 15 3 31 3
,
,
,
, 3 ].
8
32
16
32
>>J4 = [J3(3),subs(J,29*sqrt(3)/32),J3(4),subs(J,31*sqrt(3)/32),J3(5)]
J4 = 2.73512.74792.75182.73682.5981
Максимум, как и на предыдущем шаге, достигается в точке
15 3
29 3 31 3
h4
;
], его
=
≈ 1,62, следовательно, новый интервал [
16
32
32
41
3,2
1
3
2
2,8
4
5
2,6
2,4
2,2
2
1,8
1,6
0
0,2 0,4 0,6 0,8
1
1,2 1,4 1,6 1,8
Рис. 2.11. Итерационный поиск максимума методом дихотомии
длина равна 0,1. Таким образом, требуемая точность ε = 0,1 достиг15 3
≈ 1,62 является точкой максимума.
нута=
и h
16
Графическая иллюстрация выполненных итераций приведена
на рис. 2.11.
Из графика функции видно, что максимум действительно расположен в окрестности точки 1,62. Его величина составляет J ≈ 2,75.
Метод Фибоначчи
Рассмотрим ту же задачу поиска минимума унимодальной целевой функции на отрезке:
f (x) → min x ∈ [a, b], f (x) – унимодальна на [a, b].
Выше был описан метод дихотомии, позволяющий удваивать
точность за каждые два вычисления целевой функции. Метод Фибоначчи использует более эффективную схему исключения интервалов, он позволяет максимально точно найти положение экстремума, когда количество шагов задано заранее.
Чтобы воспользоваться свойством унимодальной функции, позволяющим исключать интервалы, необходимо вычислить функцию как минимум в двух точках внутри интервала. Предположим, что одна такая точка задана: c ∈ [a, b] (рис. 2.12). Вторая
точка может быть получена из соображений симметрии. Нестрого
это можно обосновать следующим образом: из теории информации
известно, что сообщение с двумя состояниями несет наибольшую
информацию, если оба исхода равновероятны (в этом случае энтро42
пия максимальна). Чтобы получить
f(x)
максимальную иформацию о положении экстремума, необходимо обеспечить равновероятный результат
сравнения функции в двух точках:
x
c
a
b
f (x) <> f (c). Это осуществимо, если
точка x симметрична точке c отноРис. 2.12. Метод Фибоначчи
сительно центра отрезка. После того
как точка x выбрана, можно исключить часть отрезка и применить алгоритм к оставшейся части. При
этом одна точка в центре отрезка будет уже известна.
Этот подход можно сформулировать в виде следующего алгоритма:
Шаг 1. Задается целевая функция f(x), интервал поиска [a, b],
число шагов n.
Шаг 2. Точка c выбирается так, чтобы делить отрезок [a, b] в отношении Fn : Fn +1, где Fn – n-е число Фибоначчи:
c =a + (b − a)
Fn
.
Fn +1
Шаг 3. Вычисляется положение точки x, симметричной c относительно центра отрезка: x = b + a–c.
Шаг 4. Сравниваются значения целевой функции в точках x и c:
4.1. Если x<c:
– если f (x) < f (c) : переход к новому отрезку поиска: [a, c];
– иначе: переход к [x, b].
4.2. Если x>c:
– если f (x) < f (c) : переход к новому отрезку поиска: [c, b];
– иначе: переход к [a, x].
Шаг 5. Если длина отрезка стала меньше необходимой точности,
алгоритм завершается, иначе – возврат на шаг 3.
Например, на рис. 2.12 f (x) < f (c), поэтому новым интервалом поиска становится интервал [a, c]. Точка x в этом случае оказывается
внутри нового интервала и делит его в золотом отношении, то есть
становится новой точкой c. Несколько последовательных шагов алгоритма проиллюстрированы на рис. 2.13.
Особенностью метода Фибоначчи является возможность экономить дорогостоящие вычисления целевой функции f(x). Действительно, начиная со второго шага, значение функции в точке c из43
f(x)
a1
x1
a2
c2
c1
x2
c3
a3
x3
a4
x4 c 4
a5
c5 x5 b5
b1
b2
b3
b4
a6 c6x6 b6
Рис. 2.13. Исключение интервалов методом Фибоначчи
вестно по результатам предыдущего шага, поэтому остается вычислить только значение в отраженной точке x. При этом, благодаря
свойствам чисел Фибоначчи, на каждом шаге точка c будет делить
отрезок в отношении Fn −i +1 : Fn −i +2 , где i – номер шага, Fn – n-e число Фибоначчи.
Метод золотого сечения
Метод Фибоначчи оптимален, если число шагов заранее известно. Рассмотрим ту же задачу, в которой число шагов заранее не
определено.
f (x) → min; x ∈ [a, b], f(x) – унимодальна на [a, b]
В методе Фибоначчи на каждом шаге отрезок делится в разных
отношениях. Однако при росте числа шагов отношение, в котором
1+ 5
, назыделится отрезок точкой c, стремится к константе ϕ =
2
ваемой также константой золотого сечения:
F
lim i +1 = ϕ.
i →∞ Fi
Если рассмотреть предельный случай метода Фибоначчи при
числе шагов n → ∞, можно получить более простой и практически
столь же эффективный метод, называющийся методом золотого
сечения. Алгоритм этого метода полностью совпадает с алгоритмом
метода Фибоначчи, за исключением выбора начального положения
точки c. Точка выбирается так, чтобы делить отрезок в отношении ϕ.
При этом свойства золотого сечения гарантируют, что на следую44
щем шаге новая точка в центре отрезка также будет делить его в том
же самом отношении.
Таким образом, положение центральных точек вычисляется
в этом методе проще, не требуется предварительный расчет чисел
Фибоначчи. При этом, поскольку отношение двух чисел Фибоначчи
весьма быстро стремится к ϕ, данный метод заметно отличается от
метода Фибоначчи только на небольшом числе шагов, порядка 5–10.
Алгоритм для метода золотого сечения содержит следующие
шаги:
1. Задается целевая функция f(x), интервал поиска [a, b].
2. Точка c выбирается так, чтобы делить отрезок [a, b] в золотом
отношении: c = (1 − 1/ ϕ ) a + b / ϕ.
3. Вычисляется положение точки x, симметричной c относительно центра отрезка: x = b + a − c.
4. Сравниваются значения целевой функции в точках x и c:
4.1. Если x < c:
– если f (x) < f (c) : переход к новому отрезку поиска: [a, c];
– иначе: переход к [x, b].
4.2. Если x > c:
– если f (x) < f (c) : переход к новому отрезку поиска: [c, b];
– иначе: переход к [a, x].
5. Если длина отрезка стала меньше необходимой точности, алгоритм завершается, иначе – возврат на шаг 3.
Аппроксимационные методы
Использование аппроксимаций (приближений) целевой функции – принципиально иной подход к решению задачи оптимизации
по сравнению с методами исключения интервалов.
Идея аппроксимации применима не только к одномерной, но и
к многомерной оптимизации и заключается в следующем итерационном алгоритме:
1. Задать целевую функцию f(x) и начальное приближение x0.
2. Построить аппроксимирующую функцию f*(x) такую, что она
примерно равна f(x) в окрестности x0.
3. Найти экстремум x1 функции f*(x) аналитическим методом.
4. Если желаемая точность не достигнута, то вернуться на шаг 2,
используя x1 в качестве нового начального приближения. Иначе —
завершение алгоритма.
В основе этого подхода лежит идея о том, что близкие функции
имеют сходные свойства и их экстремумы расположены рядом.
45
В рамках аппроксимационного подхода могут быть описаны многие
численные методы, его применимость не ограничена методами оптимизации. Эффективность аппроксимационного метода определяется
тем, насколько близки свойства целевой функции и ее приближения.
Метод парабол
Постановка задачи:
f (x) → min; x ∈ R.
Рассмотрим простейший метод оптимизации, построенный на
основе аппроксимационного подхода.
Одной из элементарных функций, имеющих экстремум, является квадратичный трехчлен f * (x) = ax2 + bx + c. Его график представляет собой обычную параболу. Используем эту функцию для
построения метода нулевого порядка.
Будем считать, что аппроксимирующая функция f*(x) близка
к целевой функции f(x) в некоторой области, если они имеют одинаковое значение в трех точках. Так как квадратный трехчлен зависит от трех параметров, трех точек достаточно для того, чтобы однозначно провести через них параболу.
Пусть известно значение целе10
вой функции f(x) в трех точках:
8
=
y1 f=
(x1 ), y2 f=
(x2 ), y3 f (x3 ).
f*(x)
Проведем параболу через эти три
6
f(x)
точки. Для этого необходимо подо4
брать такие значения параметров
2
a, b, c, чтобы график функции f*(x)
0
проходил через них (рис. 2.14):
–2
–10
x1 x2 x3
–5
0
5
Рис. 2.14. Метод парабол
10
ax12 + bx1 + c =
y1,

 2
y2 ,
ax2 + bx2 + c =
 2
y3 .
ax3 + bx3 + c =
Относительно a, b, c это система из трех линейных уравнений
с тремя неизвестными. Решив ее, получим:
a=
b=
46
y3 (x1 − x2 ) + y2 (x3 − x1 ) + y1 (x2 − x3 )
,
y3 (x12 − x22 ) + y2 (x32 − x12 ) + y1 (x12 − x32 )
.
x32 (x1 − x2 ) + x22 (x3 − x1 ) + x12 (x2 − x3 )
x32 (x1 − x2 ) + x22 (x3 − x1 ) + x12 (x2 − x3 )
(Значение c не приведено, так как оно не важно в дальнейшем.) Найдем теперь положение экстремума аппроксимирующей функции
f*(x) – вершину параболы. Из курса алгебры известно, что она наb
ходится в точке x* = − . Подставив в эту формулу значения пара2a
метров a, b, c, найденные из системы уравнений, можно получить
окончательную формулу для новой аппроксимации:
(
)
(
)
(
)
x22 − x12 y3 + x12 − x32 y2 + x32 − x22 y1
b
x* =
.
−
=
2a ( x2 − x1 ) y3 + ( x1 − x3 ) y2 + ( x3 − x2 ) y1
Найденная новая точка может заменить одну из старых точек
x1, x2 , x3 . Как правило, заменяется та точка, которой соответствует наибольшее значение целевой функции (если ищется минимум).
Таким образом, алгоритм можно записать в виде следующих шагов:
1. Задаются целевая функция и три начальные точки x1, x2 , x3 .
2. Вычисляется новая точка x*.
3. Вычисляется f * = f (x* ).
4. Большее из трех значений f1, f2 , f3 заменяется на f*, соответствующее ему значение x заменяется на x*.
5. Проверяется условие выхода, если необходимая точность достигнута, алгоритм завершается, иначе – возврат на шаг 3.
В качестве условия завершения может использоваться, например, расстояние между крайними точками.
При практической реализации данного алгоритма может потребоваться дополнительный учет специальных случаев:
Случай 1. Все три точки находятся на одной прямой. В этом
случае коэффициент a становится равен нулю, и аппроксимирующая парабола вырождается в линию. Так как аппроксимирующая
функция в данном случае не имеет экстремума, новая точка должна
вычисляться иным образом. Например, можно отложить расстояние от наименьшей точки до дальней точки:
=
x* 2x 1 −x3 ,
где точке x1 соответствует минимальное значение целевой функции, а точке x3 – максимальное.
Случай 2. Две точки совпали. В этом случае к новой точке может
добавляться смещение, пропорциональное расстоянию между крайними точками. Коэффициент пропорциональности может быть как
фиксированным, так и случайным.
47
Другой распространенной модификацией метода парабол является ограничение величины шага. Например, если точка x* отстоит от предыдущей точки более чем на 2d, где d – расстояние между
крайними точками, то x* может искусственно смещаться. Это позволяет повысить вычислительную устойчивость метода и избежать
слишком больших хаотичных скачков за счет незначительного понижения скорости сходимости в некоторых ситуациях.
Свойства метода парабол:
– если целевая функция квадратичная (то есть аппроксимация
оказывается точной), то метод дает точный ответ за один шаг;
– для достаточно регулярных целевых функций скорость сходимости метода больше линейной, но меньше квадратичной;
– в отличие от методов деления интервалов, метод парабол в общем случае не гарантирует сходимости;
– эффективность метода зависит от того, насколько точно участок целевой функции может быть аппроксимирован параболой.
Поэтому для негладких функций скорость сходимости этого метода
может падать до линейной.
Методы первого порядка.
Поиск нуля производной.
Метод хорд
К численным методам первого порядка относятся методы оптимизации, в которых помимо самой целевой функции вычисляются
значения ее производной. С одной стороны, это позволяет увеличить
скорость сходимости за счет использования дополнительной информации о целевой функции. С другой стороны, это накладывает на
целевую функцию дополнительные ограничения. По меньшей мере
производная должна существовать.
Если информация о значениях производной целевой функции
известна, то для поиска экстремума можно воспользоваться леммой
Ферма, которая сводит задачу оптимизации к решению уравнения
f ′(x) = 0. Эта идея позволяет превратить любой метод поиска корней
в метод оптимизации, повышая порядок метода на единицу. В частности, метод хорд для поиска нуля, имеющий нулевой порядок, порождает метод оптимизации первого порядка. При этом все свойства метода решения уравнения переносятся на оптимизационный
метод.
Метод хорд для поиска нуля можно рассматривать как аппроксимационный, в котором для поиска точки пересечения кривой с осью
48
15
6
f ′( x)
f (x)
4
10
y
y
5
2
0
0
x* x1
x2
–2
–5
–6
–4
–2
0
2
4
6
–4
–6
–4
–2
0
2
4
6
Рис. 2.15. Поиск нуля производной методом хорд
ординат кривая аппроксимируется прямой линией по двум точкам
(рис. 2.15). Пересечение прямой линии с осью используется в качестве следующего приближения.
Уравнение хорды, проходящей через две точки
(x1; f ′(x1 )), (x2 ; f ′(x2 )) :
y − f ′(x1 ) f ′(x2 ) − f ′(x1 )
=
.
x − x1
x2 − x1
Отсюда несложно найти координаты точки пересечения хорды
с осью ординат:
x* =
x1f ′(x2 ) − x2f ′(x1 )
.
f ′(x2 ) − f ′(x1 )
Эта точка дает новое приближение к точке экстремума. Алгоритм метода может быть записан следующим образом:
1. Задается целевая функция f(x) и две начальные точки x1, x2.
2. Вычисляется новая точка аппроксимации:
x* =
x1f ′(x2 ) − x2f ′(x1 )
.
f ′(x2 ) − f ′(x1 )
3. Если достигнуто условие завершения, алгоритм останавливается, иначе – точка x* заменяет точку x2, и выполняется возврат на
шаг 2.
Для проверки достижения необходимой точности можно сравнивать расстояние между последними двумя шагами. Если расстояние стало меньше заданного – точность достигнута.
49
Свойства метода хорд:
– данный метод оптимизации не вычисляет значения целевой
функции, он опирается исключительно на значения производной;
– метод не различает максимумы, минимумы и точки перегиба;
– скорость сходимости метода линейная;
– в общем случае метод не гарантирует сходимости. Тем не менее
для определенного класса функций сходимость может быть доказана.
Методы второго порядка. Метод Ньютона
Постановка задачи:
f (x) → min; x ∈ R,
где функция f(x) имеет непрерывную вторую производную.
Метод имеет второй порядок, то есть в нем помимо значений целевой функции f(x) используются значения ее первой и второй производных: f ′(x), f ′′(x).
С одной стороны, метод Ньютона можно рассматривать как аппроксимационный, основанный на приближении целевой функции
параболой, но не по трем точкам, как в методе парабол, а по одной
точке и двум производным целевой функции в ней (рис. 2.16). С другой стороны, как метод поиска нуля
4
производной, основанный на методе
3
2
Ньютона (первого порядка) для реax +bx +c
2
f(x)
шения уравнений.
1
Рассмотрим построение метода
y 0
Ньютона по аппроксимационной
–1
схеме. В качестве аппроксимирую–2
–3
щей функции воспользуемся ква–4
дратным трехчленом:
–6 –4 –2
0
2
4
6
x
Рис. 2.16. Метод Ньютона.
Целевая функция
и ее аппроксимация в точке
f * (x) = ax2 + bx + c.
Для построения аппроксимации
в некоторой точке будем подбирать
такие значения свободных параметров a, b, c, чтобы в этой точке совпадали значения, первые и вторые
производные целевой и аппроксимирующей функций.
f (x0 ) = ax02 + bx0 + c,

(x0 ) 2ax0 + b,
f ′=
f ′′(x ) = 2a.
0

50
Из этой системы несложно найти значения a, b:
1
a = f ′′(x0 ),
2
=
b f ′(x0 ) − x0 f ′′(x0 ).
Подставив полученные значения в формулу вершины параболы,
получим формулу перехода к следующей аппроксимации:
f ′′(x0 )
b
−
=
.
x1 =
x0 −
2a
f ′(x0 )
Это ключевая формула, которая описывает одну итерацию метода Ньютона.
С учетом этой формулы алгоритм метода можно записать следующим образом:
1. Задается целевая функция f(x) и начальная точка x0.
2. В текущей точке вычисляются первая и вторая производная
функции.
3. Вычисляется следующая точка:
xi +=
1 xi − f ′′(xi ) / f ′(xi ).
4. Проверяется условие завершения. Если оно выполняется, алгоритм завершается, иначе – возврат на шаг 2.
Выбор условия выхода может зависеть от задачи, типичное условие выхода: расстояние между соседними точками стало меньше
заданной точности.
При практической реализации метода может потребоваться специальный учет ситуаций, когда вторая производная близка к нулю.
В этих случаях может применяться ограничение величины шага:
если следующая точка отстоит от предыдущей слишком далеко.
Метод Ньютона обладает следующими свойствами:
– скорость сходимости метода квадратичная. Иначе говоря,
если метод сходится, то каждая новая итерация удваивает количество точных десятичных знаков ответа;
– если целевая функция квадратичная, метод дает точный ответ
за один шаг;
– в общем случае метод не гарантирует сходимости. Тем не менее для определенного класса функций сходимость может быть доказана;
51
– поскольку данный метод можно интерпретировать как метод
поиска нуля производной, он обладает всеми свойствами данных
методов: не различает максимумы, минимумы и точки перегиба,
использует только значения производных целевой функции, сама
целевая функция f(x) не вычисляется;
– поскольку метод можно рассматривать как аппроксимационный, он эффективен для тех целевых функций, которые в окрестности экстремума близки к квадратичной. Например, для биквадратной функции f(x) = x4 метод будет значительно менее эффективен.
Недостатки метода:
– функция должна быть гладкой;
– требуется вычислять первую и вторую производные целевой
коридор функции;
– в общем случае метод может не сойтись к экстремуму, даже
если он существует.
Достоинством метода является высокая скорость сходимости.
2.2.3. Численные методы.
Многомерный случай
Многопараметрическая оптимизационная задача это такая задача, в которой искомая величина описывается набором из нескольких действительных чисел, то есть вектором:
f (x) → min, x ∈ R n .
Эквивалентно можно говорить, что целевая функция является
функцией n аргументов:
f (x1, x2 , ..., xn ) → min, x1, x2 , ..., xn ∈ R.
Задача оптимизации, в которой экстремум целевой функции
ищется во всем n-мерном пространстве, называется задачей безусловной оптимизации.
На практике часто встречаются задачи, когда на переменные наложены дополнительные ограничения (условия) вида:
gi (=
x) 0=
, i 1, ...,m,
hj (x) ≤ 0, j =
1, ..., k.
В первом случае говорят об ограничениях типа равенств, во втором – об ограничениях типа неравенств.
52
Прямые методы
В прямых методах минимизации для определения направления
спуска не требуется вычислять производные целевой функции. Направление минимизации в данном случае полностью определяется
последовательными вычислениями значений функции. Следует
отметить, что при решении задач безусловной минимизации методы первого и второго порядков обладают, как правило, более высокой скоростью сходимости, чем методы нулевого порядка. Однако
на практике вычисление первых и вторых производных функции
большого количества переменных весьма трудоемко. В ряде случаев они не могут быть получены в виде аналитических функций.
Определение производных с помощью различных численных методов осуществляется с ошибками, которые могут ограничить применение таких методов. Кроме того, на практике встречаются задачи, решение которых возможно лишь с помощью методов нулевого
порядка, например задачи минимизации функций с разрывными
первыми производными. Критерий оптимальности может быть задан не в явном виде, а системой уравнений. В этом случае аналитическое или численное определение производных становится очень
сложным, а иногда невозможным. Для решения таких задач оптимизации могут быть применены методы нулевого порядка. Рассмотрим некоторые из них.
Метод покоординатного спуска
Решаемая задача:
f (x1, x2 , ..., xn ) → min, x1, x2 , ..., xn ∈ R.
Простейшим способом многомерной оптимизации является
метод покоординатного спуска, иначе называемый методом Гаусса – Зейделя. Этот метод сводит задачу поиска наименьшего
значения функции нескольких переменных к многократному решению одномерных задач оптимизации по каждой из координат.
Несколько шагов метода для двумерной задачи оптимизации показывает рис. 2.17. На нем изображены линии уровня некоторой
функции двух переменных f(x1, x2). Вдоль этих линий функция
сохраняет постоянное значение, равное 1, 3, 5, 7, 9 соответственно. Показана траектория поиска ее наименьшего значения, которое достигается в точке O, с помощью метода покоординатного
спуска.
53
9
7
5
3
1
М4
М
М0
2
0
М3
М1
Рис. 2.17. Метод покоординатного спуска
Алгоритм метода содержит следующие шаги.
1. Входные данные: задаются целевая функция и начальная точка.
2. Для всех i от 1 до n (для всех координат):
– фиксируются значения всех переменных, кроме xi, и рассматривается задача одномерной оптимизации по этой координате;
– одномерная задача решается любым методом одномерной оптимизации (как правило, используется метод нулевого порядка), найденное решение замещает xi.
3. Если выполнен критерий останова, то возвращаем текущее
значение x = (x1, x2 , ..., xn ), иначе – возврат на шаг 2.
Достоинства алгоритма:
– простота программной реализации;
– низкие требования к памяти (необходимо хранить только текущий вектор);
– возможность выполнять оптимизацию целевых функций, не
имеющих производных, используя в качестве одномерного метода
метод нулевого порядка.
Недостатком алгоритма является низкая эффективность, если
рельеф целевой функции имеет «овражную» форму, то есть экстремум находится на дне узкого длинного «оврага» (рис. 2.18). В этом
случае для достижения экстремума может потребоваться непропорционально большее число шагов; он может остановиться в точке,
которая не является экстремумом.
54
3
2
1
0
–1
–2
–2
–1
0
1
2
3
Рис. 2.18. Метод покоординатного спуска
для овражных целевых функций
Пример 2.3. Задача Штейнера.
у
В (1, 2)
Требуется связать три деревни
A, B и C дорогами, затратив минимум средств (рис. 2.19). Для этого
O (x, y)
нужно найти точку О такую, что
С (3, 0)
сумма расстояний от нее до дерех
А (0, 0)
вень будет минимальна. Предполагается, что деревни расположены
Рис. 2.19. Задача Штейнера
в точках плоскости с координатами А(0, 0), В(1, 2), С(3, 0).
Ответ необходимо дать с точностью ε = 0,05.
Решение. Запишем целевую функцию:
f (x, y) = OA + OB + OC =
=
x2 + y2 + (x − 1)2 + (y − 2)2 + (3 − x)2 + y2 → min.
Для численного решения этой задачи воспользуемся методом покоординатного спуска.
Определим интервалы поиска экстремума по каждой из координат. Из рисунка видно, что x∈[0, 3], y∈[0, 2].
Шаг 1. Зафиксируем координату y точки О, приняв, например,
y = 1, и проведем одномерную оптимизацию по координате x методом Фибоначчи:
f (x, 1=
)
x2 + 1 + (x − 1)2 + 1 + (3 − x)2 + 1 → min.
55
Определим значение j в соответствии с заданной точностью.
89
Fn ≥ 60, следовательно, Fn = 89, ϕ = , и число необходимых для до55
стижения точности итераций равно n–1 = 9.
Вычислим точки c и d:
d=
a+
3(89 − 55)
b − a 3 ⋅ 55
≈ 1,146.
= ≈ 1,854, c = b − d =
89
ϕ
89
Вычислим значения функции f(x, 1) в точках a, b, c, d и сравним
их:
f(0,1) = 5,576, f(1,146,1) = 4,638, f(1,854,1) = 4,942, f(3,1) = 6,398.
Наименьшее значение получилось в точке c = 1,146, следовательно, новый интервал поиска: [0; 1,854].
Результаты выполнения этой и последующих итераций метода
Фибоначчи приведены в табл. 2.1.
Минимум функции f(x, 1) достигается при x = 1,1461. Для этого
требуется выполнить 9 итераций метода Фибоначчи и вычислить
значение функции f(x, 1) в 12 точках.
Таблица 2.1
n
a, f(a)
c, f(c)
d, f(d)
b, f(b)
N
1
0
5,576
0
5,5765
0,7079
4,7678
0,7079
4,7678
0,9775
4,6549
0,9775
4,6549
1,0787
4,6400
1,0787
4,6400
1,1124
4,6382
1,146
4,638
0,7079
4,7678
1,1461
4,6381
0,9775
4,6549
1,1461
4,6381
1,0787
4,6400
1,1461
4,6381
1,1124
4,6382
1,1461
4,6381
1,854
4,942
1,1461
4,6381
1,4157
4,6897
1,1461
4,6381
1,2472
4,6467
1,1461
4,6381
1,1798
4,6394
1,1461
4,6381
1,1461
4,6381
3
6,398
1,8539
4,9424
1,8539
4,9424
1,4157
4,6897
1,4157
4,6897
1,2472
4,6467
1,2472
4,6467
1,1798
4,6394
1,1798
4,6394
4
2
3
4
5
6
7
8
9
56
1
1
1
1
1
1
1
1
Графическая
иллюстрация
выполненных итераций приведена на рис. 2.20.
Построение интервалов произведено в MATLAB с помощью
следующей команды:
rectangle(‘Position′,[a,4.62,b-a,0.2*10/
n],′LineStyle′,′--′).
Шаг 2. Зафиксируем координату x в найденной точке
x = 1,1461 и проведем одномерную оптимизацию по координате
y методом Фибоначчи:
f (1,1461
=
, y)
6,4
6,2
6
5,8
f(x,1) 5,6
5,4
5,2
5
4,8
4,6
0
0,5 1
1,5 2
2,5 3 x
Рис. 2.20. Итерационный поиск
минимума методом Фибоначчи
1,14612 + y2 + (1,1461 − 1)2 + (y − 2)2 +
+ (3 − 1,1461)2 + y2 → min.
Определим значение j в соответствии с заданной точностью.
55
Fn ≥ 40, следовательно, Fn = 55, ϕ = , и число необходимых для до34
стижения точности итераций равно n–1 = 8.
Результаты выполнения итераций метода Фибоначчи приведены
в табл. 2.2.
Таблица 2.2
n
a, f(a)
c, f(c)
d, f(d)
b, f(b)
N
1
0
5,0053
0
5,5765
0,4727
4,6872
0,4727
4,6872
0,6545
4,6393
0,7636
4,6272
0,7636
4,6272
0,8000
4,6257
0,7636
4,6272
0,4727
4,6872
0,7636
4,6272
0,6545
4,6393
0,7636
4,6272
0,8364
4,6254
0,8000
4,6257
0,8364
4,6254
1,2364
4,6917
0,7636
4,6272
0,9455
4,6314
0,7636
4,6272
0,8364
4,6254
0,8727
4,6263
0,8364
4,6254
0,8364
4,6254
2
5,1783
1,2364
4,6917
1,2364
4,6917
0,9455
4,6314
0,9455
4,6314
0,9455
4,6314
0,8727
4,6263
0,8727
4,6263
4
2
3
4
5
6
7
8
1
1
1
1
1
1
1
57
2
1,8
1,6
1,4
1,2
y 1
0,8
0,6
0,4
0,2
0
1,2
1,1
1
y 0,9
0,8
0,7
0
0,5
1
1,5
x
2
2,5
3
0,6
0,7 0,8 0,9 1
1,1 1,2 1,3 1,4 1,5
x
Рис. 2.21. Метод покоординатного спуска
Минимум функции f(1,1461, y) достигается при y = 0,8364. Для
этого потребовалось выполнить 8 итераций метода Фибоначчи и вычислить значение функции в 11 точках.
Шаг 3. Зафиксируем координату y в найденной точке y = 0,8364 и
снова проведем одномерную оптимизацию по координате x методом
Фибоначчи.
В результате вычислений получим, что минимум функции
f(x, 0,8364) достигается при x = 1,1124. Для этого потребовалось выполнить 9 итераций метода Фибоначчи и вычислить значение функции в 12 точках.
Шаг 4. Зафиксируем координату x в найденной точке x = 1,1124
и проведем одномерную оптимизацию по координате y методом Фибоначчи.
В результате вычислений получим, что минимум функции
f(1,1124, y) достигается при y = 0,8364. Для этого потребовалось выполнить 8 итераций метода Фибоначчи и вычислить значение функции в 11 точках.
Так как мы получили то же зна2,5
B
чение
y, что и на шаге 2, покоорди2
натный спуск завершен и найдена
1,5
точка минимума (1,1124; 0,8364).
Графическая иллюстрация мето1
O
да покоординатного спуска приведе0,5
на на рис. 2.21, где изображены лиC
0
A0 0,5 1 1,5 2 2,5 3 3,5 нии уровня функции f(x, y) и точки,
полученные на каждом шаге метода.
Ответ: дороги должны соедиРис. 2.22. Решение задачи
няться
в точке О с координатами
Штейнера
58
(1,1124; 0,8364). Для получения ответа потребовалось выполнить 36
шагов метода Фибоначчи и вычислить функцию f(x, y) в 46 точках.
Полученное решение изображено на рис. 2.22.
Дороги в полученной точке О пересекаются под углами 120°, такая точка называется точкой Торричелли треугольника ABC.
Метод Хука – Дживса
Этот метод разработан в 1961 году, но востребован до сих пор. Он
состоит из последовательности шагов исследующего поиска вокруг
базисной точки, за которой в случае успеха следует поиск по образцу (шаблону).
Решаемая задача:
f (x1, x2 , ..., xn ) → min, x1, x2 , ..., xn ∈ R.
В данном методе выбирается некоторая начальная точка x0.
Изменяя компоненты вектора x0, обследуют окрестность этой точки, в результате чего находят направление, в котором происходит
уменьшение целевой функции f(x). В выбранном направлении осуществляют спуск до тех пор, пока значение функции уменьшается. После того как в данном направлении не удается найти точку
с меньшим значением функции, уменьшают величину шага спуска.
Если последовательные дробления шага не приводят к уменьшению
функции, от выбранного направления спуска отказываются и осуществляют новое обследование окрестности и т. д.
Алгоритм Хука – Дживса содержит следующие шаги.
1. Исходные данные: задаются координаты начальной точки x0,
вектор изменения координат Dх в процессе обследования окрестности, наименьшее допустимое значение ε компонент вектора Dх.
2. Этап исследования:
2.1. Взяв x0 в качестве базисной точки xВ, вычисляют значение
f(xВ).
2.2. Поочередно изменяют каждую координату xВi, i = 1, ...,n
базисной точки xВ на величину Dхi для i = 1, ...,n. При этом вычисляют значения f(x[k]) и сравнивают их со значением f(xВ). Если
f(x[k]) < f(xВ), то соответствующая координата xi приобретает новое значение. В противном случае значение этой координаты остается неизменным. Если после изменения последней координаты
f(x[k]) < f(xВ), то переходят к п. 3. В противном случае – к п. 2.3.
2.3. Полагают, что х[k] является новой базисной точкой xВ, и вычисляют значение f(xВ).
59
2500
2000
1500
1000
500
3,0
2,5
2,0
1,5
1,0
y
0,5
0,0
–0,5
2,0
1,0 1,5
0 0,5x
–0,5
–1,0
–1,5
Рис. 2.23. График функции Розенброка
3. Этап поиска по шаблону:
3.1. Осуществляют спуск из точки х[k] >хi[k + 1] = 2хi[k] – xВ, i = 1,
..., n, где xВ – координаты предыдущей базисной точки. Вычисляют
значение f(x[k + 1]).
3.2. Как и в п. 2.2, циклически изменяют каждую координату
точки х[k + 1], осуществляя сравнение соответствующих значений
функции f(х) со значением f(х[k + 1]), полученным в п. 3.1. После изменения последней координаты сравнивают соответствующее значение функции f(x[k]) со значением f(xВ), полученным в п. 3.1. Если
f(x[k]) < f(xВ), то переходят к п. 3.1, в противном случае – к п. 2.2.
При этом в качестве базисной используют последнюю из полученных базисных точек.
3.3. Сравнивают значения Dх и ε. Если Dх < ε, то вычисления
прекращаются. В противном случае уменьшают значения Dх и переходят к п. 2.2.
Достоинства метода:
– простота его программной реализации;
– возможность его легко модифицировать, чтобы учитывать
ограничения на отдельные переменные и на область поиска.
Недостатоком метода является возможная неспособность в случае овражных целевых функций обеспечить продвижение к точке
минимума. Типичным примером овражной функции является функция Розенброка (рис. 2.23). Градиентный метод «прыгает» с одного
склона «оврага» на другой и обратно, иногда почти не двигаясь в нужном направлении, что существенно замедляет сходимость.
60
Метод Нелдера – Мида
(поиск по деформируемому многограннику)
Решаемая задача:
f (x1, x2 , ..., xn ) → min, x1, x2 , ..., xn ∈ R.
Основным недостатком метода покоординатного спуска является
то, что направления поиска в нем строго фиксированны: поиск ведется только вдоль осей координат. Как следствие, метод не может
адаптироваться к особенностям рельефа целевой функции.
Идея метода Нелдера – Мида состоит в сравнении значений
функции в вершинах n-мерного симплекса (в трехмерном случае –
тетраэдра) и перемещении его в направлении оптимальной точки
с помощью итерационной процедуры. Характеризуется как надежный и эффективный метод прямого поиска при n ≤ 6.
Метод вращающихся координат (Розенброка)
Решаемая задача:
f (x1, x2 , ..., xn ) → min, x1, x2 , ..., xn ∈ R.
Метод Розенброка – еще одна попытка решить задачу адаптации
направления поиска к особенностям поведения целевой функции.
Один шаг этого метода совпадает с одним шагом в методе покоординатного спуска, за исключением того, что на каждом шаге оси координат, вдоль которых ведется поиск, поворачиваются так, чтобы
первая ось совпадала по направлению с предыдущим шагом. Пример того, как могут выглядеть первые 4 шага алгоритма, показан
на рис. 2.24.
3
2
e<1 1>
Шаг 1
e<2 1>
1
<4>
e1
Шаг 4
0
<4>
e2
< 3>
e1
Шаг 3
<3>
–1
Шаг 2
–2
–2
<2>
e1
–1
<2>
e2
0
1
2
3
e2
Рис. 2.24. Оптимизация методом Розенброка
61
Здесь (e1<i > , e2<i > ) – направления осей координат на i-м шаге, тонкими сплошными линиями показан покоординатный спуск, пунктирные отрезки – суммарное смещение на текущем шаге. Хорошо
видно, как первая ось (вектор e1<i > ) ориентируется вдоль «оврага»
на рельефе целевой функции.
Алгоритм метода может быть представлен следующим образом.
1. Задаются начальная точка x0 и начальное положение осей
e1<0> , ..., en<0> . Обычно в качестве начального положения выбираются орты осей координат:
=
e1<0> (1=
, 0, ..., 0), e2<0> (0, 1, 0,=
..., 0), ... , en<0> (0, 0, ..., 1).
2. Выполняется 1 шаг покоординатного спуска вдоль осей
e1<0> , ..., en<0> из текущей точки xi в новую точку xi+1.
3. Поворот осей:
3.1. Ось e1<i > располагается вдоль вектора
Dxi = xi +1 – xi : e1<i +1> = Dxi / | Dxi | .
3.2. Остальные оси поворачиваются таким образом, чтобы сохранить взаимную перпендикулярность и угол поворота был бы минимальным. Математически это описывается применением алгоритма
ортогонализации Грама – Шмидта к набору векторов e1<0> , ..., en<0> .
Методы первого порядка. Метод градиентного спуска
Данный метод также называется методом наискорейшего спуска. Он опирается на свойство градиента: в направлении вектора
градиента функция возрастает быстрее всего. Тем самым движение
в противоположном градиенту направлении обеспечивает наискорейшее убывание.
Алгоритм метода может быть представлен следующим образом:
1. Задается целевая функция f(x), начальная точка x0.
2. В текущей точке вычисляется градиент целевой функции
∇f (x).
3. Осуществляется шаг в направлении обратном градиенту:
xi +=
1 xi − λ∇f (x), где i – номер шага, λ>0 – величина шага. Способ
вычисления величины шага зависит от вариации метода.
4. Проверяется критерий останова; если он выполнен, то алгоритм завершается, иначе – переход на шаг 2.
Критерий останова может зависеть от конкретной задачи. Типичные критерии останова:
62
∇f (xi ) ≤ ε, f (xi ) − f (xi −1 ) ≤ ε, xi − xi −1 ≤ ε.
Величина шага λ в различных вариациях метода выбирается
различным образом. Проще всего с алгоритмической точки зрения
использовать постоянную величину шага. В этом варианте метода
величина шага определена заранее и не меняется в ходе вычисления: λ = const.
Существует теорема, дающая необходимое условие сходимости
метода с постоянным шагом.
Теорема 2.2. Пусть функция f(x) такова, что
f (x) − f (y) ≤ L x − y , тогда для величины шага 0 ≤ λ ≤ 2 / L метод сходится независимо от выбора начальной точки, где ⋅ –
некоторая векторная норма, например сумма модулей компонент вектора.
Выбор величины шага сильно влияет на сходимость метода. Малая величина шага приводит к малой скорости сходимости, но делает вычислительный процесс более устойчивым. Увеличение шага до
некоторых пределов увеличивает скорость сходимости, однако если
шаг слишком велик, то скорость сходимости может уменьшиться
вплоть до полной потери сходимости.
К преимуществам градиентных методов относится простота
программной реализации, к недостаткам – низкая эффективность
в случае овражных целевых функций.
Методы второго порядка. Метод Ньютона (многомерный)
Решаемая задача:
f (x1, x2 , ..., xn ) → min, x1, x2 , ..., xn ∈ R.
Так же как в одномерном случае, данный метод можно интерпретировать по-разному. Рассмотрим описание метода как аппроксимационного, в котором в качестве аппроксимирующей функции
используется полином второго порядка (сумма квадратичной формы, линейной формы и константы). Как и в одномерном случае,
в качестве критерия аппроксимации потребуем равенство первых и
вторых производных в текущей точке. Пусть аппроксимирующая
функция имеет вид
f * (x) =
c + bT x + xT Ax,
где А – симметричная матрица; b – вектор-столбец; с – скаляр.
63
Первые производные аппроксимирующей функции (ее градиент)
равны:
∇f * (x) =
b + 2Ax. (2.7)
Вторые производные аппроксимирующей функции образуют
квадратную симметричную матрицу, называемую гессианом, и равны:
2


 ∂

Н = 
f *  = 2A.
∂
x
∂
x
 i j 


Приравняв значения соответствующих производных целевой и
аппроксимирующей функций, получим систему уравнений для поиска A и b:
∇f ,
b + 2Ax =

2A = H,
где H – матрица вторых производных целевой функции (гессиан).
Решив эту систему, получим конкретные значения параметров:
A =H / 2, b =∇f − Hx. Подставив эти значения в общий вид аппроксимирующей функции, можно построить аппроксимацию в явном виде:
1
T
f ∗=
(x) f (x0 ) + ( ∇f (x0 ) − Hx0 ) x + xT Hx.
2
Найдем теперь экстремум f*(x). Из необходимого условия экстре1
0 и формулы (2.7) следует: xmin = − A −1b, что при
мума ∇f * (x) =
2
подстановке найденных ранее значений A и b окончательно дает
формулу итерации многомерного метода Ньютона:
xk+1 =xk − H−1∇f (xk ). (2.8)
Алгоритм метода Ньютона сводится к последовательному уточнению положения экстремума по формуле (2.8), до тех пор пока не
будет достигнута необходимая точность.
Метод обладает высокой скоростью сходимости. Если функция
в окрестности экстремума гладкая, скорость сходимости квадратичная, то есть каждая новая итерация удваивает количество точных
знаков в ответе. Если же целевая функция является квадратичной,
то метод достигает точного ответа за один шаг, так как в этом случае
аппроксимация совпадает с целевой функцией.
64
Квазиньютоновские методы
Метод Ньютона является весьма эффективным за счет быстрой
сверхлинейной сходимости и аффинной инвариантности (аффинная
инвариантность: отсутствие чувствительности к линейной замене
переменных, то есть минимизация функции f1(x) = f(Ax), где A – невырожденная матрица замены переменных, потребует столько же
шагов, как и функции f(x)).
К числу главных недостатков, ограничивающих практическое
применение метода Ньютона, относится большая вычислительная
сложность, возникающая из-за необходимости вычислять матрицу
вторых производных H в формуле (2.8). Это симметричная матрица,
содержащая n(n + 1) независимых значений, где n – размерность задачи. Кроме того, при больших значениях n существенной может
стать сложность обращения матрицы H (а точнее, решение системы
линейных уравнений H−1∇f (x)).
Поэтому разумной представляется идея найти компромисс между вычислительной сложностью и эффективностью метода, отказавшись от точного вычисления матрицы вторых производных H.
Это приведет к следующей итерационной формуле:
xk+1 =
xk − Hk −1∇f (xk ),
где Hk – некоторая аппроксимация матрицы H на шаге k, построенная без вычисления истинного значения вторых производных. Различные способы построения приближенной матрицы порождают
различные методы оптимизации первого порядка, которые все вместе образуют группу квазиньютоновских методов. В некоторых методах аппроксимируется не сама матрица H, а обратная ей матрица
H–1, что позволяет еще больше повысить производительность.
Метод наискорейшего (градиентного) спуска, который был описан ранее как самостоятельный метод, можно рассматривать как
крайний случай квазиньютоновского метода. Действительно, пусть
аппроксимированная матрица Hk просто равна единичной. Тогда
формула уточнения решения примет вид
−1
xk+=
) xk − ∇f (xk ),
1 xk − E ∇f (xk=
как в обычном градиентном спуске. Таким образом, его можно считать квазиньютоновским методом, в котором информация о вторых
производных полностью игнорируется. Это, в частности, говорит о
том, что метод градиентного спуска теряет эффективность, если матрица вторых производных сильно отличается от единичной.
65
Практически используемые квазиньютоновские методы опираются на более сложные способы аппроксимации, позволяющие
в некоторых случаях добиться скорости сходимости, практически
не уступающей методу Ньютона.
Все они построены по схеме уточнения гессиана, когда приближенная матрица вторых производных на каждом шаге не вычисляется заново, а образуется в результате уточнения значения гессиана, полученного на предыдущем шаге:
=
Hn +1 F ( Hn , ∆x, ∆f, ∆∇f ),
где F – некоторая формула, связывающая уточненное значение
гессиана с его предыдущим значением, приращением функции и
ее градиента. В качестве начального приближения для H обычно
берется единичная матрица. В некоторых методах уточнению подвергается не сама матрица H, а обратная матрица. Это позволяет
увеличить производительность, избегая необходимости обращать
матрицу.
Квазиньютоновские методы оптимизации можно рассматривать
как расширения метода секущих на многомерный случай. Это расширение, однако, не является однозначным. В то время как в одномерном случае уравнение секущей позволяет однозначно найти ее
наклон (геометрическая интерпретация этого факта: через две несовпадающие точки на плоскости можно провести линию единственным образом), в многомерном случае уравнение становится
сильно недоопределенным (через две точки трехмерного пространства можно провести множество плоскостей):
∇f (xk+1 ) =
∇f (xk ) + H* (xk+1 − xk ).
Здесь H* – приближенное значение гессиана, xk и xk+1 – значения аргумента на двух соседних шагах, ∇f – градиент функции.
Несложно видеть, что это матричное уравнение, соответствующее системе из n скалярных уравнений, где n – размерность пространства. В то же время количество неизвестных параметров
в симметричной матрице H* равно (n2 + n) / 2, что превышает число уравнений, если n>1. Чтобы найти единственное решение, помимо уравнения секущей, необходимы дополнительные условия,
выбор которых соответствует тому или иному квазиньютоновскому методу.
66
Метод DFP (Дэвидона – Флетчера – Пауэлла)
Название этого метода является акронимом от имен его разработчиков: Вильяма Дэвидона, Роджера Флетчера и Майкла Пауэлла.
В данном методе уточнению подвергается не сам гессиан, а обратная
ему матрица B = H–1. Благодаря этому упрощается вычисление следующей точки, так как отсутствует необходимость умножения на
обратную матрицу.
Формула уточнения гессиана в методе DFP имеет следующий
вид:
B y yT B
s sT
Bk+1 =
Bk − kTk k k + kT k ,
yk Bk yk
yk sk
где Bk – значение обратного гессиана на шаге k, sk – величина шага
(∆x), yk = ∇f (xk + sk ) − ∇f (xk ) – приращение градиента функции.
Метод BFGS
Полное название метода – алгоритм Бройдена – Флетчера – Гольдфарба – Шанно.
Формула уточнения гессиана в методе BFGS имеет следующий
вид:
H s sT H
yk ykT
Hk+1 =
Hk − kT k k k + T
,
sk Hk sk
sk yk
где Hk – значение гессиана на шаге k, sk – величина шага ( ∆x ),
yk = ∇f (xk + sk ) − ∇f (xk ) – приращение градиента функции.
Стохастические методы оптимизации
Рассматривается задача поиска глобального экстремума функции
от нескольких переменных: f(x1, …, xn) → extr. Если известно, что на
заданном интервале поиска функция унимодальна, то, как правило, используют детерминированные методы оптимизации. В случае
функций с несколькими экстремумами для поиска глобального максимума или минимума наиболее часто применяют стохастические
методы, так как использование случайных процессов позволяет достаточно полно исследовать область определения функции.
Среди стохастических методов оптимизации наиболее известными являются методы Монте-Карло, эволюционные и бионические
алгоритмы.
Самым ярким представителем эволюционных алгоритмов является класс генетических алгоритмов.
67
Генетические алгоритмы
Генетические алгоритмы (ГА), так же как другие численные алгоритмы оптимизации, являются итерационными.
Основным объектом, над которым производятся операции в ГА,
являются особи (или иначе хромосомы) (рис. 2.25). Каждая хромосома представляет собой набор значений некоторых параметров,
которые можно менять для того, чтобы получить идеальную особь.
Например, пусть требуется собрать автомобиль, который мог бы
развивать самую высокую скорость. Пусть для достижения этой
цели имеется возможность изменять диаметр и упругость каждого
из четырех колес. В данном случае каждая хромосома будет состоять из восьми генов – четырех значений диаметров и четырех значений упругостей (на рис. 2.25 диаметр колеса обозначен диаметром
окружности, а упругость – интенсивностью цвета).
На предварительном этапе случайным образом генерируется некоторое количество хромосом. Затем производится их упорядочивание в соответствии с функцией пригодности. В нашем примере необходимо для каждой хромосомы вычислить максимальную скорость
автомобиля v.
Каждая итерация генетического алгоритма включает в себя три
этапа.
1. Скрещивание. Случайным образом выбираются две хромосомы, на их основе получают новую хромосому. В различных ГА используют разные способы скрещивания: вычисление среднего, обмен частями хромосом и др.
2. Мутация. С достаточно малой вероятностью происходит случайное изменение некоторой хромосомы.
v
Набор хромосом,
упорядоченных
по функции пригодности
+
=
Скрещивание
Отбор
→
Мутация
v
Рис. 2.25. Выбор оптимального набора колес для автомобиля
(интенсивность цвета соответствует упругости)
68
3. Отбор. Производится упорядочивание хромосом в соответствии с функцией пригодности, после чего хромосома с самым низким значением пригодности удаляется.
Работа алгоритма завершается, когда все хромосомы станут «похожи», или когда будет выполнено достаточное число итераций, или
когда будет достигнуто нужное значение функции пригодности.
Генетические алгоритмы часто применяют при решении комбинаторных задач. При этом практически для каждой задачи приходится проектировать отдельный алгоритм, правила скрещивания,
мутации и вычисления функции пригодности.
Однако многие практические задачи легко сводятся к задаче поиска минимума функции n вещественных переменных и могут быть
решены с помощью единого алгоритма. Одним из самых известных
генетических алгоритмов вещественной оптимизации является алгоритм дифференциальной эволюции (Differential Evolution (DE)).
DE-алгоритм
Пусть требуется найти точку экстремума функции n вещественных переменных f(x1, …, xn).
В качестве начальной популяции в DE выбирается случайный
набор из N точек, заданных своими координатами в виде n-мерных
векторов. Распределение начальной популяции должно выбираться
исходя из особенностей решаемой оптимизационной задачи (обычно
используется выборка из n-мерного равномерного или нормального
распределения).
На очередном шаге алгоритма производится скрещивание каждой особи X из исходной популяции со случайно выбранной особью
C, отличной от X.
Перед скрещиванием к C применяется специальный оператор
мутации:
C′ = C + F (A – B).
Здесь A и B — случайно выбранные представители популяции,
отличные от X и C. Параметр F определяет так называемую силу
мутации — амплитуду возмущений, вносимых в вектор С.
Скрещивание производится следующим образом. Задается вероятность P, с которой потомок T наследует очередной генетический
признак от родителя C′. Соответствующий признак от родителя X
наследуется с вероятностью 1 – P. В результате формируется векторпотомок T.
69
После формирования вектора-потомка T производится отбор, то
есть сравнение целевой функции для T и для его «прямого» родителя X. В новую популяцию переносится тот из векторов X и T, на
котором целевая функция достигает меньшего значения (если речь
идет о задаче минимизации).
При выборе параметров DE рекомендуется учитывать следующие правила.
1. Размер популяции N следует выбирать от 5n до 10n;
2. Для силы мутации F разумные значения выбираются из отрезка [0,4; 1,0], причем хорошим начальным значением будет 0,5,
но при быстром вырождении популяции вдали от решения следует
увеличить параметр F;
3. Вероятность мутации P изменяется от 0,0 до 1,0, причем начинать следует с относительно больших значений (0,9 или даже
1,0), чтобы проверить возможность быстрого получения решения
случайным поиском. Затем следует уменьшать значения параметра
вплоть до 0,1 или даже 0,0, когда в популяции практически не вносится изменчивости.
Тестирование алгоритмов безусловной оптимизации
Для тестирования алгоритмов оптимизации, основанных как на
методах эволюционного моделирования, так и на любых других,
следует использовать специальные тестовые функции. Ниже приведен перечень некоторых из них, указаны рекомендуемые интервалы изменения переменных и глобальные оптимальные значения.
1. Функция де Джонга:
R (x, y=
) x2 + y2 .
Интервал поиска по каждой переменной [–10; 10], глобальный
минимум при x = y = 0. Начальная точка (–10; –10).
2. Шаговая функция
R=
(x, y) fix(x) + fix(y) ,
где fix(∙) – функция, возвращающая целую часть аргумента. Интервал поиска по каждой переменной [–10; 10], глобальный минимум
при x = y = 0. Начальная точка (–10; –10).
3. Функция Экли:
R (x, y) =−20e
70
−
1
( x 2 + y2 )
5 2
1
(cos 2πx + cos 2πy)
− e2
+ e + 20.
Интервал поиска по каждой переменной [–10; 10], глобальный
минимум при x = y = 0. Начальная точка (–10; –10).
4. Функция Растригина:
R (x, y) =
20 + x2 + y2 − 10 cos(2πx) − 10 cos(2πy) .
Интервал поиска по каждой переменной [–5; 5], глобальный минимум при x = y = 0. Начальная точка (–5; –5).
5. Функция Швефеля:
1
R (x, y) =
− x sin x + y sin y .
2
Интервал поиска по каждой переменной [–500; 500], глобальный
минимум при x = y = 420,96875. Начальная точка (–500; –500).
6. Функция Гривонка:
( ( )
R (x, y) =+
1
( ))
 y 
1
(x2 + y2 ) − cos ( x ) cos 
.
4000
 2
Интервал поиска по каждой переменной [–600; 600], глобальный
минимум при x = y = 0. Начальная точка (–600; –600).
7. Функция Розенброка:
R (x, y
=
) 100(y − x2 )2 + (x − 1)2 .
Интервал поиска по каждой переменной [–5; 5], глобальный минимум при x = y = 1. Начальная точка (–5; –5).
8. Функция Химмельблау:
R (x, y) =−(x2 + y − 11)2 − (x + y2 − 7)2 .
Интервал поиска по каждой переменной [–5; 5], глобальный минимум при x = –0,270845, y = –0,923039. Начальная точка (–5; –5).
9. Функция
2
2
2
2
2
2
x
1
R (x, y) = 3(1 − x2 )e− x −(y +1) − 10( − x3 − y5 )e− x − y − e−(x +1) − y .
5
3
Интервал поиска по каждой переменной [–2; 1], минимум при
x = 0,01336, y = –1,66215. Начальная точка (–2; –2).
10. Функция
R (x, y) = −
sin( x2 + y2 )
x2 + y2
.
Интервал поиска по каждой переменной [–8; 8], минимум при
x = y = 0. Начальная точка (–8; –8).
71
11. Функция
R (x, y) = xe− x
2
− y2
.
Интервал поиска по каждой переменной [–2; 2], минимум при
x = –0,707, y = 0. Начальная точка (–2; –2).
12. Функция
R (x, y)= (4 − 2,1x2 +
x4 2
)x + xy + (−4 + 4y2 )y2 .
3
Интервал поиска по каждой переменной [–5; 5], минимум при
x = ±0,089842, y = ±0,7126564. Начальная точка (–5; –5).
72
3. МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ
Формулировка любой задачи, в том числе оптимизационной, содержит, кроме указания того, что нужно найти, еще и некоторые
условия (то, что дано). В ряде оптимизационных задач удобно использовать заданные условия при составлении оптимизируемого
критерия. Если при составлении критерия учтены все заданные
условия, поиск экстремума этого критерия – задача безусловной оптимизации.
Однако часто условия заданы в виде сложных систем уравнений
и неравенств, и выражать из них искомые переменные и подставлять в критерий трудоемко или вообще невозможно. В таком случае
нужно учитывать неиспользованные ограничения в процессе поиска экстремума – таким образом, получаем задачу условной оптимизации.
3.1. Аналитические методы условной оптимизации
3.1.1. Задача Кеплера и метод Ферма
Основополагающим аналитическим методом безусловной оптимизации является метод Ферма, согласно которому для поиска экстремума нужно взять производную функции и приравнять ее нулю.
Покажем на примере известной задачи Кеплера о винных бочках,
что этот метод можно применять и для решения несложных задач
условной оптимизации.
Рассказывают, что, когда Иоганн Кеплер (1571–1630) покупал вино для свадьбы, он был изумлен тем, как торговец определял вместимость бочки. Торговец брал палку, на которой были
нанесены деления, и с ее помощью определял расстояние от наливного отверстия до самой дальней точки бочки, после чего
говорил, сколько в ней литров вина. Кеплера заинтересовало,
как можно определить объем бочки при
помощи всего одного измерения. Так появилась на свет книга «Новая стереометрия винных бочек».
Пример 3.1. Задача Кеплера. Среди
D
h
всех бочек с диагональю D найти цилиндр
d
(бочку) максимального объема, указав оптимальное соотношение диаметра основания к высоте цилиндра (рис. 3.1).
Рис. 3.1. Бочка Кеплера
73
Запишем целевую функцию (объем бочки) и ограничение:
πd2
V=
h → max,
4
D2 =
h2 + d 2 .
Для того чтобы решить эту задачу методом Ферма, необходимо
выразить одно из неизвестных (например, d2) из ограничения и подставить его в целевую функцию:
2
d=
D 2 − h2 .
π 2
=
V
(D h − h3 ) → max.
4
Далее, согласно методу Ферма, возьмем производную, приравняем ее нулю и найдем высоту:
π
D
.
Vh′ = (D2 − 3h2 ) = 0 ⇒ h =
4
3
Диаметр бочки найдем из ограничения:
d2 = D2 −
D2
⇒ d=
3
2
3
D.
d
= 2, то есть наиh
большим объемом при заданном диаметре обладает «плоская» бочка, у которой диаметр почти в полтора раза больше высоты.
Возникает вопрос: нельзя ли было найти отношение сторон сразу, без поисков d и h? Кроме того, не всякое ограничение удается
подставить в целевую функцию. Нельзя ли не подставлять ограничения в функцию, а использовать их при поиске экстремума подругому?
Искомое отношение сторон бочки имеет вид
3.1.2. Метод Лагранжа
До некоторых пор при решении задач условной оптимизации
ученым каждый раз приходилось придумывать способы избежать
прямой подстановки ограничения в целевую функцию. Одним из
таких ученых был Леонард Эйлер.
Леонард Эйлер (1707, Швейцария – 1783, Санкт-Петербург) – швейцарский, немецкий и российский математик и механик, внесший фундаментальный вклад в развитие этих наук. Л. Эйлер – автор более
чем 850 работ по математическому анализу, дифференциальной геометрии, теории чисел, приближенным вычислениям, небесной механи74
ке, математической физике, оптике, баллистике, кораблестроению,
теории музыки и т. д. Учился в Базельском университете, член Петербургской, Берлинской, Туринской, Лиссабонской академий наук.
Его отец был пастором и готовил сына к духовной карьере, однако занимался с ним и математикой – как в качестве развлечения, так и
для развития логического мышления, что сыграло ключевую роль в выборе жизненного пути мальчика.
В 13 лет Леонард Эйлер поступил в университет, а в 20 лет уехал
в Россию, где создавалась Академия наук. В нашей стране Л. Эйлер жил
и работал до времен дворцовых переворотов, затем уехал в Германию
и снова вернулся лишь при Екатерине II, ему тогда было уже 60 лет.
После возвращения в Петербург Л. Эйлер перестал видеть, однако слепота не отразилась на его работоспособности, он лишь заметил, что
теперь будет меньше отвлекаться от занятий математикой. Число
опубликованных им работ даже возросло; во время второго пребывания в России ученый записал с помощью секретарей больше половины
своего творческого наследия.
Среди прочих вопросов Леонард Эйлер интересовался и вопросом оптимизации с ограничениями. Л. Эйлер решал множество задач такого
рода и каждый раз придумывал особый прием для новой задачи, а также приглашал ученых заняться изысканием общего метода решения.
В 1755 году 19-летний юноша, будущий великий французский
математик Жозеф Луи Лагранж, изложил в письме к Леонарду Эйлеру (которому было к тому времени 48 лет) свой метод решения задач по нахождению максимумов и минимумов. Юный Ж. Лагранж
разработал свой алгоритм, решавший единообразным способом самые разные экстремальные задачи. Восторженная реакция Л. Эйлера не заставила долго ждать: «Ваше решение безукоризненно, и я
рад, что тема, которой я давно занимаюсь, доведена Вами до близкого конца».
В чем же состояло решение Ж. Лагранжа?
Проиллюстрируем его сначала на простом примере, а потом – на
задаче Кеплера.
Пример 3.2. Экстремум линейной функции на окружности.
Пусть заданы линейная целевая функция и квадратичное ограничение:

S = x + y → min,
 2
2
R2 .

x + y =
(3.1)
75
Ограничение представляет собой некоторую кривую на плоскости, в нашем случае – окружность радиуса R.
Целевая функция представляет собой поверхность: каждой точке плоскости xy соответствует некоторое значение S. Как видно из
рис. 3.2, эта поверхность в нашем случае – наклонная плоскость.
На топографических картах обычно принято изображать рельеф
местности линиями уровня, т. е. линиями, соединяющими точки
одинаковой высоты. Так же можно поступить и с рельефом целевой
функции. В нашем случае линии уровня для целевой функции будут представлять собой прямые на плоскости x, y (рис. 3.3).
4
3
2
1
S 0
–1
–2
–3
–4
2
1
0
–1
y –2 –2
–1
1
0
2
x
Рис. 3.2. Целевая функция
2
x2+y2 –1 = 0
1,5
1
0,5
0
y
–0,5
–1
–1,5
–2
–2 –1,5 –1 –0,5 0
x
0,5 1
1,5 2
Рис. 3.3. Линии уровня целевой функции и ограничение
76
Таким образом, мы должны найти на окружности точки с минимальным значением целевой функции. Из рис. 3.3 видно, что
решение находится в точке, где окружность касается линии уровня (таких точек на рис. 3.3 всего две – одна из них соответствует
минимуму, а другая максимуму). Известно, что точка касания двух
кривых – это точка, в которой касательные к этим двум кривым совпадают. Значит, наша задача – найти точку, где совпадают касательные ограничения и линии уровня.
Выясним, чему равны производные целевой функции и ограничения.
Производная целевой функции представляет собой вектор
 Sx′  1
 S′  =   .
 y  1
Заметим, что он перпендикулярен линиям уровня нашей целевой функции.
Производная ограничения:
fx′  2x 
f ′  =  .
 y  2y 
Если в этот вектор вместо x и y подставлять разные точки окружности, то мы снова будем получать вектор, перпендикулярный касательной к окружности в этой точке. Например, для точки (0; 1)
получим вектор
fx′  0 
f ′  =  ,
 y  1 
для точки ( 2;
2 ) получим вектор
fx′  2 2 
.
f ′  = 
 y  2 2 
Такое замечательное свойство вектора производных справедливо
для всех видов функций. Вектор из частных производных функции
называется ее градиентом. Вектор градиента функции в данной точке перпендикулярен касательной к этой функции в данной точке.
Вспомним, что мы ищем точку, в которой касательные должны
совпадать, значит, вектора, перпендикулярные к касательным (то
есть градиенты) должны быть в этой точке пропорциональны друг
77
другу (так как они могут быть разными по длине и даже направлены в противоположные стороны).
Условие пропорциональности градиентов функции и ограничения можно записать так:
 Sx′ 
fx′ 
 S ′  + λ  f ′  =0 .
 y
 y
Для того чтобы найти точку, лежащую на ограничении, для которой выполняется условие пропорциональности градиентов целевой функции и ограничения, нужно решить систему уравнений, состоящую из ограничения и условий пропорциональности:
S′ + λf ′ =0,
x
 x
′
+
λ
S
f
 y
y′ =0,
 2
2
2
0.
x + y − R =
Здесь λ – коэффициент пропорциональности (множитель Лагранжа).
Решение этой системы и будет искомой точкой условного экстремума. Конечно, ограничение не исчезло, но если при решении
методом Ферма мы обязаны были выразить из ограничения переменную, подставить в целевую функцию и взять производную, то
теперь можно подставлять все в ограничение:
−1
,
Sx′ + λfx′ = 1 + 2λx = 0;⇒ x =
2λ
−1
.
Sy′ + λfy′ = 1 + 2λy = 0;⇒ y =
2λ
Заметим, что x = y. Тогда из ограничения следует:
R
x= y= ±
.
2
Мы получили два решения, одно из которых соответствует минимуму, а второе – максимуму целевой функции при данном ограничении.
Если бы у нас было три переменных, в системе было бы четыре
уравнения. Чтобы как-то записать нашу идею в общем виде, заметим, что наши уравнения – это частные производные функции
L ( x,=
y, λ ) S(x, y) + λf (x, y) → min по x, y и λ. То есть получается,
78
что мы ищем экстремум этой функции. В этом и заключается метод, придуманный Лагранжем. Более строго он формулируется следующим образом.
Задача поиска минимума функции (критерия) f(x1, ..., xn) при
наличии ограничений g1(x1, ..., xn) = 0, …, gm(x1, ..., xn) = 0
f (X) → min;
X
g(X) =
0;
X ∈ Rn .
cводится к задаче поиска минимума функции Лагранжа:
L = f(X) + λ1 g1(X) + … + λm gm(X) → min.
Здесь λ1, …,λm – новые переменные, называемые множителями Лагранжа.
Поиск экстремума этой функции производится согласно лемме
Ферма: необходимо составить систему из n + m уравнений, поочередно приравнивая нулю частные производные L по каждой из переменных x1, ..., xn, λ1, …, λm. Среди полученных решений необходимо выбрать то, которое соответствует минимальному значению L.
Тем самым исходная задача на условный экстремум функции n
переменных сводится к задаче отыскания безусловного экстремума
функции n + m переменных.
Жозеф Луи Лагранж (1736–1813) – французский математик,
астроном и механик. Работал в университетах Европы. «Аналитическая механика», опубликованная в Париже в 1788 году, стала вершиной научной деятельности Лагранжа, эту книгу называли «научной поэмой». В двух своих важных трудах — «Теория аналитических
функций» (1797) и «О решении численных уравнений» (1798) – Лагранж подытожил все, что было известно по этим вопросам к тому
времени, а его новые идеи и методы были развиты в работах математиков XIX века.
Вернемся к задаче Кеплера и посмотрим на нее с другой стороны.
Нам задана целевая функция от двух аргументов и одно ограничение.
V=
f (d, h) → max; g(d, h) =
0.
d,h
f (d, h) =
πd2
h, g(d, h) = h2 + d2 − D2 .
4
Ограничение представляет собой окружность на плоскости (d,
h), а линии уровня целевой функции – это «квадратичные гипербо79
4
лы» h =
4V
с разными значениями V
πd2
(рис. 3.4).
2
Нам нужно найти точку, которая
1
одновременно лежит на гиперболе
с самым большим значением V и на
0 1
2
3 4
окружности.
Очевидно, что гипербоd
ла с максимальным V, имеющая общую точку с окружностью, будет касаться окружности в этой точке (рис.
3.4): гиперболы с большим V не будут
Рис. 3.4. Линии уровня целевой иметь с окружностью общих точек, а
гиперболы с меньшим V будут иметь
функции и ограничение
две общие точки с окружностью (пересекать ее).
То же можно заметить для ограничений и целевых функций другого вида. Таким образом, задача поиска условного экстремума сводится к определению координат точки касания линии уровня целевой функции и ограничения.
Можно заметить, что точка касания двух кривых – это точка,
в которой касательные к этим двум кривым совпадают. Следовательно, требуется найти точку, в которой совпадают касательные
к ограничению и к линии уровня.
Производная целевой функции
3
h
π 
dh
fd′   2 
=


 
fh′   π d2 
 4 
представляет собой вектор, ортогональный линиям уровня нашей
целевой функции.
Производная от ограничения:
 gd′  2d 
 g ′  = 2h  .
 h  
Если мы в качестве d и h подставим координаты разных точек
окружности, то получим векторы, перпендикулярные касательной
к окружности в этих точках.
80
Пример 3.3. Задача о палатке.
Палатка имеет форму правильной четырехгранной пирамиды (рис. 3.5). Ее
b
основание – квадрат. Длины всех ребер,
ведущих от вершины к основанию, одинаковы. Требуется найти соотношение
a
размеров a и b, обеспечивающих максиa
мальный объем при заданной площади
поверхности S.
Решение. Выпишем формулы для объ- Рис. 3.5. Четырехскатная
палатка
ема и площади поверхности пирамиды.
Площадь поверхности складывается из площади основания a2 и
площадей четырех равнобедренных треугольников c основанием a:
S = a2 + 4Sa.
Как известно, площадь треугольника равна половине произведения его основания на высоту. Тогда Sa = 0,5aha (рис. 3.6, а). Высота
этого треугольника по теореме Пифагора равна:
=
ha
b2 −
a2
.
4
Итак, площадь поверхности пирамиды выражается через длины
ее ребер следующим образом:
S=
a2 + a 4b2 − a2 .
Объем пирамиды равен трети произведения площади ее основания на высоту:
V = (1/3)a2h.
Очевидно, что высота пирамиды опускается из ее вершины в центр
квадрата (рис. 3.6, б), тогда найдем ее из треугольника (рис. 3.6, в):
б)
а)
b
b
в)
d
a
ha
a
a
b
h
d
Рис. 3.6. Расчет площади поверхности и объема пирамиды
81
1
a
a2
h = b2 − d2 ; d = 2a2 = ; h = b2 − .
2
2
2
Таким образом, объем пирамиды равен:
V
=
1 2
a 4b2 − 2a2 .
6
(3.2)
Для каждого конкретного значения S эту задачу максимизации
можно изобразить графически на плоскости (a, b). Например, для
S = 25 на рис. 3.7 представлены линии уровня функции V(a, b) и кри-
b
25. Нам требуется найти точку
вая-ограничение a2 + a 4b2 − a2 =
(a, b), лежащую на кривой-ограничении, для которой значение V
максимально. Очевидно, что искомая точка максимума является
точкой касания ограничения и линии уровня (она отмечена жирной
точкой).
Для построения графика (рис. 3.7) использовался следующий
код на языке MATLAB:
>> [a,b] = meshgrid(0:0.01:5); % подготовка сетки
>> V = a.^2.*sqrt(4*b.^2–2*a.^2)/6;
>> contour(a,b,V,50)% построение линий уровня
>> hold all; ezplot(‘x^2 + x*sqrt(4*y^2-x^2)-25′)% построение ограничения
Для аналитического решения задачи оптимизации методом Лагранжа запишем составной критерий:
1 2
L
a 4b2 − 2a2 + λ  a2 + a 4b2 − a2 − S  → min.
=
6


5
4,5
4
3,5
3
2,5
2
1,5
1
0,5
0
0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5
a
Рис. 3.7. Графическое представление задачи оптимизации
82
Возьмем частные производные от этой функции Лагранжа по a,
b и λ и приравняем их нулю:
1
1
1
a 4b2 − 2a2 − a3
+
3
3
4b2 − 2a2


1
 = 0;
+λ  2a + 4b2 − a2 − a2


4b2 − a2 

=
La′
Lb′
=


2 2
1
1
 0;
4ba
ba
+ λ =

2
2 
3
4b2 − 2a2
4
−
b
a


Lλ′ = a2 + a 4b2 − a2 − S = 0.
Таким образом, получаем систему из трех уравнений с тремя
неизвестными: a, b и λ. Решая систему из трех уравнений в пакете
Maple, с помощью команды solve получим несколько решений, из
которых только одно содержит положительные a и b:
a=
10S
2S
S
,b=
,λ=−
.
2
4
16
(3.3)
Такой же ответ можно получить с помощью другой команды
Maple:
> extrema(1/6*a^2*sqrt(4*b^2–2*a^2),a^2 + a*sqrt(4*b^2-a^2)-S,{a,b},′ab′);
> ab;
2
a
Искомое соотношение сторон пирамиды равно=
≈ 0,632.
b
10
Это означает, что длина стороны основания пирамиды оптимального объема должна быть почти вдвое короче бокового ребра.
Найдем значение максимального объема при заданной площади
S 2S
.
S, для этого подставим значения (3.3) в (3.2): Vmax =
24
Подставляя в (3.3) S = 25, получим a = 2,5, b ≈ 3,95, что соответствует решению, найденному графически (рис. 3.7). Высота палатки составит h = 50 ≈ 7,07.
Упражнение. Решите ту же задачу при условии, что весь материал расходуется только на боковые грани (палатка без дна). Покажите, что в этом случае объем палатки будет максимальным при a = b,
83
т. е. все четыре грани – правильные треугольники. Высота такой
палатки будет в 4 3 ≈ 1,32 раза меньше, чем в предыдущем случае.
Пример 3.4. Задача об экстремуме квадратичной формы на сфере. Квадратичной формой от переменных x1, , xn называется выражение вида
n
Q(X) = ∑ aij xi xj .
i, j
Одна из классических задач оптимизации состоит в том, чтобы найти экстремумы этой квадратичной формы при условии
x12 +  + xn2 =
1. Геометрически этому уравнению отвечает единичная сфера в n-мерном пространстве.
Матричная запись этих уравнений имеет вид
T
=
Q(X) X=
AX, XT X 1,
где Х – вектор с компонентами xi; А – симметричная квадратная
матрица с элементами aij; T – символ транспонирования.
Для отыскания экстремума формируем составной критерий
=
L XT AX + λ(XT X − 1),
где λ – множитель Лагранжа.
Приравнивая производную по X нулю, получаем
2AX − 2λX =0, AX =λX.
Последнее равенство означает, что искомые экстремальные направления совпадают с собственными векторами H1, ..., Hn матрицы A, которые вследствие симметричности матрицы A образуют
ортонормальную систему.
Вычисляя значения квадратичной формы Q(Х) при X = Hi, получаем
Q (H1) = λ1, ..., Q(Hn) = λn.
Таким образом, экстремальные значения квадратичной формы
на единичной сфере равны собственным числам матрицы A. Максимальное и минимальное из них задают границы изменения квадратичной формы при ||X| = 1:
λn ≤ Q(X) ≤ λ1.
Задача о максимуме квадратичной формы на сфере имеет многочисленные приложения в технических дисциплинах.
84
3.2. Численные методы условной оптимизации
3.2.1. Метод штрафных функций
Пусть имеется задача поиска минимума с ограничениями типа
равенств и типа неравенств:
f (x) → min, gi (x) ≥ 0, qj (x) =
0. (3.4)
Напомним, что аналитический способ решения задач такого
вида был предложен Лагранжем. Рассмотрим один из численных
способов решения этой задачи – метод штрафных функций.
Метод штрафных функций, так же как и метод Лагранжа, основан на переходе от задачи с ограничением к задаче без ограничений:
F (x) =
f (x) + rP(gi (x),qi (x)) → min. (3.5)
Для того чтобы решение новой задачи (3.5) совпадало с решением исходной задачи (3.4), необходимо, чтобы при выполнении всех
ограничений член rP(gi (x),qi (x)) был равен нулю. При нарушении
какого-либо из ограничений член rP(gi (x),qi (x)) должен стремиться к бесконечности (или, при более мягкой формулировке – больше
нуля), так как функция f(x) может иметь минимум вне допустимой
области (заданной ограничениями):
0),
0, if ( all gi ≥ 0 and all qi =
rP = 
> 0, if (any gi < 0 or any qi ≠ 0).
(3.6)
Таким образом, возможны два случая расположения экстремума.
1. Безусловный минимум целевой функции f(x) удовлетворяет
ограничениям (рис. 3.8, а).
Тогда при x ≠ x* f(x) > f(x*) и P ≥ 0, а это значит, что F(x*) = f(x*) <
< F(x) = f(x) + rP, то есть минимумы F(x) и f(x) будут всегда совпадать.
2. Но во многих случаях безусловный минимум f(x) не удовлетворяет ограничениям (рис. 3.8, б). В этом случае искомое значение x*
обычно лежит на границе допустимой области.
При x > x* f(x) < f(x*) и P > 0, а это значит, что F(x*) = f(x*) < F(x) =
= f(x) + rP, при условии что rP > f(x*) – f(x).
Очевидно, что чем больше значение r, тем более точный будет получаться ответ. В идеальном случае нужно взять r = ∞, тогда если
ограничения выполняются, то P = 0, а как только ограничения начнут чуть-чуть нарушаться, сразу же к функции прибавляется бес85
а)
б)
f(x)
f(x)
x
x*
x*
x
g(x)
q(x)
x<0
Рис. 3.8. Два варианта ограничений
конечно большое число, и получившееся значение не может быть
минимумом. Однако, так как, с одной стороны, r равное ∞ или близкое затрудняет вычисления, а с другой стороны, значения x* требуется найти с некоторой точностью ε, поиск экстремума функции
(3.5) осуществляется итерационно. При этом на каждой итерации
значение r увеличивается. Итерации завершаются, когда P оказывается меньше ε. Начальное значение r выбирается произвольно.
Функция P называется штрафной функцией (penalty function).
Величина r называется величиной штрафа.
Алгоритм поиска экстремума методом штрафных функций можно сформулировать в виде трех шагов.
Шаг 1. Выбрать произвольное начальное значение r.
Шаг 2. Найти решение x* задачи (3.5) каким-либо известным методом.
Шаг 3. Если P(gi (x*),qi (x*)) > ε, увеличить r и перейти к шагу 2.
Иначе: x* – искомая точка минимума.
Возникает вопрос, как создать функцию P, которая будет удовлетворять условиям (3.6). Самый простой вариант реализовать
штрафную функцию это представить ее в виде суммы ограничений,
а каждое из ограничений преобразовать так, чтобы оно было равно
нулю, если исходное ограничение выполняется, и стремиться к бесконечности, если исходное ограничение не выполняется:
=
P(x)
→ +∞, if qj (x) → ±∞,

), qˆj (x) 
∑ gˆi (x) + ∑ qˆj (x=
i
86
j
, if qj (x) 0.

 0=
→ +∞, if gi (x) → −∞,
gˆ j (x) 
=
 0, if gi (x) ≥ 0.
(3.7)
abs (q )
а)
б)
2
1,8
1,6
1,4
1,2
1
0,8
0,6
q2
4
3,5
3
2,5
2
1,5
1
0,5
0
–2 –1,5 –1 –0,5 0
q
0,5 1
1,5 2
0
–2 –1,5 –1 –0,5 0
q
0,5 1
1,5 2
Рис. 3.9. Модульная и квадратичная функции
Рассмотрим несколько вариантов такого преобразования.
Пусть дано ограничение типа равенств q(x) = 0. Наиболее очевидными вариантами преобразования этого ограничения для достижения условий (3.7) являются два – взять модуль и возвести в квадрат:
qˆ(x) = q(x) и qˆ(x) = (q(x))2 .
Графики этих преобразований представлены на рис. 3.9 (a, б).
В случае ограничения типа неравенств g(x) ≥ 0 преобразования
могут выглядеть так, как показано на рис. 3.10.
Для того чтобы при неотрицательных значениях g(x) gˆ (x) было
равно нулю, можно использовать в преобразовании функцию выбора минимума из двух значений:
gˆ (x) =
− min(0, g(x)), gˆ (x) =
min(0, g(x)) , gˆ (x) =
(min(0, g(x)))2 .
1
0,9
0,8
0,7
0,6
g 0,5
0,4
0,3
0,2
0,1
0
–1–0,8 –0,4
0
x
0,4
0,8 1
1
0,9
0,8
0,7
0,6
g 0,5
0,4
0,3
0,2
0,1
0
–1–0,8 –0,4
0
x
0,4
0,8 1
Рис. 3.10. Ограничения типа неравенств
87
Пример 3.5. Экстремум квадратичной формы при линейном
ограничении.
) x12 + x22 при
Пусть нужно найти точку минимума функции f (x=
ограничении q(x) =2 − x1 − x2 =0.
Сначала решим задачу методом Лагранжа. Выписываем функцию Лагранжа:
L
= x12 + x22 + λ(2 − x1 − x2 ) → min.
Находим ее частные производные и приравниваем их нулю:
′
λ 0, 
L=
2x1 +=
x1


′x 2x2 +=
λ 0, .
L=
2

Lλ′ =2 − x1 − x2 =0 

Решая эту систему уравнений, получаем ответ: x=
1 x=
2 1.
Геометрическая интерпретация полученного решения (рис. 3.11)
это точка касания окружности с радиусом 2 и прямой x1 + x2 =
2.
Теперь воспользуемся методом штрафных функций.
Преобразуем ограничение к виду qˆ(x) = (x1 + x2 − 2)2 .
Составим целевую функцию:
F (x) = x12 + x22 + r (x1 + x2 − 2)2 → min.
x1+x2=2
2
1,5
1
0,5
x2
0
–0,5
–1
–1,5
–2
–2
–1
0
x1
1
2
Рис. 3.11. Геометрическая интерпретация примера
88
Возьмем для начала r = 1. Минимум можно искать любым известным методом. В нашем случае его можно найти, например, аналитическим методом Ферма:
Fx′1 = 2x1 + 2(x1 + x2 − 2)= 0 
 x1 = x2 ,
Fx′2 = 2x2 + 2(x1 + x2 − 2)= 0 
2
x1 + (2x1 − 2) =0 ⇒ x1 = .
3
Посчитаем значение штрафа:
4
4
P =( − 2)2 = .
3
9
Таким образом, мы нашли ответ с точностью ε = 4/9. Увеличим r
до r = 2:
) 0 
Fx′1= 2x1 + 2 ⋅ 2(x1 + x2 − 2=
 x1 = x2 ,
) 0 
Fx′2= 2x2 + 2 ⋅ 2(x1 + x2 − 2=
4
x1 + 2(2x1 − 2) =0 ⇒ x1 = .
5
Этот ответ уже ближе к полученному методом Лагранжа. Штраф
и точность решения составляют
8
4
P =( − 2)2 = .
5
25
Можно заметить, что с увеличением r член x1 в последнем уравнении становится все более незначительным, и при r = ∞ получим
x1 = 1.
3.2.2. Метод барьерных функций
Основная идея метода барьерных функций, так же как и метода
штрафных функций, состоит в переходе от задачи с ограничениями (3.4) к задаче без ограничений (3.5). При этом необходимо, чтобы в случае, когда ограничения выполняются, величина rP была
равна нулю. Этого можно добиться двумя способами: требовать при
выполнении ограничений равенства P = 0 (как в методе штрафных
функций) или r = 0 (или очень малой величине). В последнем случае функцию P нужно выбрать такую, чтобы она была равна бесконечности на границе ограничений, а при их выполнении она мо89
жет быть любой. Это не даст методу возможности выйти за пределы
ограничений.
Таким образом, если решение задачи лежит на границе (рис. 3.8),
можно сказать, что, используя метод штрафных функций, мы приближаемся к решению «снаружи» допустимой области, а используя
метод барьерных функций – «изнутри». Поэтому метод штрафных
функций иногда называют методом внешней точки, а метод барьерных функций – методом внутренней точки.
Чтобы отличать барьерную функцию от штрафной, обозначим ее
B, а коэффициент барьера – z:
f (x) → min,
gi (x) ≥ 0,
F (x) =
f (x) + zB(gi (x)) → min, (3.8)
B=
∞, if any gi → 0.
Обычно метод барьерных функций применяется только для условий типа неравенств.
Так как решение может находиться на границе, а там «воздвигнут барьер», точность ответа будет зависеть от того, насколько малой будет величина z: чем z меньше, тем ближе к границе метод сможет подойти. Это означает, что если в методе штрафных функций
нужно было на каждом шаге r увеличивать, то в методе барьерных
функций величину z нужно на каждом шаге уменьшать.
Алгоритм поиска экстремума методом штрафных функций можно сформулировать в виде трех шагов.
Шаг 1. Выбрать произвольное начальное значение z.
Шаг 2. Найти решение x* задачи (3.8) каким-либо известным методом.
Шаг 3. Если B(gi (x*)) > ε, уменьшить z и перейти к шагу 2. Иначе: x* – искомая точка минимума.
Функцию B, так же как и P, будем составлять из модифицированных ограничений, для которых выполняется условие барьерности:
B(x) = ∑ gˆi (x),
i
gˆi (x) =
∞, if gi → 0 .
Тогда, если одно из ограничений станет бесконечно большим, то
и вся функция примет значение бесконечности.
90
Это может быть, например, гиперболическая или логарифмическая функция:
gˆ (x) =
1
или gˆ (x) = − ln(g(x)).
g(x)
Соответствующие преобразования ограничений показаны на
рис. 3.12.
Пример 3.6. Рассмотрим пример 3.5, изменив в ограничении
знак равенства на знак неравенства:
f (x) = x12 + x22 → min, g(x) =2 − x1 − x2 ≤ 0.
Из рис. 3.11 видно, что решение, так же как и в предыдущем случае, будет лежать в точке (1; 1).
Решим задачу методом барьерных функций. Чтобы нам было
удобнее (так как для поиска экстремума по-прежнему будем использовать метод Ферма), возьмем в качестве модификации ограничения логарифмическую функцию.
Для начала выберем z = 1.
F (x) = x12 + x22 − z ln(x1 + x2 − 2) → min.
Найдем экстремум методом Ферма:
z

=
Fx′1 =
2x1 −
0, 
x1 + x2 − 2

x2 ,
 ⇒ x1 =
z
=
Fx′2 =
2x2 −
0,

x1 + x2 − 2
5
4,5
4
3,5
3
g ′(x) 2,5
2
1,5
1
0,5
0
1/g(x)
–ln(g(x))
1,5
1
g′(x)
0,5
0
–0,5
0
0,4 0,8
g(x)
1,2
1,6
2
–1
0
0,4
0,8
1,2
g(x)
1,6
2
Рис. 3.12. Варианты ограничений
91
1
= 0 ⇒ 2x1 (2x1 − 2) − z = 0. x = 4 ± 16 + 8 = 1 ± 6 .
1,2
2x1 − 2
4
2
6
≈ 1,22 отличается от аналитического. Видно,
Этот ответ на
2
что чем меньше z, тем больше последнее уравнение приближается к виду 2x1 (2x1 − 2) =
0, а значит, и корни этого уравнения будут
стремиться к нулю и единице. Заметим, что, так как нигде не учитывается информация о знаке ограничения, мы получили два ответа: один для случая «больше», другой – для случая «меньше».
2x1 −
Основоположником методов штрафных и барьерных функций
является немецкий и американский математик Рихард Курант
(1888–1972). Жить ему пришлось во времена двух мировых войн. Его
учителем был известный немецкий математик Давид Гильберт.
После Первой мировой войны Курант работал профессором Геттингенского университета, в те годы это была столица мировой математики.
После прихода к власти фашистов Курант уехал из Германии: сначала в Кембридж, а в 1934 году в США. Там он получил место профессора в Нью-Йоркском университете, где создал математический институт, который сейчас носит его имя (Курантовский институт).
Там в 1943 г. Курант и придумал метод штрафных функций, изначально для решения простых физических задач движения в ограниченной области. Его книги и учебники о методах математической
физики, дифференциальном и интегральном исчислении считаются
классикой, переведены на многие языки.
3.2.3. Решение задач линейного программирования
Отдельный класс оптимизационных задач образуют задачи линейного программирования, в которых и оптимизируемый критерий, и ограничения линейны. Задача состоит в том, что необходимо максимизировать или минимизировать некоторый линейный
функционал на многомерном пространстве при заданных линейных ограничениях.
Формы записи задач линейного программирования
Математическая формулировка задачи состоит в том, что требуется найти экстремум линейной целевой функции f= c1x1 +  + cn xn
при наличии ограничений в виде линейных неравенств
ai1x1 +  + ain xn ≤ bi ,
92
i=
1, 2, , m.
Эти условия можно записать в матричной форме
cT X → extr ,
AX ≤ b. (3.9)
Здесь b и c – векторы-столбцы, А – матрица размера m×n.
Существует другая форма записи, называемая канонической,
когда ограничения имеют вид равенств, а на переменные накладывается требование положительности:
cT X → min, AX =
b, X ≥ 0. (3.10)
Формы записи (3.9) и (3.10) не являются независимыми. Существуют преобразования, при помощи которых любую задачу линейного программирования можно свести к одной из этих форм.
Чтобы перейти к канонической форме (3.10), необходимо заменить условия типа неравенств на равенства и перейти к положительным переменным. Первое делается путем введения дополнительных переменных, например вместо неравенства x1 + 3x2 ≤ 0
можно записать равенство
x1 + 3x2 + x3 =
0,
где x3 ≥ 0 – новая переменная.
Любую переменную неопределенного знака можно заменить разностью двух положительных переменных:
xi =
xi1 − xi2 , xi1 ≥ 0, xi2 ≥ 0.
Для обратного перехода, от формы (3.10) к форме (3.9), ограничения типа равенств нужно заменить неравенствами. Для этого можно воспользоваться формулой
 F (x) ≥ 0,
F (x)= 0 ⇒ 
 F (x) ≤ 0.
Например, вместо x1 + 3x2 =
0 можно записать пару неравенств:
x1 + 3x2 ≤ 0,
− x1 − 3x2 ≤ 0.
Существует много методов решения задач линейного программирования, одним из наиболее наглядных является графический
метод, а среди численных наиболее известен симплекс-метод. Остановимся на них подробнее.
93
Графический метод решения задач линейного программирования
Этот метод применяется, когда число переменных невелико
(обычно две), число ограничений может быть любым. На плоскости х, у рисуют прямые, соответствующие ограничениям, и рассматривают образованный ими многоугольник. Решение достигается
в одной из его вершин. Чтобы найти ее, берут прямую f(x, y) = 0, где
f(x, y) – целевая функция, и перемещают ее параллельно вправо или
влево до тех пор, пока многоугольник ограничений не окажется по
одну сторону от нее.
Пример 3.7. Найти максимум и минимум целевой функции
f = 2x + y при ограничениях 0≤x≤1, 0≤y≤1.
Приведем графическое решение. Нау
рисуем на плоскости х, у единичный
А
квадрат (это область допустимых реше1
ний) и семейство прямых 2x + y = с при
различных значениях с (рис. 3.13).
Ясно, что максимум целевой функх
ции достигается в верхнем правом углу
0
1
квадрата (точка А с координатами x = 1,
y = 1) и равен трем, а минимум – в проРис. 3.13. График
тивоположном углу (точка x = 0, y = 0) и
для примера 3.7
равен нулю.
Пример 3.8. Задача о производстве стульев. Мебельная фабрика
может выпускать стулья двух типов стоимостью 8000 и 12000 руб.
Имеются следующие ресурсы: 440 погонных метров досок, 65 м2
обивочной ткани и 320 человеко-часов трудовых ресурсов. На изготовление одного стула требуется следующее количество ресурсов:
Стул
Расход досок
Расход ткани
Расход времени
Первый
2
0,5
2
Второй
4
0,25
2,5
Ресурс
440
65
320
Требуется так спланировать производство стульев, чтобы общая
цена продукции была максимальной.
Перейдем к математической формулировке задачи. Обозначим
через х количество стульев первого типа, через у – количество стульев второго типа. Тогда условия задачи сводятся к следующему:
8x + 12y → max – оптимизируемый критерий;
94
200
150
Chairs 2
100
optimum
50
0
0
50
100 150 200 250
Chairs 1
300
Рис. 3.14. Графическое решение задачи о стульях
2x + 4y ≤ 440 – ограничение по расходу досок;
0,5x + 0,25y ≤ 65 – ограничение по расходу ткани;
2x + 2,5y ≤ 320 – ограничение по расходу времени.
Матричная форма записи:
4 
 2
8
x 


0,5 0,25 , b
c X → max, c = =
, X =  , A =

12
y
 2
2.5 
T
440 


 65  . (3.11)
320 
Для графического решения построим на плоскости (x, y) три
прямые, соответствующие ограничениям по трем ресурсам. По оси
x будем откладывать количество стульев второго вида, по оси y количество стульев первого вида. Полученные прямые показаны на
рис. 3.14. Они вместе с осями координат задают область допустимых
решений в виде неправильного пятиугольника. На том же рисунке
показано семейство прямых 8y + 12x =
const.
Решение задачи дает крайняя правая прямая этого семейства,
касающаяся многоугольника допустимых решений в точке с координатами (80, 60). Это означает, что надо выпускать 60 стульев
первого типа и 80 стульев второго типа. При этом общая цена продукции будет максимальной и составит 1440 тысяч рублей.
Графики построены в МАТLAB с помощью следующей программы:
x = 0:0.2:300; y1 = -2*x + 220; y2 = (-1/2)*x + 130; y3 = (-5/4)*x + 160;
95
plot(x,y1,x,y2,x,y3); grid; hold on
for c = 0:60:1460
y = -3/2*x + c/8;
plot(x,y,′black′);grid on;
end
Симплекс-метод
Симплекс-метод – это алгоритм решения оптимизационной задачи линейного программирования путем перебора вершин выпуклого многогранника в многомерном пространстве. Сущность метода: построение базисных решений, на которых монотонно убывает
линейный функционал, до ситуации, когда выполняются необходимые условия локальной оптимальности. Впервые принципы этого
метода были изложены в работе Л. В. Канторовича 1939 года.
Леонид Витальевич Канторович (1912, Санкт-Петербург – 1986,
Москва) – советский математик и экономист, один из создателей линейного программирования. Леонид Канторович родился в 1912 году, был младшим ребенком
в семье врачей. Уже в 1926 году в возрасте четырнадцати лет он поступил в Ленинградский университет. В 1930 году окончил математический факультет, а в 1934 году, в 22 года, стал профессором ЛГУ.
В 1935 году ему была присвоена ученая степень доктора физико-математических наук без защиты диссертации.
В 1938 году Л. В. Канторович в процессе консультации фанерного
треста по эффективному использованию оборудования впервые решил задачу линейного программирования, а в 1939 году опубликовал
работу «Математические методы организации и планирования производства», в которой описал задачи экономики, поддающиеся открытому им математическому методу.
В 1948 году по распоряжению И. В. Сталина расчетная группа
Л. В. Канторовича была подключена к разработке ядерного оружия, а
в 1964 году его избрали академиком АН СССР. Являлся почетным доктором многих университетов в Европе и Америке, а также членом нескольких иностранных академий наук.
В 1975 году стал лауреатом Нобелевской премии по экономике «за
вклад в теорию оптимального распределения ресурсов».
С 1996 года Российская академия наук за выдающиеся работы в области экономико-математических моделей и методов присуждает
премию имени Л. В. Канторовича.
При решении задачи линейного программирования графическим методом видно, что система ограничений вырезает из про96
странства параметров некоторый выпуклый многогранник G. При
этом в силу выпуклости G и линейности целевой функции экстремум может достигаться только в вершинах G. (В вырожденном случае экстремум может достигаться на ребре или грани.)
Идея симплекс-метода состоит в следующем. На начальном шаге
берется любая начальная вершина многогранника G и определяются все выходящие из нее ребра. Далее перемещаются вдоль того
из ребер, по которому функция убывает (при поиске минимума), и
попадают в следующую вершину. Находят выходящие из нее ребра
и повторяют процесс. Когда приходят в такую вершину, в которой
вдоль всех выходящих из нее ребер функция возрастает, то минимум найден.
Применение симплекс-метода для задачи линейного программирования предполагает предварительное приведение ее к канонической форме (3.10) с n положительными переменными и m условиями
типа равенство. При этом требование положительности переменных
означает, что точки принадлежат области n-мерного пространства,
где все координаты положительны (положительный ортант). Равенства определяют (n–m)-мерную гиперплоскость, пересечение которой с положительным ортантом и дает многогранник допустимых
решений.
На рис. 3.15 это проиллюстрировано для случая n = 3, m = 1. При
этом условие положительности задает положительный октант трехмерного пространства, а одно (m = 1) условие-равенство задает двухмерную (n–m = 2) плоскость. В результате допустимым множеством,
в котором выполняются все условия, становится сечение октанта
плоскостью (заштрихованный треугольник). Экстремум линейной
x3
x2
x1
Рис. 3.15. Вид допустимого множества для n = 3, m = 1
97
целевой функции может достигаться только в одной из трех вершин
треугольника.
Чтобы найти вершины многогранника, заметим, что на границе
ортанта одна или более переменных равны нулю (на рис. 3.15 на ребре (x1, x2) переменная x3 = 0). Тогда, чтобы найти вершину, нужно
как можно большее число переменных приравнять нулю, а остальные найти из условий-равенств. Так как при этом должна возникать
система линейных уравнений с n неизвестными, для ее однозначного решения необходимо n уравнений, то есть имеющиеся m условий
необходимо дополнить n–m равенствами вида xi = 0.
Тогда в каждой вершине многогранника будет m ненулевых координат, которые образуют базис. Остальные n–m координат входят
в небазисный набор. Обратите внимание, что базис однозначно определяет координаты вершины. Следовательно, задачу можно было
бы решить путем полного перебора всех базисов, но их число может
быть весьма велико (число сочетаний из n элементов по m).
Алгоритм симплекс-метода состоит из следующих пяти шагов.
Шаг 0. Выбирается начальный базисный набор. Путем линейного комбинирования уравнений (3.10) целевая функция и ограничения-равенства преобразуются к диагональной форме относительно базисных переменных так, чтобы каждая базисная переменная
входила только в одно уравнение и не входила в целевую функцию.
Результат записывается в форме так называемой симплекс-таблицы. В ее первую строку записывают коэффициенты ci целевой функции, а в остальные строки – коэффициенты aij ограничений задачи.
В первый столбец симплекс-таблицы записывают коэффициенты
bi – свободные члены ограничений. В частности, следующая таблица диагонализирована относительно базиса из первых m переменных (x1, x2, …, xm):
x1
x2
...
xm
xm+1
...
xn
Базис
bi \ ci
0
0
...
0
cm+1
...
cn
x1
B1
1
0
...
0
a1, m+1
...
a1,n
x2
b2
0
1
...
0
a2, m +1
...
a2,n
...
...
...
...
...
...
...
...
...
xm
bm
0
0
...
1
am, m +1
...
am,n
Слева от таблицы записаны текущие базисные переменные
(x1, ..., xm), а сверху приведен набор всех переменных задачи.
98
Шаг 1. Проверяется, все ли коэффициенты ci положительны.
Если это так, то таблица соответствует оптимальному решению.
Шаг 2. Если среди коэффициентов ci есть отрицательные, то выбирается столбец с минимальным ci. Такой столбец и соответствующая ему переменная называются ведущими. При увеличении этой
переменной критерий уменьшается наиболее быстро.
Шаг 3. Выбирается ведущая строка, соответствующая той из базисных переменных, которая будет убывать меньше других. Это та
переменная, для которой Ai,вед>0 и отношение Bi/Ai,вед минимально. Если таких переменных нет (все Ai,вед< = 0), то задача неразрешима. После выбора ведущих строки и столбца происходит смена
базиса, при этом переменная ведущей строки исключается из него
(уменьшается до нуля), а переменная ведущего столбца, наоборот,
вносится (принимает ненулевое значение).
Шаг 4. Таблица приводится к диагональному виду относительно нового базиса. Для этого линейно комбинируются ее строки.
В частности, проще всего разделить ведущую строку на значение
ведущего элемента (чтобы он стал равен единице), а затем вычитать
эту строку из других с таким коэффициентом, чтобы обнулить все
остальные элементы ведущего столбца. Затем осуществляется возврат к шагу 1.
Пример 3.9. Решим симплекс-методом задачу о производстве стульев из примера 3.8. Сначала приведем ее к каноническому виду.
Для этого осуществим переход от ограничений типа неравенств
к ограничениям типа равенств, введя три новые переменные x3, x4,
x5. Все они, так же как переменные x1, x2 (количества стульев), положительны. Поскольку в канонической форме ищется минимум,
знак целевой функции изменяем на противоположный.
−8 x1 + −12x2 → min,
440,
2x1 + 4x2 + x3 =

0
,
5
x
+
0
,
25
x
+
x4 65, xi ≥ 0,=
i 1, 2, 3, 4, 5.

1
2 =
2x + 2,5x + x =
2
5 320,
 1
Составляем симплекс-таблицу:
Базис
x3
x4
x5
bi\ci
440
65
320
x1
–8
2
0,5
2
x2
–12
4
0,25
2,5
x3
0
1
0
0
x4
0
0
1
0
x5
0
0
0
1
99
Шаг 0. Выбираем начальный допустимый базис и преобразуем
симплекс-таблицу к диагональному виду относительно этого базиса. В данном случае удобно выбрать базис (x3, x4, x5), поскольку относительно него таблица уже приведена к диагональной форме.
Шаг 1. Проверяем, все ли с0,i > = 0. В данном случае это не так.
Шаг 2. Выбираем ведущий столбец. Это столбец x2, так как ему
соответствует наименьшее значение –12 в верхней строке таблицы.
Шаг 3. Убеждаемся, что в ведущем столбце имеются положительные элементы. Выбираем ведущую строку с минимальным значением bi/аi, x2. Выбрана строка x3, так как ей соответствует наименьшее значение 440/4 = 110. (Удостоверьтесь, что для строк x4, x5
отношение больше.) Следовательно, новый базис: (x2, x4, x5).
Шаг 4. Выполняем преобразование таблицы к диагональной форме относительно нового базиса. Для этого ведущую строку делим на
четыре (чтобы ведущий элемент стал равен единице) и прибавляем
ее к другим строкам так, чтобы все элементы ведущего столбца стали равны нулю.
Действие
x1
x2
x3
x4
x5
+ 12x3
базис
Bi\Ci
–8 + 6 =
–2
–12 +
12 = 0
0+3=3
0
0
/4
x3
110
0,5
1
0,25
0
0
–0,25x3
x4
1–0
=1
0–0
=0
–2,5x3
x5
0
1
0,25–
65–
0,5–
0–0,25*
110*0,25 = 0,5*0,25 1*0,25
0,25 =
=0
37,5
= 0,375
–1/16
2,5–
320–
2–2,5*
0–0,25*
2,5*
2,5*110
0,5 = 3/4
2,5 = –5/8
1=0
= 45
В результате получаем симплекс-таблицу, диагонализированную относительно нового базиса:
x1
x2
x3
x4
x5
–2
0
3
0
0
110
0,5
1
0,25
0
0
x4
37,5
3/8
0
–1/16
1
0
x5
45
3/4
0
–5/8
0
1
Базис
Bi\Ci
x2
Повторяем цикл, начиная с шага 1.
100
Шаг 1. Проверяем, все ли с0,i> = 0. Это не так.
Шаг 2. Выбираем ведущий столбец x1, сx1 = –2.
Шаг 3. Выбираем ведущую строку x5, ей соответствует значение
45/(3/4) = 60. Следовательно, новый базис: (x1, x2, x4).
Шаг 4. Выполняем преобразование таблицы.
x1
x2
x3
x4
x5
bi\ci
0
0
4/3
0
8/3
Действие
+2*x5
базис
–0,5*x5
x2
80
0
1
2/3
0
–2/3
–3/8*x5
x4
15
0
0
1/4
1
–1/2
*4/3
x1
60
1
0
–5/6
0
4/3
Повторяем цикл (последняя итерация).
Шаг 1. Проверяем, все ли с0,i> = 0. Теперь это так. Следовательно,
решение получено. Оптимальным базисом является (x1, x2, x4), оптимальное решение задачи в канонической форме имеет вид: (x1, x2,
x3, x4, x5) = (60, 80, 0, 15, 0).
Таким образом, решение исходной задачи (x1, x2) = (60, 80), т. е.
надо выпускать 60 стульев первого типа и 80 стульев второго типа.
Задачи и упражнения
1. Привести заданное условие типа неравенств с переменными
неопределенного знака к равенству с положительными переменными:
а) x + y ≤ 4, 4y − x ≥ 0; б) x + y ≤ 5, 3y − x ≥ 0.
2. Привести заданное условие типа равенств к системе неравенств:
а) 3x + 2y =
0; б) =
y 5x + 6; в) z= x + y.
3. Сколько переменных (какую размерность) будет иметь задача
после преобразования в каноническую форму, если ограничения заданы системой n неравенств и все переменные имеют произвольный
знак?
4. Сколько переменных (какую размерность) будет иметь задача
после преобразования в каноническую форму, если ограничения заданы системой n неравенств и все переменные положительны?
5. Сколько вершин может иметь допустимое множество, если задача в канонической форме и число переменных равно числу условий-равенств?
101
6. Сколько вершин может иметь допустимое множество, если задача в канонической форме и условий-равенств на одно меньше числа переменных?
7. Решить задачу линейного программирования:
x + 3y → max, =
x > 1, x =
+ y < 4, 4y =
− x > 0.
а) графически; б) симплекс-методом.
8. Решить задачу линейного программирования:
x + y → min, =
x > 1, x +=
y < 5, 3y −=
x > 0.
а) графически; б) симплекс-методом.
9. Привести пример задачи линейного программирования, не
имеющей решения.
102
4. ВАРИАЦИОННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ
Этот раздел требует от читателей более серьезной математической подготовки в области дифференциального и интегрального исчисления, включая дифференциальные уравнения.
4.1. Задачи вариационного исчисления
В предыдущих разделах обсуждались вопросы поиска экстремумов функции одной или нескольких переменных. В то же время
существует много задач, в которых требуется найти непрерывную
функцию, обладающую определенными экстремальными свойствами.
Естественно, что для нахождения наилучших в определенном
смысле функций необходимо иметь специализированный математический аппарат. Именно таким аппаратом является классическое
вариационное исчисление.
Задачи о поиске наилучших функций были известны еще древнегреческим математикам. В качестве примера обычно приводится
задача Дидоны о поиске плоской кривой заданной длины, ограничивающей максимальную площадь. Возникновение вариационного исчисления как математической науки принято относить
к XVII веку. В 1696 году появилась заметка Иоганна Бернулли в научном журнале Acta Eruditorum, которая называлась «Новая задача, к решению которой приглашаются математики».
Начиналась статья так: «Я, Иоганн Бернулли, обращаюсь к самым блестящим математикам в мире. Ничто не является более
привлекательным для умных людей, чем честная, сложная задача,
решение которой, возможно, дарует славу и останется вечным памятником».
Имелась в виду знаменитая задача о брахистохроне (βραχιστοζ –
кратчайший, χρονοζ – время). Ее суть состояла в поиске формы желоба, по которому в вертикальной плоскости скатывается шарик.
Форма должна представляться гладкой кривой, причем такой, которая обеспечивает минимальное время движения из заданной начальной точки в заданную конечную точку (далее подробнее рассмотрена постановка этой задачи).
Решение задачи о брахистохроне было получено практически одновременно четырьмя знаменитыми учеными того времени: самим
Иоганном Бернулли, его братом Якобом, Готфридом Лейбницем и
Исааком Ньютоном. Все предложенные варианты опирались на аппроксимации искомой кривой ломаными прямыми линиями.
103
После опубликования этих результатов стали появляться многие
работы, посвященные исследованиям подобного типа с различными
методами поиска функций (или кривых), доставляющих экстремум
числовым характеристикам интегрального типа (функционалам).
В связи с этим И. Бернулли поставил перед своим учеником Леонардом Эйлером проблему о построении некоторого единого подхода
к решению подобных задач.
Второй вехой в истории вариационного исчисления стала знаменитая работа Л. Эйлера 1744 года «Метод нахождения кривых линий, обладающих свойствами максимума или минимума». По существу, в этой работе были заложены теоретические основы новой
науки. Л. Эйлер без строгого доказательства вывел дифференциальное уравнение второго порядка, которому должны были с необходимостью удовлетворять искомые кривые.
Третий момент связан с именем Жозефа Лагранжа, который
в 1759 году опубликовал первую работу, где были отражены новые
идеи по развитию методов поиска экстремумов. Ж. Лагранж ввел
понятие вариации функционала, обобщающее понятие первого
дифференциала в математическом анализе. Он достаточно строго
для своего времени вывел дифференциальное уравнение, полученное ранее, и присвоил ему имя Л. Эйлера. Именно после публикации Ж. Лагранжем результатов своих исследований Л. Эйлер предложил назвать новый раздел математики «вариационным исчислением».
В XVIII и XIX веках вариационное исчисление развивалось усилиями таких выдающихся математиков, как Михаил Васильевич
Остроградский, Карл Гаусс, Симеон Пуассон, Адриен Лежандр,
Карл Якоби, Давид Гильберт и др.
Идеи и методы вариационного исчисления получили существенное развитие в XX веке. Здесь прежде всего следует отметить работы,
0 A
x
связанные с обобщенным взглядом
на задачи вариационного исчисления
M
с позиций функционального анализа.
B
Вернемся к задаче о брахистохy
роне, с которой принято связывать
рождение вариационного исчисления. Так Иоганн Бернулли назвал
Рис. 4.1. Задача Бернулли
кривую, двигаясь вдоль которой под
о брахистохроне
104
действием собственной тяжести, тело пройдет путь от точки А до
точки В за кратчайшее время (рис. 4.1). Кривая наискорейшего спуска или брахистохрона оказалась дугой циклоиды (такую кривую
описывает точка, находящаяся на ободе катящегося колеса).
Вот как эту задачу сформулировал сам И. Бернулли.
В вертикальной плоскости даны две точки А и В. Определить путь АМВ, спускаясь по которому под действием собственной тяжести из точки А, тело М достигнет точки В
в кратчайшее время.
На полвека ранее над похожей задачей размышлял Галилео
Галилей (1564–1642). Он изготовил медные желоба в форме дуги
окружности, которые ставил под разными углами к горизонту, и измерял время спуска шаров по этим желобам, сравнивая это время со
временем спуска шарика по прямому желобу.
При этом Галилей обнаружил, что время скатывания шаров по
прямому желобу заметно больше времени скатывания шаров по желобу в форме дуги окружности. По-видимому, Галилей считал оптимальной кривой дугу окружности.
Приведем математическую формулировку задачи о брахистохроне. Из школьного курса физики известна формула v = 2gh ,
определяющая вертикальную составляющую скорости падения
тела с высоты h. Дифференциал длины пути s вдоль кривой равен
ds =(dx)2 + (dy)2 =
1 + y′2 dx. Чтобы найти время dt, которое потребуется на прохождение участка длиной ds, надо эту длину разделить на скорость v: dt = ds/v. Проинтегрировав обе части, получим
общее время движения.
Если начало координат поместить в точку А и направить ось у
вниз, как это показано на рис. 4.1, то общее время движения определится формулой
b
T=∫
0
1 + y′2
2gy
dx.
Требуется среди всевозможных кривых y = f(x), соединяющих
точки А и В, найти ту, для которой приведенный функционал принимает наименьшее значение.
Это – типичная задача вариационного исчисления, ее решение
приведено в подп. 4.2.2. Стандартная техника отыскания экстремальных кривых в подобных задачах опирается на составление и
105
решение дифференциального уравнения Эйлера – основного уравнения вариационного исчисления.
4.2. Безусловная оптимизация. Уравнение Эйлера
4.2.1. Вывод уравнения Эйлера
Аналитическое решение конечномерных экстремальных задач
сводилось к нахождению корней одного или нескольких алгебраических уравнений. Подобно этому решение бесконечномерных экстремальных задач сводится к составлению и решению одного или
нескольких дифференциальных уравнений. Самым известным из
таких дифференциальных уравнений является уравнение Эйлера.
Заметим, что для практического применения достаточно знать само
уравнение Эйлера, поэтому при первом чтении математические тонкости вывода можно пропустить. Простейшая задача вариационного исчисления формулируется следующим образом. Требуется найти кривую y = f(x), проходящую через две заданные точки A(x0, y0),
В(x1, y1) и доставляющую экстремум функционалу
J=
x1
∫ F(x, y, y′)dx. (4.1)
x0
Для решения попытаемся, как и в случае задач параметрической
оптимизации, воспользоваться принципом Ферма, согласно которому для отыскания экстремума надо взять производную и приравнять ее нулю.
Обозначим через y = f(x) искомую экстремальную кривую и рассмотрим семейство близких к ней кривых, проходящих через точки
А и В: y = y + δy= f (x) + αη(x). Здесь α – малый коэффициент, η(x) –
произвольная функция, обращающаяся в нуль на краях интервала
η(x0 ) =
η(x1 ) =
0 (рис. 4.2, а).
Про функцию δy говорят, что она представляет собой вариацию
функции у. Значения функционала J при разных α определяются
формулой
=
J(α)
x1
∫ F(x, y + αη, y′ + αη′)dx.
x0
(4.2)
Если y = f(x) – экстремальная кривая, доставляющая максимум
данному критерию, то зависимость функционала J от α при малых
α будет иметь следующий вид (рис. 4.2, б).
106
а)
~
y
y
б)
J
B
y
A
x
0
α
Рис. 4.2. Вариации функции (а) и график функционала (б)
При этом в точке α = 0 должно выполняться условие Ферма
Jα′ α=0 = 0. Выражение в левой части этого равенства называется вариацией функционала и обозначается δJ. Дифференцируя обе части
равенства (4.2) по правилу дифференцирования сложных функций
и приравнивая результат нулю, получаем:
x1
=
∫ (Fy′ ⋅ η + Fy′′ ⋅ η′)dx
′
δ=
J J=
α
0.
x0
Здесь Fy′ , Fy′′ – частные производные подынтегральной функции
по второму и третьему аргументу.
Напомним, что производная сложной функции вычисляется по
правилу:
F (g(x))′x = Fg′ gx′ .
Чтобы избавиться от производной η′, применим ко второму слагаемому правило интегрирования по частям:
x1
x1
x0
x0
∫ Fy′′ ⋅ dη = Fy′′η
−
x1
x1
x0
x0
d
∫ ηdFy′′ = − ∫ η dx Fy′′ ⋅ dx.
Напомним, что правило интегрирования по частям заключается
в следующем:
∫ vdu=
uv − ∫ udv.
Первое слагаемое равно нулю, так как
η(x0 ) =
η(x1 ) =
0.
107
С учетом этого равенство для вариации функционала принимает
вид
′
Jα=
x1
d
∫ (Fy′ − dx Fy′′ )ηdx=
0.
x0
Интеграл будет равен нулю при любых функциях η(x) в том и
только в том случае, если выражение в скобках тождественно равно
нулю:
Fy′ −
∂
Fy′′ =
0. ∂x
(4.3)
Это и есть уравнение Эйлера – основное уравнение вариационного исчисления. Оно представляет собой нелинейное дифференциальное уравнение второго порядка, семейство решений которого содержит экстремальную кривую y = f(x).
Полученный результат сформулируем в виде теоремы.
Теорема 4.1. Гладкая кривая y = f(x), доставляющая экстремум функционалу (4.1), удовлетворяет уравнению Эйлера (4.3).
Следует заметить, что уравнение Эйлера не дает окончательного
решения поставленной задачи, а лишь выделяет класс кривых, «подозрительных» на экстремум. Ситуация здесь вполне аналогична
поиску экстремума функции путем ее дифференцирования, когда
экстремум может оказаться либо в одной из точек, где производная
равна нулю, либо на краях интервала.
Выполняя дифференцирование во втором слагаемом, уравнение
Эйлера можно переписать в развернутом виде:
0. Fy′′′y′ y′′ + Fy′′′y y′ + Fy′′′x − Fy′ =
(4.4)
Общее решение этого уравнения y = f(x1, c1, c2) зависит от двух
произвольных постоянных c1 и c2 и задает двухпараметрическое семейство экстремалей. Для определения постоянных c1 и c2 и выделения из семейства экстремалей одной кривой – решения исходной
задачи – используют краевые условия
=
f (x0 ) y=
0 ; f (x1 ) y1.
4.2.2. Частные случаи уравнения Эйлера
Рассмотрим три частных случая уравнения Эйлера, когда подынтегральная функция в функционале (4.1) не зависит от одного
из аргументов.
108
Случай 1. В функционал не входит производная y′:
J=
x1
∫ F(x, y)dx.
x0
Тогда в левой части уравнения Эйлера (4.3) остается только один
член, и оно имеет вид Fy′ = 0. В этом случае правило Ферма (взять
производную и приравнять нулю) применяется непосредственно
к подынтегральному выражению критерия. Уравнение Fy′ = 0 – алгебраическое, поэтому учет краевых условий в данном случае невозможен (они не должны входить в постановку задачи).
Пример 4.1. Дана функция g(t), требуется найти функцию у(t),
для которой функционал
=
J
T
∫ y(t) (y(t) + g(t))dt
0
достигает минимального значения.
Решим этот пример тремя способами: с помощью уравнения Эйлера, с помощью скалярного произведения функций и с помощью
неравенства.
Способ 1. Уравнение Эйлера. Дифференцируя подынтегральное
выражение по у, получаем уравнение Fy′ = 0 :
2y(t) + g(t) = 0, y = –0,5g(t).
Следовательно, минимум функционала равен
J0 = −
T
1 2
g (t)dt.
4∫
0
Способ 2. Принцип Ферма. Тот же результат можно получить,
используя стандартное обозначение для скалярного произведения
функций
T
< x, y >= ∫ x(t)y(t)dt.
0
Записывая функционал как J =< y, (y + g) >=< y, y > + < g, y >
и дифференцируя его по обычным правилам, получим 2y + g = 0,
y = –0,5g.
Способ 3. Преобразование функционала. Этот вариант решения
не использует ни дифференцирования, ни принципа Ферма. Пре109
образуем подынтегральное выражение, выделив в нем полный квадрат:
=
J
T
2
∫ (y + yg +
0
1 2 1 2
g − g )dt
=
4
4
T
T
T
0
0
0
1 2
1 2
1 2
∫ (y + 2 g) dt − ∫ 4 g dt ≥ − 4 ∫ g dt.
Полученное неравенство – точное. Знак равенства в нем достигается, когда первый интеграл обращается в нуль, т. е. при y = – 0,5g. При
этом сам функционал J принимает
минимальное значение:
J0 = −
g
0,5g
t
0
Τ
y = –0,5g
T
1 2
g (t)dt.
4∫
Рис. 4.3. Иллюстрация
примера 4.1
0
Рис. 4.3 поясняет смысл полученного решения. Минимум функционала достигается, когда сомножители в подынтегральном выражении
=
J
T
∫ y(t) (y(t) + g(t))dt
0
равны по величине и противоположны по знаку.
Случай 2. В функционал не входит переменная у:
J=
x1
∫ F(x, y′)dx.
x0
d
Fy′′ = 0. Если, кроме
dx
того, подынтегральное выражение не зависит явно от х, то в уравнении Эйлера (4.4) остается только первое слагаемое, и оно принимает
вид y′′ = 0. В этом случае все экстремали – прямые: y = c1x + c2.
Пример 4.2. Кратчайшее расстояние. Найти кривую кратчайшей
длины, соединяющую на плоскости две точки A(x0, y0), В(x1, y1).
Решение. Длина кривой определяется интегралом
Тогда уравнение Эйлера (4.3) имеет вид
=
J
x1
∫
1 + y′2 dx, (4.5)
x0
как это было показано выше при описании задачи о брахистохроне.
110
Подынтегральное выражение зависит только от y′, поэтому уравнение Эйлера имеет вид y′′ = 0, т. е. y = c1x + c2. Постоянные c1, c2 находим из краевых условий:
c1x0 + c2 = у0; c1x1 + c2 = у1,=
откуда c1
y1 − y0
x1y0 − y1x0
; c2
.
=
x1 − x0
x1 − x0
Вычисляя интеграл (4.5), получаем известную формулу расстояния между двумя точками:
J = 1 + c12 ( x1 − x0 ) =
( x1 − x0 )2 + ( y1 − y0 )2 .
Случай 3. В функционал не входит переменная х:
J=
x1
∫ F(y, y′)dx.
x0
В этом случае уравнение Эйлера (4.4) принимает вид
′′ ′ y′ − Fy′′′y′ y′′ =
Fy′ − Fyy
0. (4.6)
Его можно проинтегрировать, если предварительно умножить
обе части на y′:
′′ ′ ( y′ )2 − Fy′′′y′ y′y′′ =
Fy′ y′ − Fyy
(
)
d
F − y′Fy′′ = 0, F − y′Fy′′ = c. (4.7)
dx
Пример 4.3. Путь вдоль реки. Вдоль оси х протекает река шириной 2 км с заболоченными берегами. Путнику нужно перейти из
точки А в точку В, отстоящую на 2 км (обе точки находятся на берегу реки (рис. 4.4, а)). Если путник идет вдоль берега, его скорость
А
2 км
y
у
а)
б)
В
х
–1
0
B1
A1
A
B
x
1
–1
0
1
Рис. 4.4. Иллюстрация примера 4.3
111
равна 1 км/ч. По мере удаления от берега почва становится суше
и скорость движения возрастает, изменяясь по закону v = y, где у –
расстояние от середины реки.
По какой траектории должен двигаться путник, чтобы попасть
в точку В за минимальное время? Какова длина этого пути и каков
выигрыш во времени по сравнению с путем вдоль берега?
Решение. Время, затрачиваемое на преодоление бесконечно малого участка пути, определяется формулой
ds
=
v
dt
=
1 + y′2
y
dx.
Общее время движения Т находим интегрированием
x1
1
∫y
=
T
1 + y′2 dx. (4.8)
x0
Если ось у провести через середину отрезка АВ, то х0 = –1 км,
х1 = 1 км, задача сводится к отысканию экстремали функционала
=
J
1
1
∫y
1 + y′2 dx,
−1
проходящей через точки А (–1, 1), В (1, 1).
В данном случае
1
y′
F =1 + y′2 ; Fy′′ =
y
y 1 + y′2
и в соответствии с уравнением (4.7) имеем
cy 1 + y′2 =
1.
Возводя в квадрат, разделяя переменные и снова извлекая корень из обеих частей уравнения, получаем
dx
=
cydy
2 2
1− c y
,
2
c1 ) + y2
( x +=
1
c2
.
Из краевых условий находим с1 = 0, с2 = 1/2. Следовательно, искомая кривая – дуга окружности x2 + y2 = 2, центр которой расположен в начале координат (рис. 4.4, б). Угол АОВ – прямой, т. е. длина
пути составит четверть окружности
112
πR π 2
=
≈ 2,22 км.
2
2
Это примерно на 11% длиннее, чем путь по берегу.
Чтобы выяснить, каков выигрыш во времени, вычислим интеграл (4.8), подставив в него х0 = –1, х1 = 1,
=
S
x2
y =R 2 − x2 , y′2 =2
, R2 =
2:
2
R −x
1
1
1 R+x
T= ∫
= ln
= 2 ln 1 + 2 ≈ 1,762. 2 2 2
R−x
−1 R x
−1
Rdx
(
)
(4.9)
Путь вдоль берега занял бы 2 часа, поэтому выигрыш во времени
составляет около четверти часа, т. е. примерно 12%.
Заметим, что точно такое же время
=
T 2 ln 1 + 2 займет путь
по дуге любого радиуса R, заключенной между лучами ОА и ОВ, например по дуге А1В1 (рис. 4.4, б). Наличие такого инварианта следует из формулы (4.9), поскольку одновременное увеличение R, x0, x1
в одинаковое количество раз не изменяет отношения (R + xi)/(R + xi).
Пример 4.4. Управление интегратором. Требуется найти входной сигнал u(t) для перевода интегратора из начального состояния
x(0) = x0 в нулевое конечное состояние, обеспечивающий минимум
функционала
(
∞
=
J(u)
∫ (a
0
2 2
)
)
x + b2u2 dt.
Техническая интерпретация этой задачи – управление скоростью (задача об остановке корабля, ракеты или иного транспортного
средства). В этом случае х0 – это начальная скорость, которую надо
погасить, прикладывая тормозящую силу u.
Решение. Учитывая равенство x = u, перепишем подынтегральное выражение в стандартной форме
=
F a2 x2 + b2 x 2 . В данном слу2
2
=
a x, Fx′ 2b x , и уравнение Эйлера (4.3) имеет вид
чае Fx′ 2=
 − a2 x =
b2 x
0.
c1e−kt + c2ekt , k =
a / b. С учетом краеЕго общее решение x(t) =
вых условий получаем c1 = х0, c2 = 0, откуда
x=
x0 e−kt , u =
−kx0 e−kt , J =
abx02 .
113
Тот же результат можно было получить с помощью уравнения
(4.7):
a2 x2 + b2 x 2 − x 2bx =
c.
Постоянная c равна нулю, поэтому a2 x2 = b2 x 2 или x = ±kx.
Краевые условия удовлетворяются только при знаке минус, откуда
x = x0 e−kt .
Приведем еще один способ решения, не требующий знания вариационного исчисления. Для этого преобразуем исходный функционал к виду
∞
∞
2
 .
J=
∫ ( ax + bx ) dt − ∫ 2abxxdt
0
0
Вычисляя второе слагаемое
∞
∞
∞
0
0
0
dx
− ∫ 2abx
dt =
− ∫ 2abxdx =
−abx2 =
abx02 ,
dt
получаем
∞
2
2
J=
∫ ( ax + bx ) dt + abx0 .
0
Минимальное значение функционала J = abx02 достигается при
ax + bx =
0, откуда x = x0 e−kt u = x = −kx0 e−kt .
Замечание 1. Оптимальное управление в этом примере минимизирует взвешенную суммарную энергию входного и вы=
E a2 Ex + b2 Eu , где под энергией сигнала f(t)
ходного сигналов
∞
понимается величина Ef = ∫ f 2dt. Минимум достигается, когда
0
вклад обоих слагаемых в суммарную энергию оказывается одинаков. Этот вывод справедлив при любых соотношениях между
коэффициентами а и b (проанализируйте самостоятельно случаи
a / b → 0, b / a → 0, b =
a=
1).
Замечание 2. Полученное решение u = −kx0 e−kt представляет собой оптимальное программное управление. Для его реализации нужен специальный генератор экспоненциального входного сигнала
(рис. 4.5, а).
Гораздо удобнее реализовать то же самое управление с помощью обратной связи, формируя сигнал u(t) на основе выходного
114
а)
kx0
1
x0
u
б)
x
1
p +k
x0
1
u
p
x
p
–k
Рис. 4.5. Два способа формирования управления
сигнала интегратора (они отличаются только постоянным множителем –a/b). В результате приходим к схеме с отрицательной обратной связью (рис. 4.5, б).
Аналогичный прием часто удается использовать и для более
сложных объектов, заменяя оптимальное программное управление
эквивалентным по обратной связи.
Пример 4.5. Приведем решение задачи о брахистохроне, сформулированной в разделе 4.1.1.
В ней требуется среди кривых, соединяющих две заданные точки А и В (рис. 4.1) найти кривую наискорейшего спуска, т. е. ту, для
которой функционал времени
2
=
T
b
1 + y′2
=
∫ 2gy dx
a
b
∫
a
 dy 
1+ 

 dx 
=
dx
2gy
2
∫
2
 dx   dy 

 +

 dt   dt 
dt
2gy
принимает наименьшее значение.
Используя последний вариант записи функционала, составим
уравнение Эйлера по переменной х(t). Отбрасывая постоянный мно1
житель
как несущественный, получаем
2g
=
F
x 2 + y 2
=
; Fx′ 0=
, Fx′
y
1
y
x
x 2 + y 2
.
d
Fx′ = 0, откуда пуСледовательно, уравнение Эйлера имеет вид
dt
тем интегрирования находим
x 2
y(x 2 + y 2 )
= c1.
115
0
A
–0,5
y
–1
–1,5
–2
B
0
1
2
3
4
5
x
6
7
8
9
10
Рис. 4.6. Циклоида и решение задачи о брахистохроне
После очевидных преобразований получаем
  y 2  1

y 1 +   =
, y(1 + yx′2=
) c.
  x   c1


Мы пришли к нелинейному дифференциальному уравнению
первого порядка относительно функции у(х). Решим его, разделяя
переменные:
c
dy
c−y
y
− 1;
= ; dx = dy.
y′2 =
y
dx
y
c−y
Выполним интегрирование, сделав подстановку y = c sin2t:
x
=
∫
sin2 t
2
cos t
dc sin
t 2c ∫ sin2=
tdt
=
c
(2t − sin 2t ).
2
Здесь сделаны замены
d(c sin2 t) = 2c sin t cos tdt и 2 sin2 t= 1 − cos 2t.
Мы получили параметрическое описание искомой кривой. Его
удобно записать в форме
x= a(τ − sin τ), y= a(1 − cos τ),
c
,=
τ 2t.
2
Это классические уравнения циклоиды. На рис. 4.6 приведен
график циклоиды, построенный для а = 1 и 0 ≤ t ≤ 3π. Жирным выделена часть кривой при 0≤t≤π, соединяющая точки А и В и дающая
решение оптимизационной задачи.
a
где =
116
4.2.3. Подвижные границы и условия трансверсальности
Основная задача вариационного исчисления – найти кривую
y = f(x), доставляющую экстремум функционалу
J=
x1
∫ F(x, y, y′)dx.
x0
При этом левая и правая точки кривой x1 и x0 могут быть фиксированными, как в рассмотренной выше простейшей задаче вариационного исчисления, свободными или могут лежать на заданных
кривых. В последнем случае говорят о вариационной задаче с подвижными границами.
Перечислим основные варианты краевых условий.
Начальная А и конечная В точки кривой фиксированны
(рис. 4.7, а), т. е. заданы их координаты A(x0, y0), В(x1, y1).
Начальная точка А фиксированна, конечная должна находиться
на заданной кривой y = ψ(x) (рис. 4.7, б). В этом случае координаты
(x1, y1) точки В не известны, но они должны удовлетворять равенству y1 = ψ(x1).
Начальная точка А находится на кривой y = ϕ(x), конечная точка
В – на кривой y = ψ(x) (рис. 4.7, в).
а)
б)
y
y1
B1
B
B2
y0
y0
A
y
A1
A2
A3
x
x0
x1
г)
ψ
ϕ
B3
A
x
x0
в)
ψ
y
y
B1
B1
B2
B3
B2
y0
x
B3
A
x0
x
x1
Рис. 4.7. Варианты краевых условий
117
Один из концов кривой (или оба) свободен. В этом случае координаты х0 и x1 заданы, у1 (или у1 и у0) может принимать любые значения. Очевидно, что это частный случай варианта (б или в), когда
одна из функций ψ(x), ϕ(x) (или обе) имеет вид вертикальных прямых (рис. 4.7, г).
Во всех случаях функция y = f(x) должна удовлетворять уравнению Эйлера
d
Fy′ −
Fy′′ =
0.
dx
Его более подробная запись имеет вид (4.4)
0.
Fy′′′y′ y′′ + Fy′′′y y′ + Fy′′′x − Fy′ =
Это нелинейное дифференциальное уравнение второго порядка,
регулярных аналитических методов решения таких уравнений не
существует.
К числу исключений относятся задачи, в которых в качестве
функционала (4.1) выступает длина кривой y = f(x), т. е. функционал
имеет вид
=
J
x1
∫
1 + y′2 dx.
x0
К минимизации такого критерия сводятся разнообразные задачи о расстоянии между точками, прямыми и кривыми (пример 4.2).
Уравнение Эйлера (4.3) в этом случае принимает простой вид
y′′ = 0, его решения (экстремали) – прямые линии y = c1x + c2. Это
соответствует очевидному геометрическому факту, что кратчайшие
пути на плоскости – отрезки прямых, коэффициенты c1, c2 в каждом из вариантов краевых условий находятся по-своему.
Для варианта с фиксированными концами они определяются из
системы линейных уравнений: y0 = c1x0 + c2; y1 = c1x1 + c2, откуда
c1
=
y1 − y0
x1y0 − y1x0
; c2
.
=
x1 − x0
x1 − x0
В результате получаем хорошо известное уравнение прямой линии, проходящей через две заданные точки:
y1 − y0
x y −y x
y
x+ 1 0 1 0.
=
x1 − x0
x1 − x0
118
Иногда его удобнее записывать в виде определителя
x
x0
x1
y 1
y0 1 = 0.
y1 1
При других вариантах краевых условий дело обстоит сложнее,
и для определения постоянных c1, c2 привлекают так называемые
условия трансверсальности.
Теорема 4.2. Пусть гладкая кривая y = y(x) доставляет экстремум функционалу J = ∫ F (x, y, y′)dx среди всех кривых,
соединяющих две произвольные точки двух данных кривых
y=
ϕ(x) è y =
ψ(x). Тогда она является экстремалью, и в ее
концах A(x0, y0), В(x1, y1) выполняются условия трансверсальности
[F + (ϕ′ − y′) Fy′′ ]
x = x0
[F + (ψ ′ − y′) Fy′′ ]
x = x1
=0,
(4.10)
=0.
Доказательство, как и в случае теоремы 4.1, основано на приравнивании нулю вариации функционала δJ. Проведем его для второго
из условий (4.10), считая точку А неподвижной δx0 = 0, а точку В –
перемещающейся по кривой ψ(x). Тогда общая формула для вариации функционала будет иметь вид
=
δJ
x1
∫
x0
d


Fy′′ ηdx + Fy′′ δy x +
 Fy′ −
1
dx


x1 +δx1
∫
Fdx.
x1
Первые два слагаемых получены, как и в теореме 1, интегрированием по частям, причем внеинтегральный член уже не равен нулю.
Последнее слагаемое учитывает
приращение функционала на интер- y
вале от х1 до x1 + δx1 и по теореме
В′
С
y(x)+δy
о среднем равно Fδх1. Вариация δy
D ψ′ δx1
δy
при х = х1 определяется формулой
В
Е
y(x) ψ
δy x= ( y′δx − ψ ′δx ) (рис. 4.8).
1
x1
Кривая АСВ′ получена вариацией кривой АВ, при этом точка В,
перемещаясь по кривой ψ, перехо-
А
x
x0
x1
x1+δx1
Рис. 4.8. Вариация δy
119
дит в точку B′ с координатами ( x1 + δx1, y1 + ψ ′δx1 ). Вариации δy
при x = x1 соответствует отрезок ВС, длина которого равна разности
длин отрезков B′E и B′D, т. е. ψ ′δx1 − y′δx1. С учетом сказанного выражение для вариации функционала принимает вид
=
δJ
x1

d

∫  Fy′ − dx Fy′′ ηdx + ( y′ − ψ′) Fy′′ x1 δx1 + F x1 δx1.
x0
Для того чтобы оно равнялось нулю при любых η(х) и δх1, необходимо и достаточно выполнения равенств
d
Fy′ − =
Fy′′ 0,  F + ( ψ ′ − y′ ) Fy′′  = 0.
x = x1
dx
Первое из них совпадает с уравнением Эйлера (4.3), а второе
представляет собой одно из условий трансверсальности (4.10). Доказательство на левом конце проводится аналогично.
Отдельно отметим частный случай свободного правого конца
при фиксированном интервале (x0, x1). Он получится, если кривая
ψ будет иметь вид вертикальной прямой, проходящей через точку
∞, и условие трансверсальности
x1 (рис. 4.7, г). В этом случае ψ ′ x =
1
принимает вид Fy′′ = 0.
x1
Таким образом, для решения задачи с подвижными границами
надо:
1. Написать и решить уравнение Эйлера (4.3). В результате получим семейство экстремалей y = f(x, c1, c2), зависящее от двух параметров c1 и c2.
2. Определить постоянные c1, c2, x0, x1 из условий трансверсальности (4.10) и из уравнений
(4.11)
f (x0 , c1, c2 ) =
ϕ(x0 ), f (x1, c1, c2 ) =
ψ(x1 ). 3. Вычислить экстремум функционала (4.1).
4.2.4. Задачи о минимальном расстоянии
В качестве иллюстрации применения изложенного алгоритма
рассмотрим задачу об отыскании минимального расстояния между
двумя плоскими кривыми у = ϕ(x) и у = ψ(x) (рис. 4.7, в). Обозначим
концы произвольного отрезка АВ, соединяющего эти кривые, через
A(x0, y0) и В(x1, y1). Их координаты должны удовлетворять условиям
у0 = ϕ(x0); у1 = ψ(x1).
120
Нам нужно из всех прямых на плоскости x, y выбрать ту, для которой квадрат расстояния
2
J=
ρ2 ( A, B) =
(x1 − x0 )2 + (y1 − y0 )=
(x1 − x0 )2 + (ϕ(x1 ) − ψ(x0 ))2
минимален. Дифференцируем критерий по x0 и x1 и выписываем
=
Jx′
0,=
Jx′
0:
условия экстремума
0
1
2(x1 − x0 ) + 2(y1 − y0 ) ⋅ ϕ(x0 ) = 0,
2(x1 − x0 ) + 2(y1 − y0 ) ⋅ ψ ′(x1 ) = 0.
Это и есть условия трансверсальности для данной задачи. Их
можно преобразовать к виду
x − x0
.
ϕ′(x0 ) =
ψ ′(x1 ) =
− 1
y1 − y0
Напомним, что геометрический смысл производной в некоторой
точке – тангенс угла наклона касательной к функции в этой точке,
следовательно, в оптимальном случае касательные к кривым ϕ(x) и
ψ(x) в точках А и В параллельны и имеют угловой коэффициент наx − x1
. С другой стороны, угловой коэффициент наклона
клона k = 0
y1 − y0
y −y
прямой y = c1x + c2, проходящей через точки А и В, равен c1 = 1 0 ,
x1 − x0
1
т. е. c1 = − .
k
Таким образом, экстремальная прямая должна быть одновременно ортогональна обеим кривым ϕ(x) и ψ(x). Таков геометрический смысл условия трансверсальности в задаче о минимальном
расстоянии между двумя кривыми. Можно показать, что этот результат сохраняется и для более широкого класса функционалов,
когда подынтегральное выражение в формуле (4.5) домножается на
произвольную функцию g(x, y).
Пример 4.6. Найти расстояние между параболой y = x2 и прямой
x – y = 5.
Решение.
Способ 1. Приведем сначала элементарное решение этой задачи.
Рассмотрим произвольный отрезок АВ, соединяющий параболу
y = ϕ(x) и прямую y = ψ(x) (рис. 4.9). Квадрат его длины определяется
формулой
L =ρ2 =(x0 − x1 )2 + (y0 − y1 )2 =(x0 − x1 )2 + (x02 − x1 + 5)2 ,
121
10
где (x0, y0), (x1, y1) – координаты точек
А, В.
Дифференцируя по x0 и x1 и приравнивая производные нулю, получаем два уравнения:
у
5
А
–10
–5
0
B
5
10
х
Lx′ 0= 2(x0 − x1 ) + 2(x02 − x1 + 5)2x0= 0,
−2(x0 − x1 ) − 2(x02 − x1 + 5) =
Lx′ 1 =
0.
–5
Рис. 4.9. Поиск кратчайшего
расстояния между прямой
и параболой
Выражая 2х1 из второго уравнения 2x1 = x02 + x0 + 5 и подставляя это
в первое уравнение, получаем кубическое уравнение
2x03 − 3x02 + 11x0 − 5 =
0.
Оно имеет единственный вещественный корень x0 = 1/2. Ему отвечает значение x1 = (x02 + x0 + 5) / 2 = 23 / 8. Мы нашли абсциссы точек А и В, ординаты получаем из уравнений кривых:
y0 = x02 = 1 / 4, y1 = −7 / 8.
361 / 32,
Подставляя эти значения в формулу для L, находим ρ2 =
т. е. ρ =19 2 / 8 ≈ 3,36.
Способ 2. Получим то же решение с помощью вариационного исчисления. Общее решение уравнения Эйлера будет иметь
вид y = c1x + c2, где c1 и c2 – произвольные постоянные, которые
предстоит определить. Кроме того, имеем уравнения кривых:
ϕ(x) =x2 , ψ(x) =x − 5.
Выписываем условия трансверсальности (4.10):

 1 + y′2 + (2x − y′) y′

1 + y′2


y′
 1 + y′2 + (1 − y′)

1 + y′2



=
0,

 x = x0


=
0,

 x = x1
где y′ = c1.
Уравнения (4.11) в нашем случае принимают вид
c1x0 + c2 = x02 , c1x1 + c2 = x1 − 5.
122
Таким образом, имеем систему четырех уравнений относительно
четырех неизвестных c1, c2, x0, x1:
c1
1 + c12 + (2x0 − c1 ) =
0, c1x0=
+ c2 x02 ,
2
1 + c1
c1
1 + c12 + (1 − c1 )
1 + c12
= 0,
c1x1 + c2 = x1 − 5,
решая которую, получим: c1 = –1, c2 = 3/4, x0 = 1/2, x1 = 23/8.
Значит, уравнение экстремали имеет вид y =−x + 3 / 4, и расстояние между заданными параболой и прямой равно
23
8
∫
L
=
2
1 + (−1) =
dx
1
2
23
8
2 x=
1
2
19 2
.
8
Выясним, какой угол образует отрезок АВ с касательной
к параболе y = x2. Координаты точки А (1/2, 1/4). Находим производную от параболы в этой точке:
=
y′ 2=
x 1 2 1. Таким образом, касательная к параболе в точке А параллельна прямой
y = х – 5, а отрезок АВ перпендикулярен сразу и прямой, и параболе.
Пример 4.7. Найти кратчайшее расстояние от точки А(1, 0) до эллипса 4x2 + 9y2 = 36.
Решим эту задачу несколькими способами.
Способ 1. Построение вписанной окружности.
Рассмотрим окружность малого радиуса с центром в точке
А(1, 0) и будем постепенно увеличивать радиус до тех пор, пока
окружность не коснется эллипса в точках B и B′ (рис. 4.10). Очевидно, что радиус R0 этой окружности и будет являться ответом на вопрос о кратчайшем расстоянии.
Таким образом, имеем систему
у
уравнений
C 2
2
R0
2
4x + 9y =
36,
2
2
2
(x − 1) + y =
R .
–3
А
В′
х
3
В
Очевидно, что при R < R0 эта систеC′ –2
ма не имеет вещественных решений
(эллипс и окружность не пересекают- Рис. 4.10. Задача о расстоянии
ся), при R > R0 окружность и эллипс
от точки до эллипса
123
будут иметь четыре точки пересечения, а при R = R0 появляются
кратные вещественные корни (по два на каждую точку касания эллипса и окружности).
Вычитаем из первого уравнения второе, умноженное на 9:
4x2 − 9(x − 1)2 =36 − 9R 2 или
5 2
x − 2x + 5 − R 2 =
0.
9
Приравниваем дискриминант квадратного уравнения нулю
(именно в этом случае уравнение имеет кратные корни):
5
16
1 − 5 − R2 =
0 ⇒ R2 = =
3,2.
9
5
(
)
Следовательно, искомое минимальное расстояние от точки A до
R0 4 / 5 ≈ 1,79. Подставляя это значение в кваэллипса равно=
дратное уравнение, находим координаты точек В и B′:
5 2
9
9
8
0 x1,2 = ,
x − 2x + =⇒
y1,2 =
± .
9
5
5
5
Заметим, что из рис. 4.10 вытекает ортогональность отрезка АВ
и касательной к эллипсу в точке В, так как в этой точке касательные к окружности и эллипсу совпадают. Именно этот факт лежит
в основе следующего способа вычисления требуемого расстояния.
Способ 2. Использование условия ортогональности отрезка АВ
к касательной.
Обозначим координаты ближайшей точки В эллипса к точке
А(1, 0) через х1, у1 и запишем уравнение прямой, проходящей через
эти точки:
y= k1 (x − 1) ⇒ k1= y1 / (x1 − 1).
Найдем угловой коэффициент k касательной к эллипсу в точке
В, продифференцировав обе части уравнения эллипса:
8x + 18yy′ =
0 ⇒ y′ =
−
4x
4x
⇒k=
− 1.
9y
9 y1
Из условия ортогональности прямой АВ и касательной к эллипсу
в точке В (оно имеет вид kk1 = –1) получаем:
y1
x1
4x
9
9
kk1 =
− 1
=
−1, откуда =
=
, x1
.
9 y1 x1 − 1
x1 − 1 4
5
124
Из уравнения эллипса находим y1 = ±8 / 5, следовательно:
k1 =
±2, k =
1 / 2, | AB |=
4 / 5.
Заметим, что прямые y =
±2(x − 1) пересекают эллипс еще и в точках С(0, 2) и С′(0, –2). Отсюда вытекает простой геометрический способ отыскания точек В и B′.
Способ 3. Условный экстремум – метод Лагранжа.
Расстояние от точки А(1, 0) до произвольной точки В(х, у) описывается формулой=
ρ
(x − 1)2 + y2 . Выбирая в качестве минимизируемого критерия квадрат этого расстояния, получаем задачу на
условный экстремум:
J =(x − 1)2 + y2 → min, 4x2 + 9y2 =36.
Формируем составной критерий:
L= (x − 1)2 + y2 + λ(4x2 + 9y2 − 36),
где λ – множитель Лагранжа.
Приравниваем нулю производные Lx′ и Ly′ :
Lx′ = 2(x − 1) + 8λx = 0, Ly′ = 2y + 18λy = 0,
откуда λ = –1/9, х = 9/5. Далее из уравнения эллипса находим y = ±8/5
и вычисляем ρ = 4 / 5 ≈ 1,79.
Замечание. В действительности в рассмотренной задаче есть два
экстремальных решения, соответствующих минимальному и максимальному расстоянию от точки А до эллипса. Одно из них мы
«потеряли», когда рассматривали уравнение (1 + 9 λ) y = 0. Оно имеет решения λ = – 1/9 и у = 0, второе приводит нас к точке эллипса
(–3, 0), наиболее удаленной от точки (1, 0). Проанализируйте два
предыдущих способа решения и в каждом из них укажите место,
где было «потеряно» второе решение.
Способ 3а. Безусловный экстремум – метод Ферма.
Выражая у2 из уравнения эллипса и подставляя его в критерий
J, получим задачу на безусловный экстремум:
J =(x − 1)2 +
(
)
1
36 − 4x2 → min.
9
Приравнивая производную нулю, находим
8
9
2(x − 1) − x= 0, x= .
9
5
125
Способ 3б. Безусловный экстремум – метод неравенств.
Этот результат можно получить и без дифференцирования, преобразовав критерий путем выделения полного квадрата к виду
5 2
x − 2x +=
5
9
J
=
2
 5
9  16
16
x−
⇒J≥ .

 +
9
5
5
5


Минимальное значение J = 16/5 достигается, когда выражение
в скобках обращается в нуль, т. е. при х = 9/5.
Cпособ 4. Уравнение Эйлера и условие трансверсальности.
С точки зрения вариационного исчисления требуется найти линию, правый конец которой закреплен в точке А(1, 0), а левый лежитx на эллипсе 4x2 + 9y2 = 36, доставляющую минимум критерию
1
∫
=
J
1 + y′2 dx.
1
Выписывая уравнение Эйлера и решая его, убеждаемся, что экстремали образуют пучок прямых y = k(x–1), проходящих через точку А. Для определения неизвестного коэффициента k воспользуемся
условием трансверсальности
F + ( ϕ′ − y′ ) Fy′′
x1
=0.
В нашем случае
1 + y′2 ,
F=
ϕ
=
8
9 − x2 ,
9
y
= k(x − 1),
откуда
ϕ′ =−
4x
k
, y′ =k, Fy′′ = , F = 1 + k2 , ϕ(x1 ) =y(x1 ).
9ϕ
F
Подставляя эти значения в условие трансверсальности и преобразуя его, получаем
4 kx1
F2 −
− k2 =0 ⇒ 9y1 =4kx1.
9 y1
Рассматривая последнее уравнение вместе с равенством y1 = = k(x1–1), заключаем, что 9(x1–1) = 4x1, откуда находим x1 = 9/5. Далее несложно определить остальные неизвестные: y1 =
±8 / 5, k =
±2.
Искомое расстояние находим путем интегрирования:
J
=
9/5
∫
1
126
1 + k2 d=
x
9 
5  − 1=
 4 5 / 5.
5 
4.3. Безусловная оптимизация. Уравнение Эйлера – Пуассона
Естественное обобщение простейшей задачи вариационного исчисления состоит в увеличении числа производных, от которых зависит подынтегральная функция в критерии (4.1), т. е. в рассмотрении функционала
=
J
x1
∫ F(x, y, y′, …, y
(n)
)dx. (4.12)
x0
В случае задачи с фиксированными концами в каждой из граничных точек x0, x1 кривой y(x) задаются n условий:
=
y(x0 ) y=
y(n −1) (x0 ) y0(n-1) ;
0 ; y′(x0 ) y0′ ;  ; =
(n −1)
=
y(x1 ) y=
(x0 ) y1(n-1) . 1; y′(x1 ) y1′ ;  ; y=
1
(4.13)
Основной результат по решению оптимизационной задачи с критерием (4.12) состоит в следующем.
Теорема 4.3. Гладкая кривая у(х), доставляющая экстремум
функционалу (4.12), удовлетворяет уравнению
Fy′ −
n
d
d2
n d
Fy′′ +
Fy′′′ −  − ( −1)
F ′(n) =0.
dx
dx2
dxn y
(4.14)
Это уравнение называется уравнением Эйлера – Пуассона и представляет собой обыкновенное дифференциальное уравнение порядка 2n. При n = 1 уравнение Эйлера – Пуассона переходит в обычное
уравнение Эйлера.
Доказательство теоремы основано, как и ранее, на приравнивании нулю вариации функционала (4.12):
=
δJ
x1
(n)
∫ (Fy′ η + Fy′′η′ +…+ Fy′(n) η
=
)dx 0. (4.15)
x0
Многократное интегрирование по частям приводит к равенству
x1
∫
x0
(Fy′ −
d
dn
Fy′′ +…+ (−1)n
F ′(n) )ηdx = 0,
dx
dxn y
из которого, с учетом произвольности функции η(x), непосредственно следует уравнение Эйлера – Пуассона (4.14). При этом все
внеинтегральные члены, возникающие при интегрировании по частям, равны нулю в силу краевых условий (4.13).
127
Для отыскания экстремали сначала следует найти общее решение уравнения Эйлера – Пуассона (4.14), оно будет зависеть от 2n
произвольных постоянных. Для их определения используют 2n
краевых условий (4.13).
Если в исходной задаче на границе задано меньше, чем 2n краевых условий, то в общем решении уравнения Эйлера – Пуассона
останутся свободные постоянные. В таком случае надо найти вариацию функционала (4.15), преобразовать ее, выполнив n-кратное
интегрирование по частям, и, приравняв нулю, получить недостающие условия на границе.
Пример 4.8. Движение материальной точки под воздействием
 = u. Найти закон управления
силы u(t) описывается уравнением x
u(t), переводящий точку из положения х(0) = 0 в положение х(1) = 1
1
и минимизирующий функционал J = ∫ u2dt (энергию управления).
0
Начальная скорость точки равна x (0) = −5.
Решение. Уравнение Эйлера – Пуассона (3.14) для функционала
1
2dt
J = ∫x
0
(4)
имеет вид x (t) = 0. Его общее решение x(t) =c1 + c2t + c3t2 + c4t3
содержит четыре произвольных постоянных, в то время как задаче
задано только три краевых условия:
=
x(0) 0=
, x(1) 1=
, x (0) 5.
Используя их, устанавливаем, что с1 = 0, с2 = –5, с3 + с4 = 6.
Для получения недостающего условия находим вариацию функционала
δJ =
1
∫ xηdx
0
и дважды выполняем интегрирование по частям:
1
1
1
0
0
0
1
 η 1 − ∫ 
 η − 
δJ = x
x ηdx = x
x η 0 + ∫ x(4) ηdx.
0
Приравниваем вариацию нулю, учитывая, что η(0) = η(1) = 0
(концы закреплены), η (0) =
0 (начальная скорость фиксированна),
(4)
x (t) = 0 (уравнение Эйлера – Пуассона):
(1)η (1)= 0.
δJ= x
128
Отсюда в силу произвольности величины η (1) следует, что
(1) = 0. Это и есть недостающее краевое условие. Используя его,
x
получаем уравнение 2с3 + 6с4 = 0, которое вместе с уравнением
с3 + с4 = 6 позволяет найти коэффициенты:
с3 = –3, с4 = 1.
Окончательно получаем
x(t) =
−5t + 9t2 − 3t3 ;
(t) =
u(t) =
x
18(1 − t).
Таким образом, управление имеет линейный характер и обращается в нуль в конце интервала.
При найденном законе управления функционал энергии принимает минимальное значение J = 81.
Упражнение. Покажите, что если начальную скорость принять равной υ0, то оптимальное управление будет иметь вид
u(=
t) 3(1 − υ0 )(1 − t), а если ее не задавать вообще, то получим u(t) = 0,
J = 0. Объясните последний результат.
4.4. Условная оптимизация. Уравнение Эйлера – Лагранжа
Изопериметрические задачи – это вариационные задачи на условный экстремум, в которых ищется экстремум интегрального
функционала при интегральном ограничении. Простейшая из задач такого типа – найти фигуру с заданным периметром, имеющую
наибольшую площадь, – известна как задача Дидоны. Ее решением
является круг либо его часть, если имеются дополнительные ограничения. Решением трехмерного варианта этой задачи является
сфера – она имеет наибольший объем среди всех тел с заданной площадью поверхности.
Приведем формальную постановку изопериметрической задачи.
Пусть даны две функции F (x, y, y′) и G (x, y, y′). Среди всех кривых у(х), для которых функционал
K=
x1
∫ G(x, y, y′) dx
x0
имеет заданное значение K = l, найти кривую, доставляющую экстремум функционалу
J=
x1
∫ F(x, y, y′) dx.
x0
129
Стандартный рецепт решения изопериметрических задач – метод множителей Лагранжа. Он состоит в переходе к составному
критерию L = J + λK, где λ – множитель Лагранжа, после чего для
функционала L строится уравнение Эйлера.
Пример 4.9. Задача Дидоны.
В римской мифологии есть легенда о Дидоне. После того как брат
Дидоны Пигмалион убил ее мужа, соблазнившись его богатствами, Дидона была вынуждена бежать. Забрав с собой часть сокровищ, она отправилась на запад вдоль берегов Средиземного моря. Ей понравилось
одно место на побережье нынешнего Тунисского залива, и она заключила сделку с берберийским царем Ярбом о продаже земли. По условию
сделки она могла взять столько земли, сколько сможет «окружить
бычьей шкурой». Дидона разрезала шкуру на тонкие ремни, связав
их воедино, и окружила ими изрядный кусок земли. Впоследствии на
этом месте была основана цитадель Карфагена.
Таким образом, царице Дидоне, для того чтобы основать поселение, нужно было с помощью длинной веревки отгородить на берегу
моря как можно больший участок суши (заштрихованная часть на
рис. 4.11, а). Вопрос заключается в том, какая форма участка является оптимальной.
Математическая формулировка задачи сводится к следующему.
Найти линию y = y(x), при условии что y(–a) = y(a) = 0, которая
при заданной длине l > 2a ограничивает вместе с отрезком (–a; a)
оси Ох наибольшую площадь.
Здесь через 2а обозначена длина отрезка АВ (рис. 4.11), начало
координат помещено в его середину.
В зависимости от того, будут ли точки А и В фиксированными
или они могут свободно двигаться вдоль оси х, получаем два варианта задачи Дидоны.
а)
A
0
y
б)
y
B
x
B
A
–a
Рис. 4.11. Задача Дидоны
130
0
a
x
Решение. С точки зрения вариационного исчисления задача заключается в отыскании экстремума функционала
a
∫ y(x)dx,
J=
y(−a)= y(a)= 0
−a
при дополнительном условии, что
a
2
K=
l
(l > 2a).
∫ 1 + y′ (x)dx =
−a
Рассматриваем составной функционал L= J + λK :
=
L
a

∫  y(x) + λ
−a
1 + y′2 (x)  dx. 
(4.16)
Уравнение Эйлера для функционала (4.16) имеет вид


d  λy ′ 
λy ′
= 1, откуда
= x + c1.
2
dx  1 + y′2 
′
+
1
y


Разрешая последнее уравнение относительно y′, находим
x + c1
dy
=
.
2
dx
λ − (x + c )2
1
Разделяя переменные и интегрируя, получим решение в виде алгебраического уравнения
λ2 .
( x + c1 )2 + ( y + c2 )2 =
Оно описывает семейство экстремалей. Для определения постоянных с1, с2 используем граничные условия y(–a) = y(a) = 0. Имеем
c22 =λ2 − (c1 − a)2 ,
откуда c1 = 0, c2 =
c22 =λ2 − (c1 + a)2 ,
λ2 − a2 , так что решение примет вид
x2 + (y + λ2 − a2 )2 =λ2 .
Это уравнение задает семейство окружностей радиуса λ, центры
которых находятся на оси ординат (рис. 4.11, б), а отрезок АВ является их общей хордой.
При фиксированном положении точек А и В и известном значении параметра а экстремальная окружность определяется одно131
значно. Ее радиус λ связан с длиной отрезка АВ соотношением
a
l
= sin . Оно может быть получено чисто геометрически (найти
λ
2λ
радиус по хорде и дуге) либо путем вычисления интеграла
a
x =a
−a
x =− a
λdx
x
a
l=
λ arcsin
=
2λ arcsin .
∫ 2 2=
λ
λ
λ −x
Если точки А, В свободны, т. е. параметр а не фиксирован, то для
выделения экстремальной окружности следует привлечь условия
трансверсальности (4.10).
В данном случае
λy ′
F = y + λ 1 + y′2 , Fy′′ =
, ϕ′ = ψ ′ = 0,
1 + y′2
и подстановка этих выражений в условия трансверсальности
(4.10) дает
λ 1 + y′2 − y′
λy ′
1+ y
′2
x = ±a
= 0
⇒
1
1 + y′2
= 0.
Следовательно, в точках А и В y′ = ±∞, т. е. в своих концах экстремальная дуга ортогональна отрезку АВ (tg90о = ∞). Значит, она
представляет собой полуокружность, описываемую уравнением
x2 + y2 =
λ2 . В этом случае параметры а, λ определяются из соотношений l = πa, λ = a = π/l, и решение задачи Дидоны дается уравнением
x2 + y2 =
( π / l )2 .
4.5. Вариационные задачи оптимального управления
Этот раздел предназначен для читателей, знакомых с основами
теории линейных управляемых систем и такими понятиями, как интеграл свертки, импульсная характеристика, сопряженная система.
Сопряженная система и вариационное исчисление
В теории оптимального управления рассматриваются задачи о
поиске функций, которые обеспечивают экстремальные значения
тех или иных числовых характеристик (критериев) управляемых
процессов при наличии ограничений.
В 1788 году вышел в свет крупный труд Ж. Лагранжа «Аналитическая механика». В нем впервые была поставлена и системати132
чески исследована задача об условном экстремуме в случае, когда
искомые функции должны удовлетворять уравнениям конечных
или дифференциальных связей. Именно это направление служит
основой для теории оптимального управления, где в качестве связей выступают математические модели объектов управления.
При решении задач оптимального управления важную роль
играет понятие сопряженной системы. В то же время в классическом вариационном исчислении это понятие обычно не используется или остается в тени. Покажем, как к нему можно прийти в рамках вариационного исчисления при решении квадратичной экстремальной задачи.
Пусть дана линейная динамическая система, описываемая дифференциальным уравнением n-го порядка
an y(n) + an −1y(n −1) +  + a1y + a0 y =
u. (4.17)
Требуется найти управление u(t), 0 ≤ t ≤ T, переводящее систему
α1, , y(n −1) (0) =
αn
(4.17) из заданного начального состояния y(0) =
(n −1)
β1, , y
(T) =
βn и минимив заданное конечное состояние y(T) =
T
зирующее функционал J = ∫ u2dt (энергию входного сигнала).
0
Вводя в рассмотрение дифференциальный оператор
A ( p=
) an pn +  + a1 p + a0 ,
p=
d
dt
и переписывая функционал в виде
T
2
J = ∫ [ A ( p)y ] dt, (4.18)
0
получаем стандартную задачу вариационного исчисления с закрепленными границами.
Для ее решения нужно выписать уравнение Эйлера – Пуассона
Fy − pFy +  + (− p)n Fy(n) =0.
В нашем случае F = [A(p)y]2, поэтому
=
Fy 2=
a0 A ( p)y, Fy 2a1 A
=
( p)y, , Fy(n) 2an A ( p)y.
133
Подставляя эти выражения в уравнение Эйлера – Пуассона, получаем
(an (− p)n +  − a1 p + a0 ) A ( p)y =
0
или короче
A(–p) A(p)y = 0. (4.19)
Здесь А(–р) – сопряженный дифференциальный оператор. Ему
отвечает сопряженное дифференциальное уравнение
an (−1)n zn +  − a1z + a0 z =
0,
которое отличается от дифференциального уравнения (4.17) знаками при нечетных производных.
Дифференциальное уравнение (4.19) имеет порядок 2n, причем
в него входят только четные производные. Следовательно, корни его
характеристического уравнения симметричны относительно вещественной и мнимой осей одновременно.
Учитывая, что A(p)y = u, уравнение (4.19) можно свести к уравнению порядка n относительно управляющего сигнала
A(–p) u = 0. (4.20)
Таким образом, для установления вида оптимального входного сигнала достаточно решить уравнение (4.20), порядок которого
вдвое меньше по сравнению с уравнением (4.19).
Структурная интерпретация этих уравнений (рис. 4.12) представляет собой последовательное соединение исходной и сопряженной систем. Обратная связь отсутствует, поскольку функционал J
зависит только от входного сигнала u.
Проблема состоит в том, что решение уравнения (4.20) зависит
от n неизвестных произвольных постоянных С1, …, Сn, для определения которых надо знать начальные условия u0, …, u0(n–1), которые
также не известны.
Для их определения возможны три пути. Первый – подставить
T
решение уравнения (4.20) u = u(С1, …, Сn, t) в функционал J = ∫ u2dt,
0
выполнить интегрирование, получить функцию J(С1, …, Сn,) и, приравняв нулю ее производные по С1, …, Сn, найти эти коэффициенты.
134
… u0
(n–1)
u0
1/A(–p)
(n–1)
yT
u
…
yT
y
1/A(p)
Рис. 4.12. Соединение исходной
и сопряженной систем
Второй путь – решить двухточечную граничную задачу (4.19) порядка 2n с известными 2n краевыми условиями.
Третий путь – решить неоднородное дифференциальное уравнение порядка n
А(р)у = u(С1, …, Сn, t) (4.21)
с известными начальными и конечными условиями. Этот путь опирается на каскадное соединение исходной и сопряженной систем
(рис. 4.12) и сводит решение одной задачи порядка 2n к последовательному решению двух задач n-го порядка.
Уравнение (4.17) не содержало производных от входного воздействия. Более общий случай описывается уравнением
 + a0 y bn −1u(n −1) + + b0u an y(n) + + a1y=
(4.22)
или в операторной форме A(p)y = B(p)u.
Как и ранее, будем искать управление u(t), переводящее систему
(4.22) из нулевого начального состояния в заданное конечное состоT
яние и минимизирующее функционал J = ∫ u2dt. Чтобы свести эту
0
задачу к стандартной вариационной формулировке, разобьем уравнение (4.22) на две части
A(p)z = u; (4.23)
y = B(p)z,
(4.24)
где z(t) – вспомогательная переменная.
Выберем эту переменную и ее производные в качестве переменных состояния (использовать для этой цели переменную у и ее производные нельзя из-за наличия в правой части уравнения (4.22) производных от входного воздействия). Тогда конечное состояние систеβ1, , z(n −1) (T) =
βn ,
мы будет характеризоваться значениями z(T) =
которые однозначно рассчитываются по краевым условиям системы, в каком бы базисе они ни задавались. Тем самым задача об
135
управлении системой (4.22) сведена к задаче об управлении вспомогательной системой (4.23), решение которой было изложено выше.
Пример 4.10. Тележка, находящаяся на рельсах в точке А, начинает двигаться под воздействием силы u и через время Т должна вновь оказаться в той же точке, имея скорость v. Найти закон
управления u(t), минимизирующий энергию управления
T
E = ∫ u2dt.
0
Трением и сопротивлением воздуха пренебречь.
Решение. При сделанных предположениях дифференциальное
уравнение тележки и краевые условия имеют вид
=
y u; y=
(0) y=
(T) y=
(0) 0; y=
(T) v.
В данном случае А(р) = р2, и для уравнений (4.19), (4.20) получаем
 = 0.
y(4) = 0; u
Следовательно, оптимальное управление должно изменяться по
линейному закону u = С1 + С2t, где С1 и C2 – начальные условия сопряженной системы. Ему отвечает траектория движения тележки
=
y C1
t2
t3
+ C2 .
2
6
Постоянные C1 и C2 находим из краевых условий на правом конце
1
1
1
C1 + C2T = 0, C1T + C2T2 = v,
2
6
2
откуда
v
v
C1 =
−2 , C2 =
6 2.
T
T
Отсюда окончательно имеем
u=
2v
v 1
( 3t − T ), y =  t3 − t2 .
T
TT

Это означает, что треть времени тележка двигается с отрицательным ускорением, две трети – с положительным, и сила, прикладываемая к ней в последний момент времени, должна быть в два раза
больше (по модулю), чем в начальный.
136
Control of cart
1
y=t 3 –t 2,
y′=3t 2 – 2t
0,8
0,6
1
0,8
y'
Control of cart
y=t3
y′
–t 2 ,
y′=3t2 –2t
0,6
0,4
0,4
0,2
0,2
0
0
y
–0,2
–0,4
0
0,2
0,4
0,6
0,8
y
–0,2
1
–0,4
–0,16 –0,12 –0,08 –0,04
0
Рис. 4.13. Оптимальное управление тележкой
Расход энергии при оптимальном управлении составляет
T
2
 2v

J = ∫  ( 3t − T )  dt = 4Tv2 .
T


0
В частности, при Т = 1, v = 1 получаем u = 6t – 2, y = t3 – t2, J = 4.
На рис. 4.13, а представлены графики положения тележки и ее
скорости в зависимости от времени, на рис. 4.13, б показан вид оптимальной траектории в фазовой плоскости.
Пример 4.11. Обобщая постановку задачи, рассмотренную в предыдущем примере, найдем закон оптимального управления для
перевода тележки из состояния покоя с нулевыми начальными
условиями в произвольное требуемое состояние с координатами
=
y(T) a=
, y (T) b.
Решение. Действуя так же, как и ранее, получаем
u = C1t + C=
2, y C1
t3
t2
+ C2 .
6
2
Значения произвольных коэффициентов C1 и C2 находятся из системы уравнений
1
1
1
C1T2 + C2T 3 = a, C1T + C2T2 = b.
2
6
2
Решая ее, получаем
6a 2b
6b 12a
C1 =− , C2 =−
,
2
T
T
T2 T 3
137
т. е. оптимальное управление имеет вид
u
=
2  3a
 6  2a

− b − 2 
− b  t.

T T
 T T

Дважды интегрируя, получаем формулу для положения тележки
b 
 3a b 
 2a
y =  2 −  t2 −  3 − 2  t 3 .
T
T 
T
T
Таким образом, оптимальный закон управления – линейная
функция, которая обращается в нуль при
3a − bt T
t0 =
.
2a − bt 3
В частности, если конечная координата совпадает с начальной
у(0) = у (Т), то t0 = T/3 (треть интервала – разгон, две трети – торможение), а если конечная скорость совпадает с начальной y (0) = y (T),
то t0 = T/2 (полпути – разгон, полпути – торможение).
Пример 4.12. Управление интегратором. На вход интегратора подается сигнал x(t) длительности Т, переводящий его из начального
состояния у(0) = 0 в конечное состояние у(Т) = 0, так чтобы энергия
выходного сигнала равнялась единице:
T
2
y dt
∫=
=
Ey
1.
0
При какой форме входного сигнала x(t) его энергия
T
Ex = ∫ x2dt
0
будет минимальной?
Решение. Согласно условию задачи требуется найти минимум
интеграла
T
J = ∫ y′2 (t) dt
0
при изопериметрическом ограничении
T
2
∫y
(t) dt = 1
0
и краевых условиях y=
(0) y=
(T) 0.
138
Составим вспомогательный функционал
=
L
T
2
∫ (y ′
+ λy2 ) dt
0
и выпишем для него уравнение Эйлера:
2λy −
d
=
(2y′) 0,
dx
′′ − λy 0. y=
(4.25)
Характеристическое уравнение имеет вид р2 – λ = 0, откуда
p1,2 =± λ .
Ясно, что λ должно быть меньше нуля, так как если допустить,
что λ>0, то общее решение дифференциального уравнения (4.25) будет иметь вид
=
y C1e
λt
+ C2 e−
λt
и граничные условия y(0) = y(Т) = 0 будут удовлетворяться только
при С1 = 0, С2 = 0, т. е. при y(t) ≡ 0. Но в таком случае не будет выполняться условие
T
2
∫y
(t) dt = 1.
0
Аналогично в случае λ = 0 решением уравнения Эйлера (4.25),
удовлетворяющим заданным граничным условиям, будет функция
y(t) ≡ 0.
Поэтому считаем λ < 0, так что p1,2 = ± −λ i , и общим решением
=
y C1 sin −λ t + C2 cos −λ t. Условие y(0) = 0
уравнения (3.25) будет
дает С2 = 0, а условие y(T) = 0 дает
=
−λ
k2 π2
=
(k 1, 2, ).
T2
Итак, y(t) = C1sin (kπ/T)t, где С1 пока не определено.
Воспользовавшись изопериметрическим условием
T
2
∫y
(t) dt = 1,
0
139
получаем
T
2
∫ C1 sin
0
2
kπ
tdt = 1,
T
откуда
C1 = ±
Значит, y(t) = ±
2
kπ
sin t.
T
T
2
.
T
Легко увидеть, что минимальное значение функционала L достигается для k = 1. При этом
=
y
2
π
=
sin t, x
T
T
2 π
π
π2
=
cos t, L
.
TT
T
T2
В частности, при T = 2 получаем
π
π
π
=
y sin
=
t, x
cos
=
t, L 2,48.
2
2
2
Графики этих сигналов приведены на рис. 4.14.
Упражнение. Покажите, что найденное управление х(t) примерно на 20% выгоднее по сравнению с «релейным» управлением х1(t)
(рис. 4.14, пунктир), которое также обеспечивает перевод интегратора из нулевого состояния в нулевое при единичной энергии выходного сигнала.
x
1,5
x1
1,0
y
0,5
–0,5
0
0,5
1,0
1,5
2
t
–1,0
–1,5
Рис. 4.14. Оптимальное управление интегратором
140
Пример 4.13. Согласованный фильтр и вариационное исчисление. Это пример изопериметрической задачи, когда в критерий не
входят производные от искомой функции.
Фильтр описывается интегралом свертки
y=
(t)
t
∫ q(t − τ)u(τ)dτ;
0
требуется найти весовую функцию единичной энергии q(t), которая
обеспечивает максимальный отклик фильтра в момент времени Т
на известный входной сигнал u(t), 0 ≤ t ≤ T :
=
J y=
(T)
T
T
0
0
∫ q(T − τ)u(τ)dτ,
∫q
2
dt = 1.
Вводя обозначение f=
(t) q(T − t), приходим к изопериметрической задаче вариационного исчисления
T
T
0
0
f (t)u(t)dt; ∫ f 2dt 1.
∫=
=
J
Формируем составной критерий
=
L
T
T
0
0
2
)dt
∫ (fu + λf =
∫ f (u + λf )dt.
Выписываем уравнение Эйлера – Пуассона (оно получается алгебраическим) и решаем его:
Lf′ = u + 2λf = 0; f (t) = −0,5u(t) / λ, λ = −0,5 u .
Таким образом, весовая функция фильтра, обеспечивающего
максимальный отклик в момент Т, равна нормированному входному сигналу, взятому в обратном времени:
q=
(t) u(T − t) / u .
И обратно, входной сигнал u(t), обеспечивающий максимальный
отклик в момент Т, равен нормированной весовой функции, взятой
в обратном времени.
На этом мы закончим рассмотрение методов вариационного
исчисления и примеров их применения для решения задач оптимизации. Для более основательного изучения вариационного исчисления можно рекомендовать учебную литературу [3–10, 14]. По
141
численным и аналитическим методам поиска корней уравнений и
решения экстремальных задач также существует обширная литература, в частности [1, 2, 11, 12].
Задачи и упражнения
1. Найти кратчайшее расстояние от точки А(–1, 5) до параболы
y2 = х.
Ответ: 20.
2. Найти кратчайшее расстояние от точки А(4, 0) до эллипса
4х2 + 9у2 = 36.
Ответ: 4 / 5.
3. Найти расстояние между окружностью x2 + y2 = 1 и прямой
х + y = 4.
Ответ: 2 2 − 1.
4. Найти расстояние от точки А(–1, 3) до прямой y = 1 – 3х.
Ответ: 1/ 10.
5. Доказать, что для функционала
x1
∫ h(x, y)
=
J [ y]
1 + y′2 dx,
x0
где h(x, y) ≠ 0 в граничных точках, условия трансверсальности имеют вид
1
1
è y′(x) =
,
−
−
y′(x) =
ϕ′(x) x x=
ψ ′(x) x x
=
0
1
т. е. для него условия трансверсальности сводятся к условиям ортогональности.
6. Найти функцию, реализующую экстремум функционала
π/4
2
2
V (y) =
0,
∫ (y − y′ )dx, y(0) =
0
если другая граничная точка может скользить по прямой х = π/4.
Ответ: у = 0.
142
ЗАКЛЮЧЕНИЕ
В учебном пособии рассмотрены основы численных и аналитических методов решения различных задач, включая поиск корней
уравнений, поиск экстремума функций одной и многих переменных, задачи условной и безусловной оптимизации, вариационного
исчисления. Изложение сопровождается примерами, которые относятся к разным прикладным областям.
В отличие от пособий и учебников по аналогичной тематике, написанных математиками, акцент сделан не на доказательстве многочисленных теорем существования и единственности решения, а
на описании конструктивных методов и алгоритмов его получения.
Дело в том, что в прикладных оптимизационных задачах существование решения обычно бывает очевидным из соображений здравого смысла и не требует никаких дополнительных доказательств.
Гораздо большее значение для практики имеет анализ робастности
получаемого решения, его чувствительности к варьированию параметров, погрешностям исходных данных и влиянию ошибок округления.
Ввиду ограниченного объема пособия многие разделы численных методов и теории экстремальных задач оказались за его пределами. Это касается, например, задач оптимальной аппроксимации
функций одной и многих переменных; задач нелинейного и целочисленного программирования; методов Монте-Карло, сводящихся
к достаточно равномерному заполнению точками некоторой области пространства; метода ветвей и границ; задачи коммивояжера и
других экстремальных задач на графах; метода динамического программирования и т. д.
143
ПРИЛОЖЕНИЕ
Интегральные функционалы,
встречающиеся в вариационных задачах
Рассматривается оптимизируемый функционал вида
b
J = ∫ F (x, y, y′) dx.
a
Ниже приведены варианты подынтегральной функции, и поясняется физический или геометрический смысл функционала.
1. =
F
1 + y′2 – длина кривой у(x); экстремали – прямые на плоскости.
2. F= y2 π – объем тела, получаемого при вращения кривой у(x)
вокруг оси х.
3. F =2π 1 + y′2 – площадь поверхности тела, получаемого при
вращении кривой у(x) вокруг оси х; экстремаль – цепная линия,
тело вращения – катеноид.
4. F =
2πy 1 + y′2 – то же при вращения кривой вокруг оси у.
δx2 1 + y′2 – момент инерции дуги кривой у(x) относитель5. F =
но оси у (δ – линейная плотность дуги).
6. =
F x2 yδ – момент инерции плоской фигуры относительно оси
у (у – длина вертикального сечения, δ – плотность фигуры).
1

=
F
x 1 + y′2 , 

L
7.
 – координаты xc, yc центра тяжести дуги кри1
2
=
F
y 1 + y′ . 

L
вой у(x) (L – длина дуги); экстремаль – цепная линия (гиперболический косинус).
8. F =
1 + y′2
2gy
– время движения в задаче о брахистохроне (у –
текущая высота, g – ускорение свободного падения); экстремали –
отрезки циклоиды.
144
9. F =
1 + y′2
y
– время движения точки в двумерной среде со ско-
ростью у; экстремали – дуги окружности.
10. F =
1 + y′2
– время движения луча света в двумерной среде
v(x, y)
со скоростью v(x, y).
11. F = y + λ 1 + y′2 – задача Дидоны о наибольшей площади под
кривой фиксированной длины); экстремали – дуги окружности.
x
12. F =
– аэродинамическая задача Ньютона об оптималь1 + y′2
ной форме снаряда (х – продольная координата, у(х) – профиль снаряда); экстремаль – кривая Ньютона [7].
13. =
F xy − yx – задача Чаплыгина об облете самолетом максимальной площади за время Т ( x , y – составляющие скорости) [7];
экстремаль – эллипс.
145
СПИСОК ЛИТЕРАТУРЫ
1. Алексеев В. М., Галеев Э. М., Тихомиров В. М. Сборник задач
по оптимизации: учеб. пособие. 2-е изд., перераб. и доп. М.: Физматлит, 2007.
2. Бахвалов Н. С., Жидков Н. П., Кобельков Г. М. Численные методы: учеб. пособие. М.: БИНОМ. Лаборатория знаний, 2003.
3. Гельфанд И. М., Фомин С. В. Вариационное исчисление: учеб.
пособие. М.: Физматгиз, 1961.
4. Демьянов В. Ф. Условия экстремума и вариационное исчисление: учеб. пособие. М.: Высшая школа, 2005.
5. Дифференциальные и интегральные уравнения, вариационное исчисление в примерах и задачах/А. Б. Васильева, Г. Н. Медведев, Н. А. Тихонов и др.: учеб. пособие, 2-е изд., испр. М.: Физматлит, 2005.
6. Иванов В. А., Фалдин Н. В. Теория оптимальных систем автоматического управления: учеб. пособие. М.: Наука, 1981.
7. Иоффе А. Д., Тихомиров В. М. Теория экстремальных задач:
учеб. пособие. М.: Наука, 1974.
8. Краснов М. А., Макаренко Г. И., Киселев А. И. Вариационное
исчисление. М.: Наука, 1973.
9. Оптимальное управление / Э. М. Галеев, М. И. Зеликин,
С. В. Конягин и др. М.: МЦНМО, 2008.
10. Ракин Л. В. Введение в вариационное исчисление. СПб.: Издво СПбГУ, 2000.
11. Самарский А. А., Гулин А. В. Численные методы: учеб. пособие. М.: Наука, 1989.
12. Тихомиров В. М. Рассказы о максимумах и минимумах. М.:
Наука, 1986.
13. Фихтенгольц Г. М. Основы математического анализа: учебник. СПб.: Лань, 2002.
14. Эльсгольц Л. Э. Дифференциальные уравнения и вариационное исчисление: учебник. М.: Наука, 1969.
146
СОДЕРЖАНИЕ
Предисловие...........................................................................
3
Введение.................................................................................
5
1. ЧИСЛЕННЫЕ МЕТОДЫ ПОИСКА КОРНЕЙ УРАВНЕНИЙ.......
1.1. Решение уравнений с одной переменной.......................... 1.2. Решение систем уравнений. Метод Ньютона
для систем уравнений.................................................. 1.3. Оптимизационный подход............................................. 9
9
19
21
2. МЕТОДЫ ПОИСКА ЭКСТРЕМУМА........................................
2.1. Постановка оптимизационной задачи............................. 2.2. Методы безусловной оптимизации.................................. 23
23
27
3. МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ.................................
3.1. Аналитические методы условной оптимизации................ 3.2. Численные методы условной оптимизации...................... 73
73
85
4. ВАРИАЦИОННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ.......................
4.1. Задачи вариационного исчисления................................. 4.2. Безусловная оптимизация. Уравнение Эйлера.................. 4.3. Безусловная оптимизация. Уравнение Эйлера – Пуассона.. 4.4. Условная оптимизация. Уравнение Эйлера – Лагранжа..... 4.5. Вариационные задачи оптимального управления.............. 103
103
106
127
129
132
Заключение............................................................................
143
ПРИЛОЖЕНИЕ. Интегральные функционалы,
встречающиеся в вариационных задачах.....................................
144
Список литературы..................................................................
146
147
Учебное издание
Мироновский Леонид Алексеевич,
Соловьева Татьяна Николаевна,
Шинтяков Дмитрий Васильевич
ЧИСЛЕННЫЕ МЕТОДЫ
И ОПТИМИЗАЦИЯ
Учебное пособие
Редактор В. С. Гончарова
Компьютерная верстка А. Н. Колешко
Сдано в набор 15.02.17. Подписано к печати 04.05.17. Формат 60 × 84 1/16.
Усл. печ. л. 8,6. Уч.-изд. л. 9,5. Тираж 50 экз. Заказ № 164.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
7
Размер файла
4 475 Кб
Теги
nironovskiysolovieva
1/--страниц
Пожаловаться на содержимое документа