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

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

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

Берем ж0 = (—3, —1, —3, —1)т. Обычные метод наискорейшего спуска и метод Ньютона приводили к решению, далекому от истин­ ного:

ж* = (—1,07, 1,116, -0,86, 0,76)т

при /(ж) = 7,89.

В этой задаче матрица вторых частных производных имеет отрицательное собственное значение. Для решения модифициро­ ванным методом Ньютона потребовалось 24 итерации; на третьей и шестой итерациях использовалось условие (1.22), в остальных случаях применялся метод Ньютона.

Пример 2. Минимизировать функцию

/(ж) = (ж{ - З)2 + х\.

Пусть ж0 = (10-3 , 102) —начальная точка.

Метод наискорейшего спуска приводит решение в окрестность точки (0,0).

В модифицированном методе Ньютона учитывается, что мат­

рица

 

 

/1 0 \ / - 7 2 - 1 0 - 6

0 \ /1 0 \

Н° = \^0 1 ) 1

0

12 • 102 ) ^0 1J

имеет отрицательный диагональный элемент.

За счет выбора направляющего вектора движение идет перпен­ дикулярно направлению оси жг. Первая итерация приводит к точке ж1 = (\^3 ,10), причем матрица вторых частных производных по­ ложительно определена. После восьми итераций получаем ж8 = = (1,316, 1,535 • 10_6), /(ж 8) = 8,08 • 10~16. Точное решение следу­ ющее: ж* = (v^3,0), /(ж*) = 0.

Сравнение обычных методов наискорейшего спуска, сопряжен­ ных градиентов, переменной метрики, обобщенного метода Нью­ тона показывает, что наиболее «медленным» является метод наи­ скорейшего спуска, наиболее «быстрым» — метод Ньютона. Так, в одном из примеров в процессе определения точки минимума функции обычного вида (не квадратичной формы) метод наиско­ рейшего спуска не имел сходимости даже после 151 итерации, когда счет был прекращен; метод сопряженных градиентов сошелся

за 40 итераций, метод переменной метрики —за 28, метод Нью­ тона—за 8. Объем вычислений, проводимых за одну итерацию, примерно одинаков для всех методов.

При минимизации овражных функций, когда велик коэффици­ ент обусловленности для матрицы вторых производных минимизи­ руемой функции, процесс минимизации «останавливается» на дне оврага, не достигая точки минимума. Пусть это будет точка А\. Затем из новой точки, удаленной от начального нулевого приближе­ ния, начинается новый процесс поиска точки минимума. Он «оста­ новится» в точке A i. По прямой A \A i в сторону точки с меньшим значением функции /(х ) делается шаг, т. е. задается шаговый мно­ житель, значение которого выбирается экспериментально, но долж­ но быть больше значения шагового множителя градиентного мето­ да. Из полученной точки делается спуск в точку А]. Затем движение происходит по прямой А 2А3 и т.д.

Г л а в а 2

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

§ 2.1. Математическая постановка задачи линейного программирования

Вобщем виде задачи математического программирования ре­ шить практически невозможно. Целесообразно рассматривать от­ дельные классы (виды) задач. Удается сформулировать алгоритм решения, приемлемый только для определенного класса задач. Наи­ более разработанными в математическом программировании явля­ ются методы решения задач линейного программирования (ЛП).

Взадачах ЛП целевая функция линейна, а условия-ограничения содержат линейные равенства и линейные неравенства, в частности

вних могут входить условия х ^ О или не входить. Примерами за­ дач линейного программирования являются уже сформулированные

вгл. 1 задача о питании, транспортная задача и т. п. Одна и та же задача ЛП может быть записана в различных формах. Говорят, что задача ЛП записана в канонической форме, если все ее ограниче­ ния, кроме Xj ^ 0, j = 1,2, ... , п, представляют собой равенства.

Если все ограничения имеют вид неравенств, то задача записана в стандартной форме.

Для записи задачи линейного программирования в различных формах применяются следующие приемы.

1.Точку минимума функции f(x) можно находить как точку максимума функции —/(х ).

2.Ограничения в виде неравенств

П

3=1 можно представить в виде равенств

п

