книги / Математические методы принятия решений
..pdfсо знаком минус, поэтому и рассматривались неотрицательные ко эффициенты.
Рассмотрим графическое решение этой задачи. Поскольку зада ча двумерная, то решим ее графически. Система неравенств-огра ничений определяет многоугольник допустимых решений (рис. 2.3).
Рис. 23. Графическое решение задачи планирования выпуска продукции пошивочного предприятия
Сначала определим полуплоскости, задаваемые неравенствамиограничениями задачи. Для этого построим прямые, заменив в огра ничениях знаки неравенств на знаки равенств. Чтобы выяснить, какую часть плоскости описывает неравенство, подставим в него пробную точку, например (0,0), и установим, удовлетворяет ли она неравенству. Если неравенство выполнено, то искомая полуплос кость включает точку (0,0). В противном случае выбирают другую половину плоскости.
Для первого неравенства прямую 1\: х\ + 3,5хг = 350 |
—строим |
|
по точкам xi = 0 , хг = 350/3,5 = 100 и хг = 0, х\ |
= 350. |
Пробная |
точка (0,0) удовлетворяет неравенству 0 < 350, |
т. е. точка (0,0) |
входит в искомую полуплоскость (она отмечена стрелками от пря мой li). Прямую I2 : 2х\ + 0,5x2 = 240 — строим аналогично по двум точкам: х\ = 0 , хг = 240/0,5 = 480 и x j = 0, х\ = 240/2 = 120.
Точка (0,0) принадлежит искомой полуплоскости. Рассмотрим последнее неравенство 10xi + 20x2 ^ 1400; ему соответствует пря мая xi + 2x2 = 140, —также построенная по двум точкам: х\ = 0, Х2 = 140/2 = 70 и Х2 = 0, х\ = 140. Точка (0,0) не удовлетворяет неравенству 0 ^ 1400, т. е. необходимо рассматривать полуплос кость, не содержащую точку (0,0). Пересечение пяти полуплос костей дает выпуклый пятиугольник A B C D E . Для нахождения максимума функции /(х ) надо построить линию уровня. Пусть /(х ) = 0; тогда уравнение линии уровня I будет прямая 10xi + + 20x2 = 0, проходящая через начало координат параллельно пря мой I5. Градиент целевой функции V / = {10; 20} показывает на правление ее возрастания. Прямую I перемещаем параллельно самой себе в направлении V / до тех пор, пока она не выйдет из об ласти D. Получаем точку С —точку пересечения прямых 1\ и1у.
Xi+3,5x2= 350, x i+ Х2= 150.
Решая полученную систему уравнений, находим оптимальное решение — координаты точки С (х\ = 70, хг = 80) и вычисляем мак симальное значение целевой функции
/тах(я) = Ю • 70 + 20 • 80 = 2300 (уел. ед.).
Замечание. Допустим, что в рассматриваемой задаче требова лось найти минимум целевой функции
/(х ) = lOxi + 20x2.
В этом случае линия уровня «вошла» бы в область по линии I5, т. е. все точки отрезка А Е являлись бы оптимальным решением (беско нечное множество решений).
§ 2.5. Двойственность в задачах линейного программирования
В § 1.6 было показано, что иногда проще решать двойствен ную задачу математического программирования, чем прямую. Со гласно теории двойственности (см. §1.6) для каждой задачи ЛП можно построить другую задачу линейного программирования,
называемую двойственной. Переход к решению двойственной зада чи в ряде случаев имеет преимущества при построении алгоритмов решения задач ЛП.
Запишем обе задачи.
Прямая задача:
минимизировать функцию
|
|
П |
|
|
f i x ) = |
2 C j X j |
|
при условиях |
3 = 1 |
|
|
|
|
||
п |
|
|
|
^ |
1 Q>ij3Cj ^ |
i |
1) 2 , • . . , A/j |
j = |
\ |
|
|
n |
~~ |
|
|
^ |
î —A ~1“ 1, . • •, m, |
||
j=l |
|
|
|
J= 1,2,..., J,
^• ^ 0 , j = Z+ l , . . . , n .
Двойственная задача:
максимизировать функцию
771
ф(у) = 2 biyi
г=1
при условиях
Уг^О, *= 1,2, ...,fc,
Уг^О, t = fc+
771 |
CjiVi ^ |
|
|
^ |
J = |
••*»!» |
|
г=1 |
|
|
|
m |
tojiVi = Cj, |
J = i + 1, • • •, П. |
|
2 |
|||
i=l |
|
|
|
Симметричность обеих задач очевидна. Неравенству одной из них соответствует неотрицательная переменная другой, а равен ству — свободная переменная другой. Задача, двойственная к двой ственной задаче, есть исходная (прямая) задача. Таким образом, любую из этой пары задач можно считать прямой.
Для стандартного и канонического видов задачи ЛП двойствен ные задачи можно записать следующим образом.
С т а н д а р т н ы й в и д
Прямая задача: |
Двойственная задача: |
|||||
минимизировать функцию |
максимизировать функцию |
|||||
|
|
|
П |
|
|
771 |
f i x |
) = |
2 c j X j |
ф(у) = |
2 |
||
при условиях |
3 =1 |
при условиях |
г=1 |
|||
|
|
|
||||
п |
|
|
|
т |
|
|
2 CHjXj ^ |
è j , |
i |
= l , 2 , . . . , 77i, |
2 ^jiVi ^ |
Cji |
j = 1 >2, ..., 72, |
3=1 |
|
|
|
i = 1 |
|
|
X j ^ 0 , |
j |
= |
1,2, ... ,n . |
Уг^О, |
г = 1 ,2 ,...,m. |
К а н о н и ч е с к и й ви д
Прямая задача:
минимизировать функцию
п
/(ж ) = 2 cj xj
j = 1
при условиях
71
У! CiijXj = Ь{9 i = 1,2,..., 771, j=l
Xj ^ 0 , j = 1,2, ...,77.
Двойственная задача:
максимизировать функцию
т
ф(у) = Е biVi г=1
при условиях
т
djiVi ^ |
J |
b ^ |
г=1
г = 1,2, ...,тп.
Сравнивая обе задачи, нетрудно видеть, что:
1) составленную из коэффициентов при переменных в исходной задаче матрицу
( оц |
а 12 |
а\п \ |
021 |
À22 |
0>2п |
А = |
|
|
\Omi |
атп2 |
О'гпп/ |
и аналогичную матрицу в двойственной задаче
( «и |
а ц |
ат1 ^ |
On |
а>22 |
Ûm2 |
и |
|
|
\Oln |
а2п |
0>тп/ |
получают друг из друга простой заменой строк столбцами с сохра нением их порядка (такую операцию называют транспонированием
иобозначают верхним индексом «т»);
2)в исходной задаче имеются п переменных и т ограничений;
вдвойственной — т переменных и п ограничений;
3)в правых частях систем ограничений каждой из задач стоят коэффициенты целевой функции, взятой из другой задачи;
4)в исходной задаче в систему ограничений входят неравен ства типа > и требуется минимизировать целевую функцию /(х);
вдвойственной задаче в систему ограничений входят неравенства
типа ^ и требуется максимизировать целевую функцию ф(у).
В теории двойственности доказана следующая
Теорема. Пусть дана пара двойственных задач линейного про граммирования (заданных в стандартном виде).
Тогда справедливо одно и только одно из следующих утвер ждений:
1) обе задачи имеют оптимальные решения и оптимальные значения целевых функций равны, т. е.
min f(x) = m ax ср(у);
2) одна из задач не имеет ни одного допустимого решения, а другая имеет по крайней мере одно допустимое решение, но не имеет оптимального решения (целевая функция на множестве до пустимых решений неограничена);
3) ни одна пара задач не имеет допустимых решений.
Между решениями двойственных друг другу задач линейно го программирования существуют и другие соотношения, которые устанавливаются теоремами о дополняющей нежесткости: для то го чтобы допустимые решения х н у прямой и двойственной задач были оптимальными, необходимо и достаточно, чтобы в точке экс тремума выполнялись следующие соотношения:
у ( А х - Ь ) = 0 , |
(2.5) |
(с - уА)х = 0. |
(2.6) |
Условие (2.5) равносильно условиям:
Т1
а) если y i > 0, то X a ijXj = bit г = 1 , 2 , . . . , т ;
пJ'=1
б) если |
X aijXj > bi, |
то |
yi = 0, |
|
г = |
1,2, ... ,т . |
|
|
j = \ |
|
|
|
|
|
|
Условие (2.6) равносильно условиям: |
|
||||||
|
771 |
<4 jyù |
|
Xj = 0, |
j |
|
|
в) если |
Cj > X |
то |
= |
1,2 , ... , n; |
|||
|
|
|
m |
j |
|
|
|
г) если |
Xj > 0, |
то Cj = X |
ацУи |
= |
\,2 , . . . , п. |
||
|
|
|
г= 1 |
|
|
|
Эти условия представляют собой условия дополняющей нежест кости в слабой форме. Выпишем условия дополняющей нежестко сти в сильной форме:
|
Уг = О, то |
п |
ац хз ~ к > О, |
i = |
1,2,..., т; |
д) если |
2 |
||||
|
п |
|
|
|
|
е) если |
2 aijxj ~ к = О, то у* > О, |
г = |
1, 2, ... , ш. |
||
Может |
случиться, |
что |
условия у* = 0 и |
2 CHjxj = к выпол- |
|
|
|
|
|
|
з=i |
иены одновременно. Однако всегда существует по крайней ме
ре одна пара оптимальных решений, для которых условия у* = О
71
и 2 aijXj = к не могут выполняться одновременно.
3 =1
Нетрудно проверить, что, если вектор х —решение прямой за дачи, а вектор у —решение двойственной задачи, то сумма произ ведений соответствующих координат векторов х н у равна нулю (скалярное произведение векторов х и у равно нулю).
Рассмотрим геометрическую интерпретацию теории двойствен ности в задачах ЛП. Выберем задачу линейного программирования стандартного вида: минимизировать функцию
|
|
|
71 |
|
f(x) = |
2 CjXj |
|
при условиях |
п |
|
J=l |
|
dijXj ^ |
к. |
i ~ 1 >2, ... , 771, |
|
3 = 1 |
j |
= 1,2, ...,тг. |
|
X j^O , |
В § 1.3-1.5 было показано, что обычным условием существова ния безусловного экстремума функции во внутренней точке являет ся равенство нулю градиента функции в этой точке. Если при этом должны выполняться некоторые ограничения, налагаемые на пере менные, в виде равенств, то условием существования экстремума в допустимой точке является требование, чтобы в этой точке гради ент функции и нормали к поверхностям, заданным соответствую щими ограничениями, были «сонаправлены». Более точно, градиент функции в этой точке должен быть неотрицательной линейной ком бинацией нормалей к поверхностям-ограничениям. В задаче ЛП каждое неравенство определяет допустимую область — полупро странство. Для того чтобы допустимая точка х была оптимальной, необходимо, чтобы градиент целевой функции в точке х выражал ся в виде неотрицательной линейной комбинации направляющих
векторов тех и только тех ограничений, которые в точке х обраща ются в равенства, т. е. градиент целевой функции (вектор с) есть неотрицательная линейная комбинация нормалей (векторов) а* для ограничений, обращающихся в равенство
771+71
с = 2 У*а*’ У* > 0 =>(ai ’x ) = b*, i=l
где ^ — соответствующие коэффициенты линейной комбинации векторов о*.
Из условий дополняющей нежесткости в слабой форме следует:
а) если |
yi> 0, то (а*, х) — Ь{ = 0, |
г = 1, 2, ...,то + п; |
б) если |
(o j,х) — bi > 0, то yi = 0, |
г = 1 ,2, . . . , т 4- п. |
Из условий дополняющей нежесткости в сильной форме сле |
||
дует: |
yi = 0, то (а*, я) —£>i > О, |
г = 1, 2, . . . , т + п; |
а) если |
||
б) если |
(a,i,x) — b i—0, то уг> 0, |
г = 1, 2, . . . , т + п. |
На рис. 2.4 изображены три гиперплоскости (щ, x) — bi = О, г = 1,2,3, и нормали к ним a i, аг, аз. Если вектор с такой, как пока зано на рис. 2.4, то он может быть выражен в виде неотрицательной линейной комбинации векторов ai и аг\ вершина, обозначенная кружком, соответствует оптимальному решению. Здесь выполнены условия дополняющей нежесткости как в слабой, так и в сильной
форме: î/з > 0 (аз, х) - |
63 > 0, |
у\ > 0 |
(ai, х) - i>i = 0, у2 > 0 *> |
о (аг, х) —62 = 0. Если |
вектор |
с таков, |
как показано на рис. 2.5, |
т. е. с — нормаль к одной из гиперплоскостей, (ai ,x ) — b\ = 0, то оп тимальная вершина, обозначенная кружком, не удовлетворяет
Рис. 2.4. Пример выпол- |
Рис. 2.5. Пример нарушения |
нения условия дополня- |
сильной формы условия до- |
ющей нежесткости |
полняющей нежесткости |
сильной |
форме условия |
дополняющей |
нежесткости, поскольку |
|
и J/2 = 0, |
и |
(<i2, х) — Ъ2 = 0. Однако точка, помеченная крестом на |
||
рис. 2.5 |
и |
являющаяся |
оптимальным |
решением, удовлетворяет |
и слабой, и сильной формам дополняющей нежесткости:
< *(аих)-Ь\ = 0, у2 = 0 <&(а2, х ) - Ь 2 > 0 , у3 =0<&(а3,х) - Ь3 >0.
Для решения задач ЛП разработан так называемый двойствен ный симплекс-метод. Процедуру начинают с нахождения двойст венно допустимого решения, когда одновременно 6» ^ 0 и Cj ^ 0, г = 1,2,..., т, j = 1,2,..., п, и сохраняют условие двойственной допустимости на протяжении всех шагов. Этот метод реализует ся посредством таких же таблиц, как и в прямом симплекс-ме тоде.
Двойственный симплекс-метод позволяет решать задачи ЛП и в случае, когда, сформировав единичную матрицу из коэффи циентов для т базисных переменных, мы получаем отрицательные значения некоторых элементов в столбце свободных членов Ь», т. е. мы не находимся в области допустимых решений. Получим так называемый псевдоплан, если Д j ^ 0,
|
т |
|
Д^* Cj Zj Cj |
Cîüîj, j |
1,2,..., Tl, |
|
г=1 |
|
где Ci, i = 1,..., m, —коэффициенты целевой функции исходной за дачи, стоящие в базисных столбцах; оу — соответствовующие коэф фициенты условий-ограничений в симплекс-таблице.
Если в псевдоплане |
есть хотя бы одно отрицательное чис |
ло bi < 0 такое, что для |
него все соответствовующие оу ^ 0, j = |
= 1 , ... ,п , то исходная задача не имеет решения. Если в псев доплане имеются числа bi < 0 такие, что для некоторых из них существуют числа ûÿ < 0, то можно перейти к новому псевдопла ну (при котором значение целевой функции задачи на максимум не уменьшится). Когда все bi будут неотрицательными, а все Д , ^ 0, то получено оптимальное решение. Но здесь сначала определяется, какая переменная должна быть выведена из базиса, а затем —какая должна быть введена в базис.
Поцедура двойственного симплекс-метода состоит в следующем:
1)находим псевдоплан задачи;
2)проверяем оптимальность этого псевдоплана:
—псевдоплан оптимален;
—задача не разрешима;
—переход к новому псевдоплану;
3)выбираем разрешающую строку с помощью определения наибольшего по абсолютной величине отрицательного элемента Ь*
встолбце свободных членов и разрешающий столбец с помощью нахождения наименьшего по абсолютной величине отношения
m i n ( ^ - ) , a,ij < 0, Д ^ < 0 , j = 1 , 2 , . . n;
4)переводим г-ю базисную переменную в свободные, при этом переменная j-ro столбца становится базисной переменной;
5)переходим к п. 2).
Всегда существует возможность выбора: решать прямую или двойственную задачу, использовать прямой или двойственный сим плекс-метод. Выбирают ту модификацию задачи, которую проще решать. Например, если исходная задача содержит переменные, на которые не наложено условие неотрицательности, то удобнее решать двойственную задачу. Прежде чем записать двойственную задачу, необходимо в исходной прямой задаче освободиться от огра ничений в виде равенств, поскольку они будут порождать в двой ственной задаче переменные, принимающие значения на всей дей ствительной оси R 1.
В симплекс-таблице оптимального решения прямой задачи ЛП записано и решение двойственной к ней задаче. Чтобы это понять, надо элементы строки, в которой выписаны коэффициенты целе вой функции, представить в виде Cj —Zj, Zj = cTbyj, j = 1,2,..., n, где сь —вектор, состоящий из коэффициентов целевой функции ис ходной задачи, стоящих в базисных клетках оптимального реше ния, Uj —элементы j -то столбца симплекс-таблицы оптимального решения, и добавить в симплекс-таблицу дополнительную стро ку Zj. На пересечении строки Zj и столбцов базисных переменных исходной задачи (обычно это последние m столбцов) находится оптимальное решение двойственной задачи. Таким образом, опти мальное решение у* двойственной задачи —это тп последних эле ментов строки Zj оптимальной симплекс-таблицы прямой задачи; а оптимальным решением х* прямой задачи являются п последних элементов строки Zj оптимальной таблицы двойственной задачи.
Известны, кроме того, методы одновременного решения прямой
и двойственной задач, например метод последовательного сокра-
п
щения невязок, где величина 2 OijXj — b{, i = 1,2,..., т, является
з- 1
невязкой при фиксированных значениях Xj.
§ 2.6. Задача оптимальной организации поставки грузов от поставщиков к потребителям (транспортная задача)
Симплекс-методом возможно решить любую задачу ЛП. Однако существует много методов решения задач линейного программиро вания, в которых учитываются конкретные особенности решаемой задачи, а потому более эффективные. Решим таким методом транс портную задачу.
|
Задача. Перевозится однородный груз из трех |
пунктов Л ь |
|
Ау, Аз к четырем местам назначения В\, Bi, By, |
В4. Из пунк |
||
та |
А\ может быть направлено 50 т, из A i —40 т, |
из A 3 —20 т. |
|
В пункты |
назначения должен поступить груз: в пункт В\ —30 т, |
||
в |
Бг —25 |
т, в By —35 т, в £4 — 20 т. Расстояния |
Cij, i = 1,2,3, |
j = 1,..., 4, от г-го поставщика j -му потребителю приведены в уг лах клеток табл. 2.6.
Таблица 2.6
Исходные данные
Пункт
л,
Аг
Л3
Потребности
в,
3 |
я н |
2*21
3*31
О- |
II U) О |
Вг Вг
2 |
*12 |
4 |
*13 |
|
3 |
*22 |
1 |
*23 |
|
2 |
х 32 |
4 |
*зз |
|
|
|
|||
|
Ьг = 25 |
|
by = 3 |
5 |
в4
'*14
5 *24
4 *34
S' il К) о
Запасы
ai = 50
Ü2 = 4 0
аз = 20
п о
Необходимо составить план перевозок, обеспечивающий наи меньший общий пробег транспорта в тонно-километрах при усло вии, что все запасы будут вывезены, а потребитель получит точно необходимое количество груза.
Мы сформулировали сбалансированную транспортную задачу при условии, что количество груза, имеющееся у поставщиков,