| К главной странице 2 части |
- Основная задача линейного программирования
- Задача об использовании сырья
- Задача об использовании мощностей оборудования
- Транспортная задача
- Задача о питании
- Основная задача линейного программирования с ограничениями-неравенствами
- Применение MAPLE к решению задач линейного программирования
Основная задача линейного программирования
|
(1) |
Требуется среди всех неотрицательных решений заданной системы (1) выбрать такое, при котором форма F принимает наименьшее значение (минимизируется).
О п р е д е л е н и е 1. Система (1) называется системой ограничений данной задачи.
З а м е ч а н и е 1. В ряде задач неизвестные x1, …,хn должны удовлетворять не только равенствам, но и неравенствам. Эти неравенства также называются ограничениями задачи.
З а м е ч а н и е 2. Ограничения равенства (1) не исчерпывают всех ограничений основной задачи, потому что переменные x1, …, xn обязаны удовлетворять условиям неотрицательности
x1 ≥ 0, …, xn ≥ 0.
О п р е д е л е н и е 2. Всякое неотрицательное решение x01, …, x0n (x0i ≥ 0, i = 1, … , n) системы (1) назовем допустимым.О п р е д е л е н и е 3. Допустимое решение системы (1), минимизирующее форму F, назовем оптимальным.
З а м е ч а н и е 3. Как правило, оптимальное решение единственно. Однако, возможны случаи, когда оптимальных решений оказывается бесчисленное множество.
Обратимся теперь к изучению системы ограничений (1). Задача имеет смысл лишь в том случае, когда система (1) совместна, т. е. когда (согласно теореме Кронекера – Капелли) ранги основной и расширенной матриц системы совпадают. Как известно из линейной алгебры, этот общий ранг r не может превосходить числа n неизвестных. При r = n решение x01, …, x0n системы (1) единственно находится, например, по теореме Крамера. Если это решение допустимо (x0i ≥ 0, i = 1, … , n), то оно, очевидно, и является оптимальным (так как никаких других решений вообще нет). Если же среди чисел x0i имеется хотя бы одно отрицательное, то задача не имеет решения. В самом деле, оптимального решения не существует потому, что оно по самому определению должно быть неотрицательным, а единственное имеющееся решение таковым не является.
Таким образом, интерес представляет лишь случай r < n, и только он будет нами рассматриваться в дальнейшем.
Для сведения задач к основной задаче линейного программирования нужно уметь сводить вопрос о максимизации формы к вопросу о минимизации и переходить от ограничений, заданных в виде неравенств, к некоторым им эквивалентным ограничениям - равенствам.
Покажем, как это сделать.
1) Очевидно, что форма F достигает наибольшей величины при тех же самых значениях неизвестных x1, …, xn, при которых форма F1 = − F достигает наименьшей величины. Следовательно, максимизация формы F равносильна минимизации формы F1 = − F . Тем самым задача максимизации сводится к задаче минимизации.
З а м е ч а н и е 4. Наибольшее значение формы F равно наименьшему значению формы F1, взятому с обратным знаком.
2) Допустим что среди ограничений задачи имеется некоторое неравенство. Его всегда можно записать в виде
α1 x1 + α2 x2 + … + αn xn + β ≥ 0. (3)
Введем новую, так называемую добавочную, неизвестную, связанную с неизвестными x1, …, xn уравнениемxn+1 = α1 x1 + α2 x2 + … + αn xn + β. (4)
Очевидно, что условие неотрицательности величины xn+1 эквивалентно выполнимости неравенства (3). Иными словами, если система x01, …, x0n, x0(n+1) неотрицательных значений переменных x1, …, xn, xn+1 удовлетворяет уравнению (4), то система x01, …, x0n удовлетворяет неравенству (3). И обратно, если величины x01, …, x0n неотрицательны и удовлетворяют неравенству (3), то величинаx0(n+1) = α1 x01 + α2 x02 + … + αn x0n + β,
найденная из уравнения (4), окажется неотрицательной.Итак, ограничение-неравенство xn+1 ≥ 0 эквивалентно ограничению-неравенству (3). Ценою введения в задачу добавочных неизвестных удается все ограничения-неравенства заменить ограничениями-равенствами. При этом число добавочных неизвестных равно числу ограничений-неравенств в исходной задаче.
Приемы 1) и 2) указывают конкретные пути перехода от различных частных задач к основной задаче линейного программирования.
Задача об использовании сырья
Т а б л и ц а 1
|
Т а б л и ц а 2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Требуется составить такой план выпуска продукции видов П1 и П2 , при котором доход предприятия от реализации всей продукции оказался бы максимальным.
Математическую форму поставленной задачи изучим на следующем числовом примере (см. таблицу 2). Допустим, что предприятие выпускает х1 единиц продукции вида П1, и x2 единиц продукции вида П2. Для этого потребуется 2 х1 + 3 x2 единиц сырья S1 (см. таблицу 2). Так как в наличии имеется всего 19 единиц сырья S1 то должно выполняться неравенство
Аналогичные рассуждения, проведенные для остальных видов сырья, позволяют записать следующие неравенства:
| 2 х1 + 3 x2 ≤ 19 | ( сырьё S1) |
| 2 х1 + x2 ≤ 13 | ( сырьё S2) |
| 3 x2 ≤ 15 | ( сырьё S3) |
| 3 x1 ≤ 18 | ( сырьё S4) |
Дана система
|
(5) |
Если все члены неравенств системы (5) ограничений этой задачи перенести в правую часть, то они примут следующий вид:
|
(7) |
|
(8) |
Выпишем матрицу I системы (8):
Согласно общей схеме теперь следует выразить четыре неизвестные через оставшиеся две. Из системы (8) видно, что четыре последние неизвестные х3, х4, х5, х6 уже выражены через первые неизвестные х1, х2. Отметим, что форма F1 также выражена через х1 и х2. Потребовав неотрицательности всех неизвестных, мы приходим к системе неравенств
|
(9) |
Следует, оставив вначале в стороне ограничения-неравенства, преобразовать отдельно ограничения-равенства, а именно: выбрать в них те неизвестные, которые можно принять за свободные, и выразить через них остальные (несвободные). Далее, в исходные ограничения-неравенства и форму вместо несвободных неизвестных следует подставить их выражения через свободные. Теперь остается лишь систему полученных неравенств пополнить неравенствами, выражающими неотрицательность всех неизвестных (как свободных, так и несвободных), В итоге мы придем к задаче (А).
Для наглядности применим геометрический метод решения
|
(10) |
Fl = - 7хl - 5х2.
Введем на плоскости прямоугольную декартову систему координат х1Оx2. Геометрическое место точек на плоскости, координаты которых удовлетворяют системе линейных неравенств, образует выпуклый многоугольник. Этот многоугольник называется многоугольником решений данной системы неравенств. Стороны этого многоугольника располагаются на прямых, уравнения которых получаются, если в неравенствах системы знаки неравенств заменить на точные равенства. А сам этот многоугольник есть пересечение полуплоскостей, на которые делит плоскость каждая из указанных прямых. В нашем случае такими прямыми являются
|