используя новые переменные хи г = п + 1, п + 2, ... , тп, Х{ 2 0, на­ зываемые слабыми.

Для неравенства

П

^ ^ QijXj ^

3=1

можно добавить слабую переменную Xi и получить равенство

CLijXj “b

3=1

n

3. Ограничение в виде равенства £ aijxj = h можно заменить двумя неравенствами:

п

 

n

 

 

^

j Üijïïj ^

Q>ijXj ^

3=1

J= 1

 

 

 

п

azjXj = b{, i = 1,2,

Если имеется т равенств ^

 

7=1

 

 

 

заменить т + 1 неравенствами

 

 

 

п

 

771

/

П

^ aijxj ^ h,

i = 1,2,..., m > 2

(

2 °ÿ

 

 

t=i S= i

4. Если на величину переменной Xj, j = 1,2,..., n, не наложено условие неотрицательности, ее можно заменить двумя неотрица­ тельными переменными х+ и x j , положив

Xj = х+ - Xj, Xj 2 0, x j 2 0.

Если имеется n таких переменных Xj, j = 1,2,..., n, то их можно заменить п + 1 неотрицательными переменными xj и хо, положив

Xj = xj - Хо.

Система ограничений в виде равенств и неравенств задает выпуклое множество — выпуклый многогранник. Это множество может быть ограниченным и неограниченным. Целевая функция задачи ЛП является выпуклой функцией. Таким образом, задача линейного программирования является частным случаем задачи вы­ пуклого программирования.

3 4077

Рассмотрим систему ограничений задачи ЛП в виде равенств

71

(2.1)

Система (2.1) линейных уравнений называется совместной, ес­ ли она имеет по крайней мере одно решение. Система (2.1) называ­ ется избыточной, если одно из уравнений можно выразить в виде линейной комбинации остальных. Система (2.1) несовместна, если ранг матрицы ||ау||, i = 1 ,2,..., т, j = 1 ,2,..., п, равен г, ранг рас­ ширенной матрицы этой системы (с присоединенным столбцом 6j) больше г.

В системе (2.1) число п переменных (неизвестных х) больше, чем число т уравнений. Предположим, что ранг этой системы равен т (система неизбыточна) и что система (2.1) совместна. Тогда т переменных из общего их числа образуют базисные пе­ ременные, а остальные п —т переменных называют свободными. Система (2.1) в этом случае будет иметь бесконечно много ре­ шений, так как свободным переменным можно задавать любые значения, для которых находят значения базисных переменных. Решение системы (2.1) называют базисным, если все свободные переменные равны нулю. Если система уравнений имеет решение, то она имеет и базисное решение. Решение системы уравнений (2.1) называют допустимым, если все его компоненты неотрицательны. Если система линейных уравнений обладает допустимым решени­ ем, то она имеет и базисное допустимое решение. Совокупность всех допустимых решений системы (2.1) есть выпуклое множе­ ство, или, другими словами, множество решений задачи линейного программирования выпукло. Поскольку это множество образовано плоскостями (гиперплоскостями), то оно имеет вид выпуклого мно­ гогранника. Базисное допустимое решение соответствует крайней точке выпуклого многогранника (его грани или вершине).

Если существует оптимальное решение задачи линейного про­ граммирования, то существует базисное оптимальное решение.

Целевая функция задачи ЛП есть уравнение плоскости (или ги­ перплоскости для более трех переменных). Пусть в вершинах (край­ них точках) выпуклого многоугольника мы установили «столбы», высота которых определяет значение целевой функции в данной

вершине. На эти «столбы» наложим плоскость (графическое пред­ ставление целевой функции). Очевидно, что максимальное и ми­ нимальное значения целевая функция задачи линейного програм­ мирования достигает либо в вершине выпуклого многогранника, либо на одной из его граней. Таким образом, решением (решени­ ями) задачи ЛП является точка, находящаяся в вершине выпуклого многогранника. Значит, для того чтобы найти решение, необходимо вычислять значения целевой функции в вершинах выпуклого мно­ гогранника, заданного условиями-ограничениями задачи.

§ 2.2. Симплекс-метод — основной метод решения задач линейного программирования

Рассмотрим задачу линейного программирования, записанную в канонической форме:

71

f { x ) = ^ C j X j — ►m i n

j = 1

при условиях

п

Предположим, что решение этой задачи существует. Чтобы найти оптимальное решение, необходимо найти допустимые базис­ ные решения, а из них выбрать оптимальное базисное решение.

Для

этого мы

должны поочередно из столбцов матрицы

||оу||,

г =

1, 2, . . . , т, j

= 1, 2, . . . , п, выбирать тп столбцов и решать

систе­

му тп уравнений с тп неизвестными. Такой метод требует решения

71!

С™ = —---------- систем уравнении, что практически невозможно га!(п —га)!

даже для небольших значений п.

В 1949 г. американский математик Дж. Данциг разработал симплекс-метод, ставший основным для решения задач линейно­ го программирования.

Приведем пример использования симплекс-метода для решения следующей задачи. Минимизировать функцию

/ ( х ) = 3 - Х 4 + Х 5

при ограничениях

Х2 + 2X4 + 3X5 —7 = 0,

£3 —Х4 — 3xs —2 = 0,

Xi + Х4 + Х5 - 2 = 0,

XI > 0 , Х2 ^ 0, £3 ^ 0 , Х4 ^ О, Х5 ^ 0.

Определитель матрицы, составленной из коэффициентов при

неизвестных х ь хг, хз в условиях-ограничениях, имеет вид

0

1

0

0

0

1

1

О

О

и не равен нулю. Поэтому ранг матрицы ограничений равен трем, базисными переменными являются х\, Х2, хз, а свободными пере­ менными— Х4, Xs.

Выразим базисные переменные через свободные: £] = 2 —14 —Х5,

£2 = 7 —2X4 —3X5, £3 2 I £4 I £ 5.

Базисное решение xi=2, £2 = 7, £ 3 = 2 (при нулевых значени­ ях свободных переменных £4 и £ 5) в данном случае является до­ пустимым (значения х \ , £ 2, £3 положительны). Значение целевой функции при таких значениях переменных есть /(х ) = 3, но оно может быть уменьшено, если увеличить значение переменной £4, входящей с отрицательным коэффициентом. Очевидно, что увели­ чивать £4 можно до тех пор, пока не будут нарушены условияограничения задачи, в частности пока переменные х\, Х2 и £3 будут

неотрицательны. Например, если £4 = 2, х$ = 0, то х\ = 0 ,

£2 = 3,

£3 = 4 —новое допустимое решение. При £ 5 = 0 имеем х\

= 0, ес­

ли £4=2; £2 = 0, если £4 = 3,5; £3 = 0, если £4 = —2. Чтобы ни одна из переменных х\, £2, £ 3 не стала отрицательной, необходимо вы­ брать наименьшее положительное отношение элементов столбца свободных членов к соответствующим коэффициентам при £4. Если £4 = 2, то значение xi становится равным нулю, таким образом х\

переводим в свободные переменные, а £ 4 = 2 — в базисные перемен­

ные. Ограничения и целевую функцию теперь необходимо выразить через xi H X S '.

£ 3 = 2 — Х\ —£5,

£ 2

= 3 + 2х\

— xs,

£ 3

= 4 — £1

—2xs,

f ( x ) = 3 2 + £1 + £ 5 + £ 5 = 1 + £1 + 2 £5 .

В данном случае любое увеличение значений свободных пере­ менных Х\ и £ 5 ведет к увеличению (но не к уменьшению) значений

целевой функции, т. е. получили оптимальное решение:

£ ( = 0 , £5=0, £ 2 = 3,

£3=4, £ 4 = 2,

fm in (.X ) =

1.

Какие выводы можно сделать из этого примера? Во-первых, необходимо так разделить базисные и свободные переменные, что­ бы получить допустимое базисное решение, а затем выразить базис­ ные переменные и целевую функцию через свободные переменные. Во-вторых, по знаку коэффициентов при неизвестных в целевой функции следует определить:

а) достигнуто ли уже оптимальное решение (т. е. нет отрица­ тельных коэффициентов);

б) значение какой переменной надо увеличить, т. е. какую пере­ менную следует перевести в свободные.

Другими словами, определяя минимальное положительное от­ ношение элементов столбца свободных членов к коэффициентам при новой свободной переменной, находим переменную, которую необходимо перевести из базисных в свободные. После этого вы­ ражаем условия-ограничения и целевую функцию через новые сво­ бодные переменные.

Процесс повторяют до тех пор, пока не будет получено оп­ тимальное решение. Если среди коэффициентов при неизвестных в целевой функции существует положительный, а все коэффициен­ ты в условиях-ограничениях в соответствующем столбце неположи­ тельны, то задача линейного программирования не имеет оптималь­ ного решения, минимальное значение целевой функции равно —оо.

Рассмотрим геометрическую интерпретацию симплекс-метода. В условия одной из первых задач линейного программирования, для которых Данциг разработал вычислительный метод, входили

ограничения вида

71

Эти ограничения в n -мерном пространстве определяют симплекс. Симплекс трехмерного пространства изображен на рис. 2.1. Рас­ смотрим неравенство х\ + Х2 ^ bi при условиях х\ ^ 0, хг ^ 0. Область решения этого неравенства показана на рис. 2.2. Данное неравенство можно преобразовать в уравнение введением слабой переменной £ 3. Тогда получим систему

х \ + х г + х $ = Ъ\, £ i ^ 0 , £ 2 ^ 0, £ з ^ 0 .

Областью решений этой системы является А А В С , показанный на рис. 2.1, если принять, что А = В = С = Ь\. Каждой точке тре­ угольной области А В С соответствует точка заштрихованной обла­ сти на рис. 2.2. Соответствие можно устанавливать, проецируя тре­

*1

0

Ь\

х х

Рис. 2.1. Симплекс трех­

Рис. 2.2. Область

реше­

мерного пространства

 

ния неравенства

угольную область А В С на плоскость х\, хг- Если придать слабой переменной £3 постоянное значение с, то £i и £2 должны удовле­ творять уравнению х\ + Х2 = Ь\ — с, которое является уравнением прямой, параллельной х\ + £2 = Ьь Если слабая переменная равна нулю, то £i + £2 = Ь\. Таким образом, значение слабой переменной

может служить мерой близости точки из треугольной области А В С к границе х\ + Х2 = bi полуплоскости, определяемой исходным не­ равенством.

В общем случае при использовании симплекс-метода процеду­ ру поиска решения начинают с рассмотрения допустимой вершины (крайней точки), а затем переходят в соседнюю вершину так, чтобы значение целевой функции «улучшилось».

Если S с Rn, то точка х называется крайней точкой (верши­ ной) множества S тогда и только тогда, когда не существует то­ чек х\, Х2 6 S, х\ Ф Х2, таких, что х = Xa;i + (1 —\)Х2 для X е (0, 1). Все крайние точки принадлежат границе множества.

В пространстве векторов свободных переменных возрастание от нуля значения одной из свободных переменных, при котором остальные свободные переменные остаются равными нулю, равно­ сильно движению из начала системы координат, образованной сво­ бодными переменными, по соотвествующей координатной оси. При этом, поскольку п — 1 свободных переменных равны нулю, п —1 ограничений задачи выполняются как равенства. Другими словами, все соседние с началом координат вершины (которые соответству­ ют текущему решению) связаны с началом координат п — 1 ребрами выпуклого многогранника. Возрастание от нуля значения некоторой свободной переменной может привести к тому, что эта переменная станет базисной.

Для того чтобы получить в качестве решения координаты вер­ шины, необходимо заменить одну из базисных переменных на сво­ бодную, т. е. произвести перемещение вдоль соответствующей координатной оси до тех пор, пока не будет достигнута другая вершина. Если двигаться дальше, то будет нарушено условие неот­ рицательности переменных. Таким образом, в симплекс-методе происходят движение в локальной координатной системе, началом которой является точка, соответствующая текущему решению, и пе­ ремещение вдоль ребра к той соседней вершине, в которой значение целевой функции «улучшается». После перехода в новую вершину рассматривают новую систему координат с началом в этой вер­ шине. Если движение осуществляют согласно критерию (выбирают минимальный отрицательный коэффициент при неизвестных в це­ левой функции), то это соответствует спуску по самому крутому

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