Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Математические методы принятия решений

..pdf
Скачиваний:
2
Добавлен:
13.11.2023
Размер:
22.94 Mб
Скачать

При этом в точке оптимума (х *, у *) выполняются соотношения

х]\( 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

Задача решена.

Методы, использующие первые производные

В методах минимизации функции /(х ), в которых используют первые производные, учитываются только линейные члены разло­ жения функции /(х ) в ряд Тейлора. Поэтому эти методы иногда называют линейными методами.

Соседние файлы в папке книги