Рис. 1.
- 7хl - 5х2 = C (11)
Это уравнение определяет на плоскости некоторую прямую. Она является искомым геометрическим местом точек, в которых Fl принимает данное значение С. Меняя значение С, получаем различные прямые. Все они параллельны между собой, т. е. образуют семейство параллельных прямых. Через каждую точку плоскости проходит одна прямая этого семейства. Каждую из прямых семейства (11) принято называть линией уровня (линией равных значений) формы Fl. При переходе от одной прямой к другой значение формы Fl изменяется. На рисунке 2 показаны прямые, отвечающие значениям С = - 17,5; - 35; - 52,5.
Рис. 2.
Из курса аналитической геометрии известно, что коэффициенты при переменных в уравнении прямой являются проекциями вектора n, перпендикулярного к прямой. В нашем случае n = (- 7; - 5). Мы наблюдаем, что направление убывания формы F1 противоположно направлению вектора n.
Обратимся вновь к рис. 1. Рассмотрим любую точку P0 ( x01, x02) многоугольника решений. Через эту точку проходит прямая семейства (23). Вдоль всей этой прямой форма F1 принимает такое же значение, как и в точке P0 , т. е. C0 = - 7 x01 - 5 x02.
На рис. 1 пунктиром показана прямая, отвечающая значению С = - 35. Очевидно, что точка Р0 не соответствует оптимальному решению задачи. Действительно, внутри многоугольника решений можно найти точки, отвечающие значениям формы меньшим, чем C0. Для этого достаточно перейти в направлении вектора g от прямой C0 к другой, ей параллельной прямой семейства (11), все еще пересекающей многоугольник решений. Теперь должно быть ясным, что оптимальное решение определится точкой Q (5, 3), а наименьшее значение формы F1 равно
F1 min = - 7·5 - 5·3 = - 50 .
Итак, оптимальное решение задачи 1 найдено:х1 = 5, х2 = 3.
Если вспомнить условие этой задачи, то для наиболее рационального плана использования сырья, гарантирующего предприятию наибольший доход, следует выпускать 5 единиц продукции вида П1 и 3 единицы вида П2, причем максимальный доход составит Fmax = 50. Отметим, что при этом сырье видов S1 и S2 используется полностью, а S3 и S4 – не полностью. (В этом можно убедиться, подсчитав расход сырья при найденном плане выпуска продукции: х1 = 5 , х2 =3.)З а м е ч а н и е 5. Как известно, задача нахождения экстремальных точек функции рассматривается в курсе математического анализа. Там она решается методами дифференциального исчисления. Почему же, спрашивается, нельзя использовать эти методы для решения задач линейного программирования? Дело в том, что методы дифференциального исчисления позволяют определять только такие экстремальные точки, которые находятся строго внутри рассматриваемой области, а не на границе ее. В задачах же линейного программирования оптимальное значение формы достигается всегда на границе многоугольника решений, как, например, в задаче 1. Вот почему методы дифференциального исчисления неприменимы для решения таких задач.
Задача об использовании мощностей оборудования
Таблица 3
|
Таблица 4
|
Таблица 5
|
Требуется составить оптимальный (наиболее рациональный) план работы машин, а именно найти, сколько времени каждая из машин А и В должна быть занята изготовлением каждого из видов продукции П1 и П2 с тем, чтобы стоимость всей продукции предприятия оказалась минимальной и в то же время был бы выполнен заданный план как по времени, так и по номенклатуре.
Найдем математическую формулировку поставленной задачи. Введем для неизвестных нам времен работы машин по изготовлению продукции следующие обозначения (таблица 5). Здесь, например, х1 означает время работы машины А по изготовлению продукции П1. Аналогичный смысл имеют величины х2, х3, х4.
Поскольку машины А и В работают одновременно, то выполнение плана по времени будет обеспечиваться неравенствами
х3 + х4 ≤ T.
Изготовлением продукции П1 машина А занята х1 единиц времени. При этом за единицу времени она производит a1 единиц продукции этого вида. Следовательно, всего машина А изготовит а1х1 единиц продукции П1. Аналогично машина В изготовит b1х3 единиц продукции вида П1 . Поэтому для обеспечения плана по номенклатуре должно выполняться равенство
Задана система
|
(12) |
Отметим один из важных вариантов поставленной задачи. Потребуем, чтобы машины А и В работали все время Т, отведенное им по плану. Тогда неравенства
х3 + х4 ≤ T.
а2х2 + b2х4 ≥ N2 ,
Перепишем систему (12) ограничений этой задачи в виде
|
(14) |
|
(15) |
Конкретизируем задачу, придав величинам из (12) и (13), которые должны быть известны по условию задачи, следующие числовые значения: а1 = 6, а2 = 24, b1 = 13, b2 = 13, N1 =30, N2 = 96, T = 6, α1 =4, α2 = 47, β1 = 13, β2 = 26.
Тогда система ограничений и форма F примут вид
| x1 + x2 ≤ 6 | (16) | |
| x3 + x4 ≤ 6 | ||
| 6 x1 + 13 x3 = 30 | ||
| 24 x2 + 13 x4 = 96 | ||
| F = 4 x1 + 47 x2 + 13 x3 + 26 x4 | ||
(16)
,
F = 4 x1 + 47 x2 + 30 - 6 х1 + 2 (96 - 24 х2 )
или, после обычных алгебраических преобразований, имеемx1 + 4 x2 ≥ 8,
F = 222 - 2 x1 - x2.
30 - 6 x1 ≥ 0,
96 - 24 x2 ≥ 0.
x1 ≤ 5, x2 ≤ 4.
Учитывая теперь исходное неравенство x1 + x2 ≤ 6 и неотрицательность всех величин, получим следующую систему ограничений - неравенств:
|
(17) |
F = 222 - 2 x1 - x2. (18)
Тем самым задача 2 оказалась сведенной к задаче (А).Дадим геометрическое истолкование и найдем решение задачи 2. После приведения ее к задаче (А) получили следующие ограничения и форму
|
(19) |
F = 222 - 2 x1 - x2. (20)
Введем на плоскости систему координат x1Ox2 и вычертим многоугольник решений системы (19) подобно тому, как это сделано в задаче 1. Для этого заменим все неравенства из (19) равенствами и построим соответствующие прямые (рис. 3).
Рис. 3.
Из чертежа видно, что наименьшее значение F на многоугольнике решений достигается в точке М(5, 1) пересечения прямых (III) и (V). Минимальное значение формы при х1 = 5, х2 = 1 находится из (20):
F = 222 - 2·5 - 1 = 211.
Каков же экономический смысл полученного решения? Напомним, что величины xi(i = 1, 2,3,4) означают времена работы машин А и В по изготовлению продукции П1 и П2. Величины х1 = 5 и х2 = 1 нами уже найдены, а величины х3 и x4 находим из уравнений (16):
Транспортная задача
Таблица 6
Пункты назначения Пункты отправления |
Пункты назначения | Запасы груза | ||
| B1 | B2 | B3 | ||
| A1 | с11 | с12 | с13 | a1 |
| A2 | с21 | с22 | с33 | a2 |
| Потребность в грузе | b1 | b2 | b3 | Σai = Σbj |
Обозначим через xij количество единиц груза, предназначенного к отправке из пункта Ai в пункт Bj. Тогда количество груза, который планируется к доставке в пункт B1 из пунктов А1 и А2, составит
x13 + x23 = b3.
x21 + x22 + x23 = а2.
Полученные соотношения легче запомнить, если все величины свести в таблицу 7 (матрицу перевозок).Таблица 7
Пункты назначения Пункты отправления |
Пункты назначения | Запасы груза | ||
| B1 | B2 | B3 | ||
| A1 | x11 | x12 | x13 | a1 |
| A2 | x21 | x22 | x33 | a2 |
| Потребность в грузе | b1 | b2 | b3 | |
Из условий задачи с очевидностью вытекает, что общая стоимость F всех перевозок равна
F = c11 x11 + c12 x12 + c13 x13 + c21 x21 + c22 x22 + c23 x23 = Σ cij xij
Таким образом, математическая формулировка транспортной задачи (по критерию стоимости перевозок) такова.Задана система
|
(22) |
F = Σ cij xij (23)
Требуется среди всех неотрицательных решений xij системы (6) выбрать такое, при котором форма F минимизируется (достигает наименьшего значения).Отметим, что при решении транспортной задачи следует учитывать важное соотношение
Σ ai = Σ bj, (22 ')
вытекающего из самого условия задачи.Впрочем, возможны и иные постановки транспортной задачи, когда условие (22 ') не выполнено. Однако мы их оставляем здесь без рассмотрения.
Для определенности придадим известным по условию задачи величинам некоторые числовые значения и сведем их в таблицу 6.
| B1 | B2 | B2 | Запасы | |
| A1 | 4 | 9 | 3 | 20 |
| A2 | 4 | 8 | 1 | 30 |
| Потребности | 10 | 30 | 10 | 50 |
|
(23) |
F = 4 x11 + 9 x12 + 3 x13 + 4 x21 + 8 x22 + x23 (24)
Выпишем матрицу системы:
З а м е ч а н и е 6. Если выполнено условие
Σai = Σbj, (25)
выражающее равенство суммарных запасов груза в пунктах отправления суммарным потребностям пунктов назначения, то система (23) всегда совместна. Действительно, если отвлечься от стоимости перевозок (т. е. не добиваться минимизации формы F), то совершенно очевидно, что существует бесчисленное множество способов организовать требуемые перевозки. Более того, если проследить, как только что определялся ранг расширенной матрицы, то можно убедиться, что появление нуля в первой строке и последнем столбце этой матрицы явилось следствием условия (25):20 + 30 = 10 + 30 + 10.
Итак, ранг системы r = 4, общее число неизвестных n = 6, значит, число свободных неизвестных k = n - r = 2.Примем в качестве свободных неизвестных x11 и x12. Выражая из (23) остальные неизвестные через свободные, получим
|
(26) |
F = 4 x11 + 9 x12 + 3 x13 + 4 x21 + 8 x22 + x23,
а после подстановки выражений несвободных неизвестных через свободные примет видF = 330 - 2 x11 - x12.
Наконец, для придания задаче 3 формы задачи (А) следует записать требование неотрицательности всех неизвестных xij:
|
(27) |
Перейдем к геометрическому толкованию и заодно решим задачу 3. Ограничения и минимизируемая форма этой задачи таковы:
|
(28) |
F = 330 - 2 x11 - x12.
Введем систему координат на плоскости. На этот раз оси обозначим x11 и х12. Вычертим многоугольник решений и одну из линий уровня формы F.
Остальные значения xij находятся из уравнений (26):
Задача о питании
| Питательные вещества | Норма | Виды пищи | |
| n1 | n2 | ||
| B1 –жиры | b1 | a11 | a12 |
| B2 –белки | b2 | a21 | a12 |
| B3 –углеводы | b3 | a31 | a13 |
| B4 –вода | b4 | a41 | a14 |
| B5 –витамины | b5 | a51 | a15 |
| Стоимость | c1 | c2 | |
Пусть x1 и х2 „ количество пищи видов π1 и π2, приобретаемых человеком (подразумевается, что вся приобретаемая пища потребляется). В этом случае общие запасы жиров в двух видах пищи составляют
a11 x1 + a12 x2
и не должны быть меньше минимальной нормы b1. Это требование приводит к неравенствуa11 x1 + a12 x2 ≥ b1.
Знак неравенства (а не точного равенства) возникает потому, что при выбранной системе питания в приобретенной пище жиров может оказаться и больше минимальной нормы. Аналогичные рассуждения приводят еще к четырем неравенствам:a21 x1 + a22 x2 ≥ b2,
a31 x1 + a32 x2 ≥ b3,
a41 x1 + a42 x2 ≥ b4,
a51 x1 + a52 x2 ≥ b5.
Задана система
ai1 x1 + ai2 x2 ≥ bi (i = 1, …, 5) (29)
пяти линейных неравенств с двумя неизвестными x1, x2 и линейная формаТребуется среди всех неотрицательных решений системы (8) найти такое, которое сообщает форме F наименьшее значение (минимизирует F).
Основная задача линейного программирования с ограничениями-неравенствами
|
(31) |
Если теперь вместо величин xk+1, … , xn в выражении (31) для формы F подставить их значения из (17), то форма F примет другой вид:
Решая основную задачу, ограничимся лишь неотрицательными (допустимыми) решениями системы (31). Поэтому с необходимостью должны выполняться неравенства
xi ≥ 0 (i = 1, 2, …, n). (33)
Если при этом учесть равенства (33), то получаем для i = k + 1, k + 2 , …, n неравенства
|
|
(34) |
x0 (k+i) = αi1 x01 + αr2 x2 + … + αrk xk + βr
получим, очевидно, неотрицательное (допустимое) решение системы (31), а значит, и системы (1). Тем самым вместо того, чтобы искать неотрицательные (допустимые) решения системы равенств (1), можно искать все решения системы неравенств (31).В результате мы пришли к следующей математической задаче. Дана система (31), содержащая n линейных неравенств относительно k неизвестных x1, …, xk и линейная форма
Требуется среди всех решений системы (31) выбрать такое, при котором форма F достигает наименьшего значения. Решение системы неравенств (21), сообщающее форме F наименьшее значение, назовем, как и прежде, оптимальным.
Из хода наших рассуждений очевидно, что основная задача линейного программирования эквивалентна только что сформулированной задаче. Эту задачу естественно называть основной задачей линейного программирования с ограничениями-неравенствами. Краткости ради, назовем ее основной задачей в форме (А) или просто задачей (А).
Применение MAPLE к решению задач линейного программирования
>A := linalg[matrix](4, 2, [2, 3, 2, 1, 0, 3, 0, 3]):
>B := [19, 13, 15, 18]:
>C := [-7, -5]:
>cond := {x1 >= 0, x2 >= 0, x1*A[1, 1]+x2*A[1, 2] <= B[1], x1*A[2, 1]+x2*A[2, 2] <= B[2], x1*A[3, 1]+x2*A[3, 2] <= B[3], x1*A[4, 1]+x2*A[4, 2] <= B[4]}:
>F := x1*C[1]+x2*C[2]:
>minimize(F, cond):
{x1=5,x2=3}