![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Со временем эти спекулятивные сделки вышли из-под контроля, что привело всех брокеров к банкротству. К тому же, финансовое положение брокерской фирмы было таково, что все деньги брокеров были вложены во внешних клиентов и сделки между самими брокерами, причем таким образом, что практически каждый брокер стал должником другого.
Брокеры, чьи активы позволяли погасить долги, были объявлены платежеспособными. Остальные через судебные инстанции должны были погасить свои долги в интересах сторонних клиентов. Поскольку активы и авуары несостоятельных брокеров меньше общего объема долгов, долги погашаются пропорционально их объемам.
Из-за финансовых затруднений неплатежеспособной группы брокеров судебные инстанции постановили, что заключенные ранее сделки должны выполняться только для удовлетворения определенных судом требований, поскольку брокеры не имеют собственных источников капитала. В частности, судебные инстанции требуют свести количество погашаемых сделок между брокерами к минимуму. Это означает, что если брокер А должен брокеру В сумму X, а брокер В — брокеру А сумму Y, то эти взаимные долги сведутся к одному с суммой долга |Х - Y|. Эта сумма считается долгом А перед В, если X > Y, и долгом В перед А, когда X < Y. Если X = У, долг погашен. Эта идея погашения взаимных долгов распространяется на все долги между брокерами.
Каковы ваши предложения по выходу из данной финансовой ситуации? В частности, ответьте на следующие вопросы.
1. Как рассчитать доли возвращаемых долгов?
2. К какому минимальному количеству можно свести взаимные долги между брокерами?
Задача основана на материалах статьи Taha Н. "Operations Research Analysis of a Stock Market Problem", Computers and Operations Research, Vol. 18, No. 7, pp.597-602, 1991.
ГЛАВА 7
ТЕОРИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Эта глава представляет строгий математический фундамент теории линейного программирования (ЛП). Здесь будет обоснован симплекс-метод и теория двойственности. Кроме того, будут рассмотрены такие эффективные вычислительные алгоритмы, как модифицированный симплекс-метод, метод декомпозиции, метод решения задач, содержащих ограничения на значения переменных, и методы параметрического программирования. В заключение будет представлен алгоритм Кармаркара, полностью отличный от симплекс-метода. Этот алгоритм наиболее эффективен при решении очень больших задач ЛП.
В этой главе используется аппарат матричной алгебры. Читатель, не знакомый с матричной алгеброй, может обратиться к приложению А.
В задачах линейного программирования пространство допустимых решений всегда имеет форму выпуклого множества. Множество называется выпуклым, если отрезок прямой, соединяющий две различные точки этого множества, полностью принадлежит данному множеству. Крайней точкой выпуклого множества является точка, принадлежащая этому множеству, но которая не лежит ни на каком отрезке прямой, соединяющей две различные точки этого множества. Фактически крайние точки — это то же самое, что и угловые точки, которые использовались в главах 2, 3 и 4.
На рис. 7.1 показаны два множества. Множество а, которое представляет типичное пространство решений задачи ЛП, является выпуклым множеством, тогда как множество б невыпуклое.
7.1. ОСНОВЫ СИМПЛЕКС-МЕТОДА
а
б
Рис. 7.1. Примеры выпуклого и невыпуклого множеств
Глава 7. Теория линейного программирования
В разделе 2.3 мы графически показали, что оптимальное (конечное) решение двухмерной задачи ЛП соответствует крайней (угловой) точке пространства допустимых решений. Этот результат основан на том факте, что в задачах ЛП любая допустимая точка представима как функция крайних точек пространства решений. Например, в выпуклом множестве на рис. 7.1, а имеется шесть крайних точек X,, Х2, Х6, произвольную допустимую точку X можно представить как линейную комбинацию крайних точек:
X - оцХ, + сс2Х2 + ОзХ3 + сс4Х4 + сс5Х5 + сс6Х6,
где все коэффициенты ос, > 0 и выполняется равенство
Таким образом, множество крайних точек полностью определяет пространство допустимых решений.
Пример 7.1.1
Покажем, что следующее множество является выпуклым.
С = {(х„ х,) | х, < 2, х2< 3, х, > 0, х2 >0}. Пусть X, ={х,',л2} и X, = {х2,х2} — две различные точки из множества С. Если множество С выпукло, тогда точка X = (х,, х2) = otjX, + о^Х, должна принадлежать этому множеству. Чтобы точка X принадлежала множеству С, ее координаты должны удовлетворять неравенствам, которые определяют это множество.
х, = а.х,1 + а,х,2 < а, х 2 + а, х 2 = 2.
х, = asx\ + а2х\ < а, хЗ + а, х3 = 3.
Таким образом (поскольку а, + а2 = 1), xi < 2 и х2 < 3. Так как коэффициенты а, и otj неотрицательны, то координаты также удовлетворяют условиям неотрицательности.
УПРАЖНЕНИЯ 7.1.1
1. Покажите, что множество Q = {xt, х21 х, + х2 < 1, х, > 0, х2 > 0} выпуклое. Существенно ли в данном случае условие неотрицательности переменных?
2. Покажите, что множество Q = {х,, х2| х> 1 или х2 > 2} не является выпуклым.
3. Найдите графически крайние точки выпуклого множества
Q = {х,, х21 х, + х2 < 2, х, > 0, х2 > 0}.
Затем покажите, что все пространство допустимых решений, совпадающее с множеством Q, можно определить как выпуклую комбинацию этих крайних точек. Таким образом, будет доказано, что любое ограниченное пространство решений в общем случае определяется только крайними точками.
4. Представьте внутреннюю точку (3, 1) пространства решений, показанного на рис. 7.2, как выпуклую комбинацию крайних точек А, В, С и D, где каждая крайняя точка должна иметь строго положительный весовой коэффициент.
7.1. Основы симплекс-метода
х2
5 4 3 2 1
О 1 2 3 4 5 6 Рис. 7.2. Пространство решений для упражнения 4
7.1.1. Базисные решения
В этом разделе задачу ЛП, записанную в стандартной форме (см. раздел 3.1), представим в новой форме записи с использованием матричных обозначений. Обозначим
через X = (Xj, х2.....хп)т n-мерный вектор переменных, через А — матрицу размер
тхп, содержащую коэффициенты левых частей ограничений, b = (ft,, b2, bm)T — m-мерный вектор правых частей ограничений, С = (cv с2, сп) — л-мерный вектор коэффициентов целевой функции. С помощью матричной формы записи стандартную задачу ЛП можно представить следующим образом.
Максимизировать или минимизировать г = СХ
при ограничениях
АХ = Ь, Х>0.
На основе стандартной формы для симплекс-таблиц из главы 3 (см. также рис. 4.1) т крайних справа столбцов матрицы А всегда можно представить в виде единичной матрицы I, для чего, возможно, придется надлежащим образом расположить переменные и использовать при необходимости искусственные переменные.
Базисное решение системы уравнений АХ = b получается путем присвоения п -т переменным нулевых значений и последующим решением системы из т уравнений относительно оставшихся т переменных (предполагается, что эта система имеет единственное решение). Теория линейного программирования устанавливает следующее соответствие между геометрическим определением крайних точек и алгебраическим определением базисного решения.
Крайние точки множества {X | АХ = Ь} <=> Базисные решения системы АХ = Ь. Это соответствие означает, что все крайние точки области решений задачи ЛП полностью определяются базисными решениями системы АХ = b и наоборот. Отсюда следует, что множество базисных решений содержит всю информацию, необходимую для оптимального решения задачи ЛП. Более того, если наложить условия неотрицательности X > 0, поиск оптимального решения ограничится только множеством допустимых базисных решений.
Глава 7. Теория линейного программирования
Чтобы формализовать определение базисного решения, представим систему АХ = b в векторной форме
где вектор Р; — j-й столбец матрицы А. Подмножество из т векторов Ру формирует базис В тогда и только тогда, когда эти векторы линейно независимы. Для этого необходимо (и достаточно), чтобы определитель матрицы В, состоящей из данных т векторов, был отличен от нуля, т.е. det(B) Ф О.1 В этом случае матрица В называется невырожденной. Обозначим через Хв вектор из т переменных, ассоциированных с векторами Р;, составляющих невырожденную матрицу В. Тогда Хв будет базисным решением, если он будет решением системы ВХВ = Ь.
Пусть В"1 — матрица, обратная к матрице В (напомним, что матрица В невырожденная). Тогда базисное решение находим по формуле:
хв = в'ь.
Если выполняется неравенство B"'b > 0, тогда Хв будет допустимым решением.
В заключение отметим, что количество базисных решений у системы из т уравнений с п неизвестными не превышает величины
т\(п — т)\
Пример 7.1.2
Найдем и классифицируем (как допустимые или недопустимые) все базисные решения следующей системы уравнений
В следующей таблице показаны все базисные решения. Матрица, обратная к матрице В, вычислена методами, приведенными в разделе А.2.7.
В
BXs = b
Решение
Статус
(Pi. Рз) (Рг, Рз)
Не является базисом
Л | 3> | (Л | ||||||
1 \* | г) | ы | ||||||
(■ Л | г | |||||||
1 1 | ||||||||
4 8 | = | |||||||
1 3 | ||||||||
ч~4 %) | *) | |||||||
Допустимое
Недопустимое
Здесь и далее автор обозначает через В как базис, т.е. совокупность базисных векторов, так и матрицу, составленную из этих векторов. Это не приводит к недоразумениям, так как из контекста всегда понятно, о чем идет речь. — Прим. ред.
7.1. Основы симплекс-метода
Рассмотрим эту же задачу, представив систему в векторной форме:
Здесь векторы Р,, Р2, Р3, b являются двухмерными; в общем виде они представимы как (о,, а2)т. На рис. 7.3 на плоскости (alt а2) показаны векторы данной системы. Например, вектор b = (4, 2)т, где а, = 4, а2 = 2.
Рис. 7.3. Векторное представление системы уравнений
Поскольку у нас только два уравнения (т = 2), базис должен состоять из двух векторов, выбранных среди Р,, Р2 и Р3. Из рис. 7.3 видно, что пары векторов (Р,, Р2) и(Р2Р3) могут быть базисами, поскольку векторы в этих парах независимы. Но пара векторов (Pj, Р3) не может составить базис, так как эти векторы линейно зависимы.
Алгебраический подход к определению базиса требует, чтобы определитель матрицы, составленной из векторов, претендующих на роль базисных, был отличен от нуля. Вычисления определителей показывают, что пары векторов (Рр Р2) и (Р2 Р3) будут базисами, а векторы (Р1; Р3) не могут составить базис.
det(P,, Р,) = det Q ^ j = (1 х (-2)) - (2 х 3) = -8 * 0. det(P2,P3) = detj Ъ ~J = (3x(_2W~ (_2х(_1)) = _8 mo-
deler,, Р3) = det
fl -Г 2 -2 = (1х(-2))-(2х(-1)) = 0.
Глава 7. Теория линейного программирования
УПРАЖНЕНИЯ 7.1.2
1. Представленные ниже системы уравнений а) и б) имеют единственные базисные решения, система в) — бесконечно много решений, а г) не имеет решения. Докажите это, представив решения графически на плоскости. На основании данных примеров выведите общие закономерности, определяющие у системы уравнений единственное решение, бесконечно много решений или отсутствие решений.
а) в) х1+3х2 = 2, Зх1+х2 = 3. 2л;, + &х2 = 4, лг, + Зл:2 = 2.
б) г) 2*, + Зх2 = 1, 2л:,-л:г = 2. 2л;, - 4л:2 = 2, -лг,-1-2л:2 = 1.
Определите графически, какая из следующих систем уравнений имеет единственное решение, бесконечно много решений или не имеет решений.
а) в) Д) 1 -з)Ц (l,
-1
б)
г) е) 2 1
2 1
<\ О -2
Я:
3. Дана следующая система уравнений.
'Г | V | |||||||
.0, | ,2, |
Определите, какой из следующих наборов векторов образует базис.
a) (Р„ Р2, Р3)
b) (Р„ Р2, Р4)
c) (Р2,Р„Р4)
d) (Р„ Р2, Р3, Р4)
4. Истинны или ложны следующие утверждения?
a) Если матрица В не вырождена, то система ВХ = b имеет единственное решение.
b) Система ВХ = b не имеет решения, если матрица В вырождена и вектор b независим относительно векторов, составляющих матрицу В.
c) Система ВХ = b имеет бесконечно много решений, если матрица В вырождена и вектор b зависим относительно векторов, составляющих матрицу В.
7.1. Основы симплекс-метода
7.1.2. Матричное представление симплекс-таблиц
В этом разделе мы используем матричную алгебру для построения симплекс-таблиц. Рассмотрим стандартную задачу ЛП
максимизировать г = СХ при ограничениях АХ = b, X > 0.
Эту задачу ЛП можно также записать следующим образом.
-С
Для любой симплексной итерации будем обозначать через Хв базисный вектор переменных, а через Св — вектор коэффициентов целевой функции, соответствующих этому базису. Поскольку все небазисные переменные равны нулю, стандартная задача ЛП будет сведена к задаче с целевой функцией г = СВХВ и ограничениями ВХВ = Ь, где текущее решение удовлетворяет следующему уравнению.
-с,
В
ся в-] | с, в-V | |
В"; | , в-ь, |
Здесь при обращении матрицы использовались формулы из раздела А.2.7.
Симплекс-таблица получается из исходной задачи ЛП путем вычислений по следующей формуле.
С, В
в-С А
'\ сввр | (°1 |
,0 в 1, | W |
Выполнив вычисления по этой формуле, получаем такую симплекс-таблицу.
Базис | X; | Решение |
z | С8В"1Р;-С, | CsB"1b |
х8
В"1 Р,
в^ь
В этой таблице необходимо вычислить только обратную матрицу В-1, так как другие элементы таблицы получаются из исходных данных задачи.
Представленная симплекс-таблица имеет большое значение, так как является основой всех вычислительных алгоритмов линейного программирования. В частности, на ней основаны модифицированный симплекс-метод, метод решения задач с ограниченными переменными и метод декомпозиции, которые будут описаны в следующих разделах.
Пример 7.1.3
Рассмотрим следующую задачу ЛП.
Максимизировать г = дс, + 4х2 + 7х3 + 5х4
при ограничениях
2*! + хг + 2х3 + 4.х4 = 10, Здс1 - х2 - 2х3 + 6xt = 5, х„ х2, х3, xt>0. Пусть В = (Р,, Р2) является допустимым базисом.
Глава 7. Теория линейного программирования
На основании В = (Р,,Р2) имеем Хв = (х,, х2)т и Св = (1,4). Вычисляем обратную матрицу В"1:
В
Находим текущее базисное решение
2 1
3 -1
Л | Л | |
\5 | ъ) |
х.=Г I = в ь =
5 5 3 _2 V5 5J
Далее вычисляем в симплекс-таблице значения коэффициентов ограничений:
(±0(2 1 2 Л) (1 0 0 2 В"'(Р„Р,.Р,,Р4)= ■< 5
1 " 3 4 1 -МЗ -1 -2 6 [0 1 2 0
Теперь находим коэффициенты z-строки симплекс-таблицы:
Св[В-,(Р1.Р2,Рз,Р4)]-С = (1,4)^ ° ° ^-(1,4,7,5) = (0.0.1.-3). Наконец, вычисляем значение целевой функции:
z = CaB-,b = CBXe=(l,4)
= 19,
Таким образом, получаем значения следующей симплекс-таблицы.
Базис | Х1 | хг | хз | Хл | Решение |
z | -3 | ||||
хз | |||||
хг |
Еще раз подчеркнем, что в этой таблице основные вычисления связаны с нахождением обратной матрицы В-1, другие элементы таблицы получаются на основе вычисленной матрицы В"1 и исходных данных задачи.
УПРАЖНЕНИЯ 7.1.3
1. Пусть в примере 7.1.3 В = (Р3, Р4). Покажите, что соответствующее базисное решение является допустимым и постройте соответствующую симплекс-таблицу.
2. Дана следующая задача ЛП.
Максимизировать г = 5х, + 12х2 + 4х3
при ограничениях
х, + 2х2 + х3 + х4 = 10,
^3* ^4 ~
Определите, какие из следующих наборов векторов образуют базис: (Р,, Р2),
(р2, р3), (р3, р4).
7.2. Модифицированный симплекс-метод
3. Дана следующая задача ЛП.
Минимизировать г = 2хх + х2
при ограничениях
Зяг, -(- х2 — х3~ 3, 4л:, + Зх2 - х4 = 6, + 2jc2 + хь = 3, Хр х2, яг3, х4, я:5 > 0.
Вычислите симплекс-таблицу, соответствующую Хв = (xv х2, хь)Г, и определите, будет ли это решение допустимым и оптимальным.
4. Дана следующая симплекс-таблица с оптимальным решением задачи ЛП.
Базис | Х1 | хг | х3 | Xt | х5 | Решение |
z | ? | |||||
х3 | -1 | |||||
х2 | ||||||
Х1 | -1 |
Здесь переменные ха, xt и хь являются дополнительными (остаточными). С помощью матричных вычислений реконструируйте исходную задачу ЛП, затем вычислите оптимальное значение целевой функции.
5. В стандартной задаче ЛП разобьем вектор X на два — X = (X,, Х„)т. Здесь вектор Х„ соответствует начальному базисному решению, состоящему из дополнительных и искусственных переменных (так что В = I). Тогда матрицу А можно представить как А = (D, I). Вектор С также разделим на два вектора С, и С„ в соответствии с векторами X, и Х„. Покажите, что в этом случае симплекс-таблицу можно записать в следующем виде, который в точности соответствует виду симплекс-таблицы из главы 3.
Базис | X, | Xi, | Решение |
z | CSB"1D-C| | СвВ 1 - Сц | с8вчь |
х8 | B"1D | В'1 | в-'ь |
7.2. МОДИФИЦИРОВАННЫЙ СИМПЛЕКС-МЕТОД
В разделе 7.1.1 показано, что оптимальное решение задачи линейного программирования всегда находится среди множества базисных (допустимых) решений. Выполнение симплекс-метода начинается с допустимого базисного решения В, затем осуществляется переход к следующему допустимому базисному решению, которое улучшает (по крайней мере, не ухудшает) значение целевой функции, и так до тех пор, пока не будет достигнуто оптимальное решение.
Модифицированный симплекс-метод предусматривает выполнение точно таких же этапов, как и обычный табличный симплекс-метод, описанный в главе 3. Основное отличие между ними заключается в том, что в обычном симплекс-методе при переходе от одного базиса к другому используется процедура преобразования строк симплекс-таблицы с помощью метода Гаусса-Жордана, тогда как
Глава 7. Теория линейного программирования
в модифицированном симплекс-методе эти преобразования осуществляются путем вычисления обратной матрицы В-1, и основные действия связаны именно с вычислением этой матрицы.
7.2.1. Условия оптимальности и допустимости
Рассмотрим стандартную задачу ЛП.
я
Максимизировать или минимизировать г = СХ при ограничениях ^PjX, =b, х.>
0,j= 1, 2, га.
Для данного базисного вектора Хв и соответствующих базиса В и вектора коэффициентов целевой функции Св на каждой итерации вычисления значений симплекс-таблицы выполняются по следующим формулам (см. раздел 7.1.2).
г + £ц-су)*;=св в-'ь
(XB)i+X(B-'PJ),x;=(B-1b)l,
j=l
где Zj - с\ = СВВ_1Р; - с\. Здесь запись (V), используется для обозначения t-ro элемента вектора V.
Условие оптимальности симплекс-метода. Из уравнения для значений z-строки, приведенного выше, следует, что увеличение значения небазисной переменной xf приводит к возрастанию (убыванию) значения целевой функции z выше текущего значения СВВ_1Ь только в том случае, если разность zj - с\ строго отрицательна в задаче максимизации или строго положительна в задаче минимизации. В противном случае переменная не может улучшить текущее решение и должна остаться небазисной с нулевым значением. Таким образом, любая небазисная переменная, удовлетворяющая этому условию, может быть включена в базис, что, возможно, улучшит значение целевой функции. В симплекс-методе действует эмпирическое правило, которое гласит, что в качестве вводимой в базис переменной выбирается переменная, которой соответствует наибольший (по модулю) отрицательный коэффициент г — с\ в z-строке в задаче максимизации или наибольший положительный аналогичный коэффициент в задаче минимизации.
Условие допустимости симплекс-метода. Определение исключаемого из базиса вектора основано на проверке ограничения, представленного в виде равенства, соответствующего i-й базисной переменной. Это равенство имеет следующий вид.
(ХД.+^В-'РДх^В-'Ь),.
Обозначим через Pk вводимый вектор, определенный из условия оптимальности, а через хк — вводимую в базис переменную, принимающую положительное значение. Поскольку все остальные небазисные переменные сохраняют нулевые значения, равенство ограничения, соответствующее базисной переменной (Хв),, можно записать следующим образом.
(Хв), = (В-1Ь)1-(В-1РДх, Это уравнение показывает, что при (В~'РД > 0 возрастание переменной хк не приведет к отрицательному значению базисной переменной (Хв)( только в том случае, если будет выполняться неравенство
(B"'b), - (В_1РД хк > 0 для всех L
7.2. Модифицированный симплекс-метод
Таким образом, максимальное значение вводимой переменной xk можно вычислить по следующей формуле.
Базисная переменная, на которой достигается этот минимум, становится исключаемой.
УПРАЖНЕНИЯ 7.2.1
1. Дана следующая задача ЛП.
Векторы Р,, Р2, Р3 и Р4 показаны на рис. 7.4. Предположим, что текущим базисом является В = (Рр Р2).
a) Если вектор Р3 ввести в базис, какой вектор необходимо из него исключить, чтобы полученное базисное решение было допустимым?
b) Может ли вектор Р4 быть частью допустимого базиса?
2. Докажите, что для всех базисных переменных соответствующие разности гу - су равны нулю.
3. Докажите, что если в задаче максимизации (минимизации) для всех небазисных переменных х; выполняется неравенство г. - с. > О (< 0), то задача имеет единственное оптимальное решение. Если же для некоторых небазисных переменных х. выполняется равенство г.-су = 0, задача имеет альтернативное оптимальное решение.
4. Пусть начальное базисное решение задачи ЛП сформировано только из дополнительных остаточных переменных. С помощью матричного представления симплекс-таблицы покажите, что применение процедуры, описанной в разделе 3.3, где уравнение для целевой функции записано как
Максимизировать г — с,*, + с2х2 + с3х3 + с4х4
при ограничениях
РЛ+РЛ + РЛ + РЛ-Ь х„ х2, х3, х4>0.
Рис. 7.4. Векторы для упражнения 1
Глава 7. Теория линейного программирования
автоматически приведет к вычислению разностей г. - с. для всех переменных в начальной симплекс-таблице.
5. Пусть начальное базисное решение задачи ЛП сформировано только из искусственных переменных. Используя матричное представление симплекс-таблицы, покажите, что применение процедуры исключения искусственных переменных из целевой функции (для чего использовались ограничения-равенства), описанной в разделе 3.4.1, приведет к вычислению разностей zt - Cj для всех переменных в начальной симплекс-таблице.
6. Пусть дана задача ЛП, в которой не накладываются ограничения на знак переменной хк. Докажите, что после замены хк=хк - хк, где х\ и х~к неотрицательны, невозможна ситуация, когда переменные х\ и хк заменяют одна другую в альтернативных оптимальных решениях.
7. Дана задача ЛП, записанная в стандартной форме и имеющая т ограничений (в виде равенств) и п неизвестных. Определите число смежных крайних точек, которые можно достичь из невырожденной крайней точки пространства решений. Почему здесь существенно условие невырожденности крайней точки?
8. Применяя условие допустимости симплекс-метода, предположим, что хг — базисная переменная, имеющая нулевое значение, а дс.— вводимая. Объясните, почему для того, чтобы переменную л:г исключить из базиса, необходимо выполнение неравенства (В_1Р;)г>0. Какие возникнут проблемы при выполнении неравенства (В-1РД.<0? (Подсказка. При ответе учитывайте, что переменная хг должна остаться неотрицательной.)
Дата публикования: 2014-11-18; Прочитано: 529 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!