книги / Математические методы принятия решений
..pdfПри этом в точке оптимума (х *, у *) выполняются соотношения
х]\( s |
ачУ* - сз)1 = о, |
4=1 |
' |
у! 1ГУ^Х*- Ьг) 1 = 0,
4=1 '
II |
(N |
* = 1 ,2 ,
Исходную задачу называют прямой. Если |
целевую функцию |
в двойственной задаче ф(у) —> m ax заменить |
на —ф(у) —> min, то |
можно утверждать, что задача, двойственная к произвольной задаче математического программирования, всегда выпукла. Если в задаче математического программирования допустимое множество значе ний х замкнуто и выпукло, функции f{x), gi(x), г = 1, 2, непрерывны и выпуклы на D, функции hj(x), j = 1, 2 , . . . , р, линей ны или отсутствуют и решение прямой задачи конечно (/* > —оо),
вчастности она имеет решение, то множество решений двойствен ной задачи непусто и совпадает с множеством векторов Куна— Таккера прямой задачи. При этом справедливо соотношение двой ственности f* = ф*, т. е. минимум целевой функции прямой задачи совпадает с максимумом целевой функции двойственной задачи.
Поскольку число переменных в двойственной задаче равно числу условий-ограничений в прямой задаче, в ряде случаев двойствен ную задачу решить проще.
Получим необходимые и достаточные условия оптимальности решения задачи выпуклого программирования на основе теории двойственности. В этом случае изменится только форма необходи мых и достаточных условий (в них не будут включены производ ные), но предпосылки для формулирования условий оптимальности
вобоих случаях одинаковы.
Для примера рассмотрим задачу квадратичного программиро вания'.
f i x ) = —(С х , х) + (d, х) —►min
при (au х) ^ bu i = 1,2, . . . , к, и (ai, х) = bu i = k + 1,..., m, где C — положительно определенная симметрическая матрица размернос ти п х n; d, a i , . . . , ат —заданные векторы из Rn; bi, . . . , bm —за данные числа.
Функция Лагранжа задачи имеет вид
| |
7 1 |
Ц х, У) = у (С х , х) + (d, х) + 2 Vidai, х) - 6*) = г=1
= у (С®, х) + (d, х) + (у, Ах - Ь) =
= у (Сх, х) + (d + уА, х) - (у, 6).
Задачей, двойственной к исходной задаче квадратичного про граммирования, будет следующая:
ф(у) -► шах, у е У ,
где
?(У) = Jgfn Ц х , у) = JW ( у (Сх, x) + (d + у А, х) - (у , 6)),
У = {yeQ|<p(y)> -oo} .
Для положительно определенной матрицы С производная функ ции Лагранжа L'x(x, y) = C x + d + yA равна нулю в точке х(у) = = —C _1(d + уА), и двойственная задача записывается в виде
где |
ф(у) -*■ max, |
y ç Q , |
|
|
|
Ф(У) = Ш(у), У) = |
+ уА), d + уА) - (у, b) = |
|
= - y tf A C - 1 Ат]у, у) - |
( A C - 'd + 6, у) - y ( C - ‘d, d). |
Полученная функция квадратична, в задаче учтены условия неотрицательности первых к переменных. Решить двойственную задачу гораздо проще. Если в исходной задаче нет ограниченийнеравенств, то двойственная задача приводит к безусловной опти
мизации квадратичной функции. |
|
|
Пара (x * , y * ) e P x Q |
называется |
седловой точкой функции |
Ц х, у) на Р х Q, если |
|
|
Цх*, у*) = min Ц х , у*), |
||
|
хеР |
|
Цх*, у*) = max Цх*, у), |
||
|
yeQ |
|
т. е. Ц х, у*) ^ Цх*, у*) ^ |
Цх*, у) при |
всех x e P , y e Q . |
Тогда точка х* е Р является решением прямой задачи в том и только в том случае, если существует вектор у* &Q такой, что пара (х *, у*) является седловой точкой функции Лагранжа L(x, у) на Р х Q. Таким образом, если одновременно решать прямую и двойственную задачи, то к точке минимума (к решению) мы можем приближаться двумя способами.
Вектор Куна—Таккера имеет различные экономические интер претации. Рассмотрим две из них.
1. Пусть предприятие выпускает некую продукцию и стремится получить максимальный доход. Условия-ограничения в виде нера венств характеризуют затраты ресурсов при выпуске продукции. Очевидно, что в процессе выпуска продукции один или несколь ко ресурсов будут исчерпаны полностью (активные ограничения). Другая часть ресурсов будет не использована (пассивные ограни чения). В двойственной задаче (согласно условию дополняющей нежесткости) для активных ограничений и* Ф 0, г = 1, 2, . . . , к, а для пассивных ограничений и* = 0, г = к + 1, . . . , т (эти ресурсы неде фицитны), т. е. предприятию следует закупать в первую очередь те ресурсы, для которых и*, г = 1, 2, . . . , к, имеют наибольшие значе ния. Если есть возможность увеличивать количество всех ресурсов одновременно, то их желательно приобретать в пропорциях, описы ваемых вектором Куна—Таккера.
2. Предприятию необходимо продать «ненужную» часть сырья и установить за него такую цену, чтобы максимизировать общий доход. Пусть с —заданный вектор, элементами которого являются цены на сырье. Предприятае стремится продать сырье по таким ценам, чтобы получить такую же прибыль, как и в случае, если бы из проданного сырья была изготовлена продукция, а для этого коор динаты вектора с должны быть равны координатам вектора Куна— Таккера у*
§ 1.7. Графическое решение задач математического программирования
Самыми наглядными методами решения задач математического программирования являются графические. Но они приемлемы толь ко для функций двух и иногда трех переменных.
Рассмотрим два примера.
Пример 1. Минимизировать функцию
f(x) = \х\ |
- 2 \ + \х2 - 2| |
при ограничениях |
|
g(x) = xi — х\ ^ 0, |
h(x) = х\ + х \ —1 = 0. |
Получили задачу нелинейного математического программиро вания. Прежде всего построим по условиям-ограничениям допу стимую область D —множество точек (x\,xj), удовлетворяющих
ограничениям задачи. Ограниче |
|||||
ние д(х) ^ 0 определяет область |
|||||
«внутри» параболы х\ |
= х\, огра |
||||
ничение |
h(x) = 0 — окружность |
||||
единичного |
радиуса |
с |
центром |
||
в начале |
координат |
(рис. |
1.9). |
||
Допустимая |
область |
D этой |
за |
||
д ачи -д у га |
А В С окружности. |
||||
Чтобы найти точку, в которой |
|||||
функция fix ) принимает мини |
|||||
мальное значение на допустимой |
|||||
области |
D, |
построим |
линии |
уровня fix), обозначенные штри |
Рис. 1.9. Графическое решение |
|
ховыми линиями. В точке (2,2) |
задачи математического програм |
||
fix ) = 0; при f{x) = 1 и fix ) = 2 |
мирования |
||
линии уровня |
образуют |
квадра |
|
ты. Градиент |
функции |
V/(a:) направлен в сторону дуги АВ С , |
и функция fix ) будет иметь минимальное значение в точке каса ния линии уровня к дуге А В С . Поскольку линии уровня отсекают на осях Х[ и Х2 равные отрезки, то координаты точки касания равны 1 • cos(rc/4) = 1 • sin(jc/4) = л/2/2. Получили решение задачи:
Нетрудно видеть, что то же решение будет и в том случае, если вместо условия hix) = 0 рассмотреть условие g\ix) = xj + х\ —1 ^ ^ 0. Тогда допустимая область D будет заключена между дуга ми А В С и АОС (см. рис. 1.9). Однако минимальное значение
функции /(ж) в области D будет достигнуто также в точке х* с ко ординатами х* = л/2/ 2, ж| = л/2/ 2.
Пример 2. Пусть в задаче о питании (см. § 1.1)
CI 2, |
Ci |
3, |
Оц = |
1, |
ÛJ2 = 5, |
Й21 = 3, |
Й22 = 2, |
|
031 = 2, |
Й32 = 4, |
Й41 = 2, |
Û42 = 2, |
Й51 = |
1, |
Û52 = О» |
||
Ь\ = |
10, |
6г = 12, |
63 = 16, 64 = 6, |
65 = |
1. |
Получили задачу линейного программирования: минимизиро вать функцию
|
/(ж) = 2Ж[ + ЗЖ2 |
|
|
при ограничениях: |
|
|
|
а) х\ + 5x 2 ^ 10; |
б) Зж] + 2 x 2 ^ 12; |
в) 2ж1 -I- 4жг ^ |
16; |
г) 2ж1 + 2ж2 ^ 6; |
д) х\ ^ 1; |
е) Ж) ^ 0, ж2 ^ |
0. |
Построим область, определяемую неравенствами-ограничения ми задачи (рис. 1.10). Строим сначала прямую х\ + 5жг = 10 по двум точкам: жг = 2 при х\ = 0, х\ = 10 при xi = 0. Нанесем точки (0,2) и (10, 0) на график и проведем прямую АВ. Чтобы установить, какая часть плоскости определяется неравенством х\ + 5 x 2 ^ 10, подставим в него координаты точки (0,0). Получим 0 ^ 10 —про тиворечие, т. е. неравенство определяет полуплоскость, не содержа щую точку (0,0). Стрелки, направленные от прямой АВ, указывают эту полуплоскость. Аналогично строим области, соответствующие другим неравенствам. Неравенство х\ ^ 0 можно сразу исключить,
Рис. 1.10. Графическое решение задачи линейного программирования
так как оно «поглощается» неравенством х\ ^ 1. Допустимой обла стью D является заштрихованная выпуклая неограниченная много угольная область. Чтобы найти оптимальную точку, построим одну из линий уровня целевой функции и ее градиент. Пусть с = 30, т. е. 2xi + 3x2 = 30 (штриховая линия), а градиент V / имеет коор динаты (2,3). Поскольку требуется определить минимальное зна чение /(х ) на области допустимых значений, то перемещаем ли нию уровня параллельно самой себе в направлении антиградиента до тех пор, пока она будет находиться в допустимой области D. Точка «выхода» линии уровня из допустимой области является той точкой, где /(х ) примет минимальное значение: х* = (2, 3); /min(®*) = 2 -2 + 3 -3 = 13.
На рис. 1.10 видно, что задачи математического программиро вания могут не иметь решения и могут иметь бесконечно много решений. Если бы при тех же ограничениях, какие были заданы в условии задачи, потребовалось максимизировать целевую функ цию /(х ), то линию уровня пришлось бы перемещать в направле нии градиента V /. Очевидно, в этом случае решения не существует, поскольку множество D не ограничено.
Теперь рассмотрим другую целевую функцию этой же задачи. Пусть требуется минимизировать функцию /(х ) = 3xj + 2хг. Оче видно, что линии уровня будут параллельны прямой 3xi + 2хг = 12, т. е. линия уровня «выйдет» из допустимой области по отрезку пря мой CD: все точки отрезка будут являться решениями задачи (бес конечное множество решений).
При решении задачи линейного программирования может ока заться, что ограничения противоречивы. Например, если ограни чение г) записать в виде 2xi + 2хг < 6, то это неравенство будет описывать полуплоскость, включающую точку (0, 0), не имею щую общих точек с другими полуплоскостями (с решением нера венств а)-в)). Решение задачи в данном случае также не существует.
§ 1.8. Методы безусловной оптимизации
Задачи математического программирования в некоторых случа ях можно свести к безусловной минимизации целевой функции /(х ), т. е. поиску локального минимума этой функции. Если локальный
минимум на каком-то этапе не является и глобальным, то поиск гло бального минимума и других локальных минимумов должен быть продолжен, при этом выбирают другие начальные точки итераци онных процессов.
Как правило, изложенные алгоритмы применяют для нахож дения точек минимума положительно определенной квадратичной формы п -го порядка. Для других видов функций указываются усло вия их применимости.
Методы, использующие только значения функции
Пусть задана целевая функция (функция качества) fix), произ водные которой могут быть разрывными либо не вычисляться явно. Такая ситуация возможна, например, если значения функции /(ж) заданы в табличной форме. В этом случае рассматривают два под хода: методы поиска и методы сопряженных направлений.
В методах поиска в основном используются одномерные проб ные шаги. Эффективность методов поиска возрастает с увеличе нием степени сепарабельности функции задачи. Например, задача минимизации функции f(x) = х \ + КЮООж* методами поиска реша ется в два этапа несмотря на то, что линии уровня этой функции очень вытянуты (образуют овраг) и движение по любому направле нию, не параллельному главной оси, весьма затруднено.
Методы сопряженных направлений обеспечивают достижение минимума положительно определенной квадратичной формы раз мерностью п за п2 шагов. Направления векторов Sj и Sj называются
сопряженными относительно матрицы G, если
s[Gsj =0, i ф j .
В частности, метод покоординатного спуска является одним из методов сопряженных направлений. При использовании это го метода точка минимума находится последовательно по одной из координат, когда другим координатам заданы фиксированные значения. Для квадратичной функции порядка п этим методом мож но достичь точку минимума за п итераций, если на одной итерации определяется точка минимума по одной координате.
Рассмотрим один из методов безусловной минимизации функ ций, использующий только значения функции /(ж). В этом методе
применяется процедура аппроксимации матрицы вторых частных
производных и градиента функции fi x ) за у п(п + 1 ) итераций.
Для положительно определенной квадратичной формы этот метод является точным. Фактически здесь реализуется метод Ньютона (см. далее).
Пусть f{x) —квадратичная форма, G —ее матрица вторых част ных производных V 2fix), V /(x ) —градиент функции fix), ак = _ ж*;+1 _ х к^ где х к _ точка> полученная на к-й итерации. Тогда зна чение функции в точке x fc+1 вычислим по формуле
f i x k+') = f i x k) + V T/(æ fc) + i |
o\G ok. |
(1.11) |
|
Предположим, что для перехода от х к к |
оптимизация ве |
||
дется по направлению вектора а ь |
т.е. |
|
|
V Tf i x k+')ok = 0 . |
|
( 1.12) |
|
Таким образом, |
|
|
|
f(.xk) = f i x k+l) + j a kGak. |
(1.13) |
||
В силу равенств (1.11) и (1.13) имеем |
|
|
|
V ' f kok = -o lG o k |
|
|
|
ИЛИ |
1 |
|
|
f i x k+') = f i x k) - j o l G o k. |
(1.14) |
С помощью формулы (1.14) можно получить диагональные эле менты матрицы G, считая первые п направляющих векторов рав ными (1, 0 , ... , 0),..., (О, 0, ...,1).
Пусть х° —начальная точка, а векторы Sj-i при г = 1,2, . . . , п имеют координаты, равные единице на г-м месте и нулю на осталь ных местах. Тогда x i+l = x i -XjS i, где число Xi выбирается так, чтобы минимизировать функцию fix) по лучу Sj_i, выходящему
из точки х г~ *; значения X*, i = |
1,2,..., п, могут иметь любой знак. |
||
Диагональные элементы вычисляются по формуле |
|
||
P t + 1 |
- 2 ( / ( х ‘+1) - / ( х * ) ) |
(1.15) |
|
X? |
г = 0, l , . . . , n —1. |
||
|
|
|
Для вычисления недиагональных элементов матрицы G посту пают следующим образом. Пусть х к = хп (значение хп получено
после п шагов, совершенных для вычисления диагональных элементов). Для г = 1,2,..., п и j = г + 1,..., п положим
Sîj — 6j “Ь Gj ,
где — единичный вектор с единицей на г-м месте.
Выберем Ху так, чтобы функция /(ж) достигла минимума по на
правлению вектора Sÿ, выходящему из точки х к. Тогда |
|
||
2 ( - /(x fc+1) + f( x k)) - \ ij9ii2 |
- \\j9jj |
|
|
9ij |
2Xy |
’ |
(1.16) |
г = 1,2, . . . , n , |
j = i + 1, ... ,n . |
|
Если квадратичная форма достигла минимума в выбранном на правлении, то получим соответствующее Ху = 0. В этом случае можно сделать малый произвольный шаг и продолжать считать по приведенным формулам.
Поскольку после очередного шага в г-м направлении движения Si- j = Si, то вычисление градиента проведем по следующим фор мулам:
№ ) = 0 |
|
df(xn) |
71 |
|
df{xl) |
||
dxi |
’ |
dxi |
dxi + Л 9ij{Xj - Xj), |
|
|
|
j =i |
если только /(ж) — квадратичная форма, при этом учитываются ус ловия
Xj |
x'j, j |
1 , 2 , . . . , г, x'j Xj, j |
г -b 1, • »., гг. |
Следовательно,*
*j=i+1
Градиент в точке x n можно получить, если вычислены все эле
менты матрицы G. Для любой другой точки у |
|
V f(y) = V f ( x n) + G ( y - x n). |
(1.18) |
После того как матрица G вычислена, можно по формуле (1.18) получить V /(y ) и вычислить направление —G~lVf(y). Точка у —G~lV f(y ) будет безусловным минимумом положительно опре деленной квадратичной формы.
Пример. Необходимо решить следующую задачу:
/(i) = (l, 1) + | |
I |
t K |
JJ x |
min. |
I |
|
|
||
Определим диагональные элементы матрицы G. |
||||
Положим х° = (0,0); тогда |
/(х°) = 0. Пусть so = 0 ,0 ) . Тогда |
Х0 = - 1 /2 , оо = ( - 1 /2 ,0)т, х 1= (-1 /2 ,0 ), / ( х 1) = -1 /4 . По форму ле (1.15) имеем рп = 2 .
Пусть si = (1,0). Тогда получим Xi = —1/2, oi = (0, —1/2)т, х2 = = (—1/2, —1/2), /(х 2) = -3 /8 . По формуле (1.15) имеем <722 = 1.
Переходим к вычислению недиагональных элементов матри цы G.
Пусть s2 = (l,l). Тогда Х3 = 1/10, х3 = (-2 /5 , -2 /5 ), /( х 3) = = —2/5. По формуле (1.16) имеем 312 = —1. Все элементы мат рицы G найдены.
Для вычисления градиента V /2 воспользуемся формулой (1.17):
д /О 2) |
gn(xl - х^) = 1 (-у + о)=-у, |
d/(s2) |
= 0. |
5xi |
|
дхг |
|
По формуле (1.18) имеем
V /(x 3) =
Это значение точное. Теперь получим точки искомого безусловного минимума:
U -
х3 —G -1 V /(x 3) =
\ ~ 1
Задача решена.
Методы, использующие первые производные
В методах минимизации функции /(х ), в которых используют первые производные, учитываются только линейные члены разло жения функции /(х ) в ряд Тейлора. Поэтому эти методы иногда называют линейными методами.