- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •1. ЗАДАЧИ ОПТИМИЗАЦИИ
- •1.1. Основные понятия
- •1.2. Некоторые простые примеры
- •1.3. Задачи оптимального проектирования
- •1.4. Задачи оптимального планирования
- •1.5. Классы задач оптимизации
- •Вопросы и задачи
- •2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ
- •2.1. Предварительные замечания
- •2.3. Оптимальный пассивный поиск
- •2.4. Методы последовательного поиска
- •2.5. Сравнение методов последовательного поиска
- •2.6. Методы полиномиальной аппроксимации
- •2.7. Методы с использованием производных
- •Вопросы и задачи
- •3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
- •3.2. Выпуклые функции
- •3.4. Условия минимума выпуклых функций
- •3.5. Сильно выпуклые функции
- •ф{t) = (grad/(а; + th), h)
- •3.6. Примеры минимизации квадратичных функций
- •3.7. Минимизация позиномов
- •Qj = '%2aijci = Q> J = !.*»•
- •Вопросы и задачи
- •4. ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
- •4.1. Релаксационная последовательность
- •4.2. Методы спуска
- •4.4. Минимизация квадратичной функции
- •4.5. Сопряженные направления спуска
- •5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
- •|iufc|
- •5.3. Метод Ньютона
- •5.4. Модификации метода Ньютона
- •5.5. Квазиньютоновские методы
- •Вопросы и задачи
- •6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
- •6.1. Особенности прямого поиска минимума
- •6.2. Использование регулярного симплекса
- •6.4. Циклический покоординатный спуск
- •6.5. Метод Хука — Дживса
- •Щ + bjej,
- •6.6. Методы Розенброка и Пауэлла
- •Вопросы и задачи
- •7. АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. Минимизация при ограничениях типа равенства
- •7.4. Седловая точка функции Лагранжа
- •7.5. Двойственная функция
- •7.6. Геометрическое программирование
- •Вопросы и задачи
- •8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •8.1. Метод условного градиента
- •8.2. Использование приведенного градиента
- •8.5. Метод проекции антиградиента
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Математика в техническом университете Выпуск XIV
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
1.5. Классы задач оптимизации
Как и в любой классификации, разделение задач оптимиза ции на отдельные классы достаточно условно. Отметим, что одна и та же прикладная задача может приводить к разным задачам оптимизации в зависимости от того, какая матема тическая модель используется при рассмотрении реального объекта оптимизации. Ясно, что желательно применять более простые модели, но в то же время достаточно полно отражаю щие свойства объекта, существенные с точки зрения поставлен ной цели, выраженной в критерии оптимальности. Поэтому при выборе либо разработке математической модели или же при обосновании ее упрощения необходимо достаточно четко представлять, к какому классу будет относиться поставленная задача оптимизации и какие методы применимы для ее реше ния.
Пусть /о(ж) — целевая функция, количественно выражаю щая некоторый критерий оптимальности и зависящая от коор динат j = 1, п, точки х Е Шп. Эти координаты являются параметрами оптимизации (иногда их называют также пере менными задачи оптимизации или просто переменными за дачи) .
При математической формулировке задачи оптимизации целевую функцию выбирают с таким знаком, чтобы реше ние задачи соответствовало поиску минимума этой функции. Поэтому формулировку общей задачи математического программирования обычно записывают так:
/о (ж ) - * т т , х е ft, |
(1.18) |
где f l c R n — множество возможных альтернатив, рассматри ваемых при поиске решения задачи.
Любую точку х Е fi называют допустимым решением за дачи математического программирования, а само множество — множеством допустимых решений или, короче, допустимым
множеством. Точку ж* Е fi, в которой функция /о (х) дости гает своего наименьшего значения, называют оптимальным решением задачи.
При отсутствии ограничений множество совпадает с обла стью определения D(fo) С Еп целевой функции. Если же рас сматриваемые альтернативы должны удовлетворять некото рым ограничениям, то множество допустимых решений сужа ется.
Задачу (1.18) в дальнейшем будем называть задачей мини мизации целевой функции на множестве П, понимая под этим нахождение наименьшего значения функции /о (ж) на Q, и точек х Е в которых оно достигается. Но целевая функция может и не достигать на fi наименьшего значения. Тогда говорят о точ
ной нижней грани inf /о(ж) функции /о (х) на этом множестве xect
и вместо (1.18) используют запись
/ о ( ® ) inf, х Е fi. |
(1-19) |
Отличие (1.18) от (1.19) в том, что в первом случае предпо лагают существование точки ж* Е f2, в которой целевая функция достигает своего наименьшего значения на множестве f2, а во втором случае такая точка может и не существовать. Поэто му решение общей задачи математического программирования состоит в том, чтобы в первом случае найти точные (или с не которой заданной точностью) значения координат Xj^ j —1, n, точки х* Е и значение целевой функции /о(ж*) = т т /о (ж ),
а во втором случае построить такую последовательность {жп} точек x n Е fi, которой бы соответствовала последовательность {/о(®п)}, сходящаяся к значению in f/о(ж), и вычислить это
значение с заданной точностью. Отметим, что в большинстве прикладных задач имеет место первый случай, поэтому исполь зование записи вида (1.19) будем оговаривать особо.
Если /о(ж) — линейная функция, то ее область определения совпадает cR n. B E 71такую функцию с помощью стандартного
скалярного произведения можно представить в виде /о (ж) = = (с, ж), где с — (ci, ..., Сп) £ Мп — известный вектор. Ясно, что целевая функция
п
/о(ж) = (с, х ) = Y L cjX j j=i
может достигать наименьшего значения /о (х*) на множестве О лишь в точках границы сЮ этого множества. Если в задаче нет ограничений, то П = Мп и точная нижняя грань линейной функции равна —оо. Поэтому в случае линейной целевой функ ции задача оптимизации
(с, х) -A min, х € К", |
(1-20) |
имеет смысл лишь при наличии ограничений.
В частном случае, когда заданы линейные ограничения типа равенства
Вх = d, ж е К71, |
(1.21) |
где d 6 Шк, В — матрица размера к хп, а параметры оптими зации могут принимать лишь неотрицательные значения, т.е.
j = hn, |
(1.22) |
соотношения (1.20)-(1.22) составляют стандартную задачу линейного программирования, или задачу линейного про граммирования в стандартной форме (в литературе ее часто называют канонической задачей линейного программирова ния, или задачей линейного программирования в канонической форме).
Условия (1.22) можно представить в виде ж € К", где К” ■— декартово произведение п множеств R* неотрицательных дей ствительных чисел, называемое иногда неотрицательном ортантом размерности п. Если к (1.20)-(1.22) добавить m
ограничений типа неравенства
п
(1.23)
где djj € К, г = 1,тп, то соотношения (1.20) —(1.23) приведут к формулировке общей задачи линейного программирова ния. При этом ограничения (1.22) могут относиться не ко всем п параметрам оптимизации, а лишь к некоторым из них. При отсутствии ограничений типа равенства соотношения (1.20), (1.22) и (1.23) составляют формулировку основной задачи линейного программирования (иногда ее называют ест е ственной задачей линейного программирования).
Неравенства xj ^ aj, Xj ^ bj и aj ^ Xj ^ bj, j = 1, п, называ ют прямыми ограничениями на переменные задачи, причем последнее относят к двусторонним, а первые два — к од носторонним. Таким образом, ограничения (1.22) являются прямыми односторонними. Методы решения задач линейно го программирования подробно рассмотрены и обоснованы в [XX].
Если при линейных ограничениях минимизируемая целевая функция помимо линейной комбинации вида (1.20) включает положительно определенную квадратичную форму, т.е.
(1.24)
где Q — положительно определенная матрица порядка п, то говорят о задаче квадратичного программирования, а функцию вида (1.24) называют квадратичной. В случае, когда целевая функция является отношением двух линейных функций, а ограничения линейны, имеем задачу дробно линейного программирования. Ее формулировка включает ограничения (1.21) —(1.23) и условие минимума функции
(я, а;) + а |
—t mm. |
(1.25) |
(г, а?) +/? |
|
|
где <7 € Rn, г € R71, а € М и /3 € R заданы. Соотношения
( |
" |
“ > min; |
М х ) = |
i=i |
|
|
|
|
|
n |
(1.26) |
л (®) = ]С®у ^ |
^ тГ4> i==1. m; |
|
|
з=i |
|
£ 0, |
j 1 ) n, |
|
где 7i e R заданы, определяют задачу сепарабельного про граммирования. В этой задаче целевая функция fp(x) и функ ции gi(x) в левой части ограничений являются суммой функ ций, каждая из которых зависит только от одного параметра оптимизации. В этом случае функции /о (as) и 9i(x) называют
сепарабельными.
В прикладных задачах целевая функция нередко имеет вид
т |
|
У(х) = ^2^Рг(х)^ |
(1-27) |
2=1 |
|
где х = (®i, ..., хп) G R ", с, е R+, a R+ — декартово произве дение п множеств R+ положительных действительных чисел, называемое иногда положительным ортантом. При этом функции Pi(x) имеют вид
72
Рг(*) = П а:Г ’ |
U-28) |
|
3 |
=1 |
|
где aij Е М. Требование положительности коэффициентов с*, г = 1 ,га, послужило причиной того, что такой вид целевой функции стали называть позиномом в отличие от полинома (многочлена), в котором коэффициенты могут быть и неполо жительными. Кроме того, в многочлене показатели степени аргументов являются целыми неотрицательными числами, а в позиноме благодаря положительности параметров оптимизации
выражение x^XJ определено для любых действительных чисел dij. Если целевая функция и левые части ограничений типа ра венства и (или) неравенства в задаче минимизации являются позиномами, то такую задачу называют задачей геометри ческого программирования.
В задаче нелинейного программирования ограничения мо гут быть заданы в неявном виде. Тогда множество Q возмож ных альтернатив приходится строить путем количественного анализа математической модели объекта оптимизации (см. при мер 1.10). Если ограничения принадлежат к типам равенства и (или) неравенства
fi(x) = 0, 1= 1, k] |
9i(x )^ 0, г = 1 , 7П, |
(1.29) |
но хотя бы одна из функций fi(x), gi{x) или целевая функция не является линейной, то говорят об общей задаче нелинейного программирования. Ясно, что такая формулировка включа ет задачи квадратичного, дробно-линейного, сепарабельного и геометрического программирования.
Среди целевых функций достаточно широкий класс соста вляют выпуклые функции. Во многих прикладных задачах оп тимизации область допустимых значений параметров оптими зации оказывается выпуклым множеством. В такой области целевая функция может сохранять одно и то же направле ние выпуклости, т.е. выпукла либо вниз (выпукла), либо вверх (вогнута). Например, зависимость эффективности техническо го устройства от параметров оптимизации является вогнутой функцией. Дело в том, что чем выше технические характерис тики устройства, тем труднее добиться его дальнейшего совер шенствования и существенного приращения эффективности. Наоборот, целевые функции, выражающие массу, габариты или стоимость технического устройства, по тем же причинам обыч но выпуклы.
Аналогичная ситуация характерна и для функций, описы вающих экономические системы. Например, рост объема вы пускаемой продукции происходит не прямо пропорционально