Линейное программирование: постановка задач и графическое решение
ПЛАН
Введение.
Литература.
Введение.
Линейное программирование - это наука о методах исследования и отыскания наибольших и наименьших значений линейной функции, на неизвестные которой наложены линейные ограничения. Таким образом, задачи линейного программирования относятся к задачам на условный экстремум функции. Казалось бы, что для исследования линейной функции многих переменных на условный экстремум достаточно применить хорошо разработанные методы математического анализа, однако невозможность их использования можно довольно просто проиллюстрировать.
Действительно, путь необходимо исследовать на экстремум линейную функцию Z = С 1 х 1 +С 2 х 2 +... +С N x N
при линейных ограничениях
a 11 x 1 + a 22 x 2 + ... + a 1N Х N = b 1
a 21 x 1 + a 22 x 2 + ... + a 2N Х N = b 2
. . . . . . . . . . . . . . .
a М1 x 1 + a М2 x 2 + ... + a МN Х N = b М
Так как Z - линейная функция, то = С j (j = 1, 2, ..., n), то все коэффициенты линейной функции не могут быть равны нулю, следовательно, внутри области, образованной системой ограничений, экстремальные точки не существуют. Они могут быть на границе области, но исследовать точки границы невозможно, поскольку частные производные являются константами.
Для решения задач линейного программирования потребовалось создание специальных методов. Особенно широкое распространение линейное программирование получило в экономике, так как исследование зависимостей между величинами, встречающимися во многих экономических задачах, приводит к линейной функции с линейными ограничениями, наложенными на неизвестные.
Даны линейная функция
(1.1) Z = С 1 х 1 +С 2 х 2 +... +С N x N
и система линейных ограничений
a 11 x 1 + a 22 x 2 + ... + a 1N Х N = b 1
a 21 x 1 + a 22 x 2 + ... + a 2N Х N = b 2
. . . . . . . . . . . . . . .
a i1 x 1 + a i2 x 2 + ... + a iN Х N = b i (1.2)
. . . . . . . . . . . . . . .
a M1 x 1 + a M2 x 2 + ... + a MN Х N = b M
(1.3) x j 0 (j = 1, 2, ... ,n)
где а ij , Ь j и С j - заданные постоянные величины.
Найти такие неотрицательные значения х 1 , х 2 , ..., х n , которые удовлетворяют системе ограничений (1.2) и доставляют линейной функции (1.1)минимальное значение.
Общая задача имеет несколько форм записи.
Векторная форма записи. Минимизировать линейную функцию Z = СХ при ограничениях
(1.4) А 1 х 1 + А 2 x 2 + ... + А N x N = А о , X 0
где С = (с 1 , с 2 , ..., с N ); Х = (х 1 , х 2 , ..., х N ); СХ - скалярное произведение; векторы
A 1 , A 2 ,..., A N , A 0
состоят соответственно из коэффициентов при неизвестных и свободных членах.
Матричная форма записи . Минимизировать линейную функцию, Z = СХ при ограничениях АХ = А 0 , Х 0, где С = (с 1 , с 2 , ..., с N ) - матрица-cтрока; А = (а ij ) - матрица системы;
Х - матрица-столбец, А 0 - матрица-столбец
Запись с помощью знаков суммирования. Минимизировать линейную функцию Z = С j х j при ограничениях
0пределение 1. Планом или допустимым решением задачи линейного программирования называется Х = (х 1 , х 2 , ..., х N ), удовлетворяющий условиям (1.2) и (1.3).
0пределение 2. План Х = (х 1 , х 2 , ..., х N ) называется опорным, если векторы А (i = 1, 2, ..., N), входящие в разложение (1.4) с положительными коэффициентами х , являются линейно независимыми.
Так как векторы А являются N-мерными, то из определения опорного плана следует, что число его положительных компонент не может превышать М.
0пределение 3. Опорный план называется невырожденным, если он содержит М положительных компонент, в противном случае опорный план называется вырожденным.
0пределение 4 . Оптимальным планом или оптимальным решением задачи линейного программирования называется план, доставляющий наименьшее (наибольшее) значение линейной функции.
В дальнейшем рассмотрено решение задач линейного программирования, связанных с нахождением минимального значения линейной функции. Там, где необходимо найти максимальное значение линейной функции, достаточно заменить на противоположный знак линейной функции и найти минимальное значение последней функции. Заменяя на противоположный знак полученного минимального значения, определяем максимальное значение исходной линейной функции.
Рассмотрим задачу линейного программирования, система ограничений которой задана в виде неравенств.
Найти минимальное значение линейной функции
(1.5) Z = С 1 х 1 +С 2 х 2 +... +С N x N
при ограничениях
a 11 x 1 + a 22 x 2 + ... + a 1N Х N b 1
a 21 x 1 + a 22 x 2 + ... + a 2N Х N b 2
(1.6) . . . . . . . . . . . . . . .
a M1 x 1 + a M2 x 2 + ... + a MN Х N b M
(1.7) x j 0 (j = 1, 2, ... ,n)
Совокупность чисел х 1 , х 2 , ..., х N , удовлетворяющих ограничениям (1.6) и (1.7), называется решением. Если система неравенств (1.6) при условии (1.7) имеет хотя бы одно решение, она называется совместной, в противном случае - несовместной.
Рассмотрим на плоскости х 1 Ох 2 совместную систему линейных неравенств
a 11 x 1 + a 22 x 2 b 1
a 21 x 1 + a 22 x 2 b 2
. . . . . . . .
a M1 x 1 + a M2 x 2 b M
x 1 0, x 2 0
Это все равно, что в системе (1.6) - (1.7) положить N=2. Каждое неравенство этой системы геометрически определяет полуплоскость с граничной прямой
a i1 x 1 + a i2 x 2 = b i ,(i = 1, 2, ..., m). Условия неотрицательности определяют полуплоскости соответственно с граничными прямыми х = 0, х = 0. Система совместна, поэтому полуплоскости, как выпуклые множества, пересекаясь, образуют общую часть, которая является выпуклым множеством и представляет собой совокупность точек, координаты каждой из которых являются решением данной системы (рис. 1.1).
Совокупность этих точек (решений) назовем многоугольником решений. Он может быть точкой, отрезком, лучом, много-угольником, неограничен-ной многоугольной облас-тью.
Если в системе ограничений (1.6) - (1.7) n = 3, то каждое нера-венство геометрически представляет полупространство трехмерного пространства, граничная плоскость которого a i1 x 1 + a i2 x 2 + a i3 x 3 = b i ,(i = 1, 2, ..., n), а условия неотрицательности – полупрост-ранства с граничными плоскостями соответственно х j = 0 (j = 1, 2, 3). Если система ограничений совместна, то эти полупространства, как выпуклые множества, пересекаясь, образуют в трехмерном пространстве общую часть, которая называется многогранником решений . Многогранник решений может быть точкой, отрезком, лучом, многоугольником, многогранником, многогранной неограниченной областью. Пусть в системе ограничений (1.6) - (1.7) n 3; тогда каждое неравенство определяет полупространство n-мерного пространства с граничной гиперплоскостью a i1 x 1 + a i2 x 2 + a iN x N = b i (i = 1, 2, ..., m), а условия неотрицательности – полупространства с граничными гиперплоскостями х j 0 (j = 1, 2, ..., n).
Если система ограничений совместна, то по аналогии с трехмерным пространством она образует общую часть n-мерного пространства, называемую многогранником решений, так как координаты каждой его точки являются решением.
Таким образом, геометрически задача линейного программирования представляет собой отыскание такой точки многогранника решений, координаты которой доставляют линейной функции минимальное значение, причем допустимыми решениями служат все точки многогранника решений.
Графический метод основан на геометрической интерпретации задачи линейного программирования и применяется в основном при решении задач двумерного пространства и только некоторых задач трехмерного простран6тва, так как довольно трудно построить многогранник решений, который образуется в результате пересечения полупространств. Задачу пространства размерности больше трех изобразить графически вообще невозможно.
Пусть задача линейного программирования задана в двумерном пространстве, т. е. ограничения содержат две переменные.
Найти минимальное значение функции
(2.1) Z = С 1 х 1 +С 2 х 2
при
a 11 x 1 + a 22 x 2 b 1
(2.2) a 21 x 1 + a 22 x 2 b 2
. . . . . . . .
a M1 x 1 + a M2 x 2 b M
(2.3) х 1 0, х 2 0
Допустим, что система (2.2) при условии (2.3) совместна и ее многоугольник решений ограничен. Каждое из неравенств (2.2) и (2.3), как отмечалось выше, определяет полуплоскость с граничными прямыми: a i1 x 1 + a i2 x 2 + a i3 x 3 = b i ,(i = 1, 2, ..., n), х 1 =0, х 2 =0. Линейная функция (2.1) при фиксированных значениях Z является уравнением прямой линии: С 1 х 1 + С 2 х 2 = const. Построим многоугольник решений системы ограничений (2.2) и график линейной функции (2.1) при Z = 0 (рис. 2.1). Тогда поставленной задаче линейного прграммирования можно дать следующую интерпретацию. Найти точку многоугольника решений, в которой прямая С 1 х 1 + С 2 х 2 = const опорная и функция Z при этом достигает минимума.
Значения Z = С 1 х 1 + С 2 х 2 возрастают в направлении вектора N =(С 1 , С 2 ), поэтому прямую Z = 0 передвигаем параллельно самой себе в направлении вектора Х. Из рис. 2.1 следует, что прямая дважды становится опорной по отношению к многоугольнику решений (в точках А и С), причем минимальное значение принимает в точке А. Координаты точки А (х 1 , х 2 ) находим, решая систему уравнений прямых АВ и АЕ.
Если многоугольник решений представляет собой неограниченную многоуголь-ную область, то возможны два случая.
Случай 1. Прямая С 1 х 1 + С 2 х 2 = const, передвигаясь в направлении вектора N или противоположно ему, постоянно пересекает многоугольник решений и ни в какой точке не является опорной к нему. В этом случае линейная функция не ограничена на многоугольнике решений как сверху, так и снизу (рис. 2.2).
Случай 2. Прямая, пере-двигаясь, все же становится опорной относительно многоу-гольника решений (рис. 2.2, а – 2.2, в). Тогда в зави-симости от вида области ли-нейная функция может быть ограниченной сверху и неограниченной снизу (рис. 2.2, а), ограниченной снизу и неограниченной сверху (рис. 2.2, б), либо ограниченной как снизу, так и сверху (рис. 2.2, в).
2.1. Примеры задач, решаемых графическим методом.
Решим графическим методом задачи использования сырья и составления рациона.
Задача использования сырья. Для изготовления двух видов продукции Р 1 и Р 2 используют три вида сырья: S 1 , S 2 , S 3 . Запасы сырья, количество единиц сырья, затрачиваемых на изготовление единицы продукци, а так же величина прибыли, получаемая от реализации единицы продукции, приведены в таблице 2.1.
Таблица 2.1.
Вид сырья |
Запас сырья |
Количество единиц сырья, идущих на изготовление единицы продукции |
|
Р 1 |
Р 2 |
||
S 1 |
20 |
2 |
5 |
S 2 |
40 |
8 |
5 |
S 3 |
30 |
5 |
6 |
Прибыль от единицы продукции, руб. |
50 |
40 |
Необходимо составить такой план выпуска продукции, чтобы при ее реализации получить максимальную прибыль.
Решение.
Обозначим через х 1 количество единиц продукции Р 1 , а через х 2 – количество единиц продукции Р 2 . Тогда, учитывая количество единиц сырья, расходуемое на изготовление продукции, а так же запасы сырья, получим систему ограничений:
2х 1 + 5х 2 20
8х 1 + 5х 2 40
5х 1 + 6х 2 30
которая показывает, что количество сырья, расходуемое на изготовление продукции, не может превысит имеющихся запасов. Если продукция Р 1 не выпускается, то х 1 =0; в противном случае x 1 0. То же самое получаем и для продукции Р 2 . Таким образом, на неизвестные х 1 и х 2 должно быть наложено ограничение неотрицательности: х 1 0, х 2 0.
Конечную цель решаемой задачи – получение максимальной прибылипри реализации продукции – выразим как функцию двух переменных х 1 и х 2 . Реализация х 1 единиц продукции Р 1 и х 2 единиц продукции Р 2 дает соответственно 50х 1 и 40х 2 руб. прибыли, суммарная прибыль Z = 50х 1 + 40х 2 (руб.)
Условиями не оговорена неделимость единица продукции, поэтому х 1 и х 2 (план выпуска продукции) могут быть и дробными числами.
Требуется найти такие х 1 и х 2 , при которых функция Z достинает максимум, т.е. найти максимальное значение линейной функции Z = 50х 1 + 40х 2 при ограничениях
2х 1 + 5х 2 20
8х 1 + 5х 2 40
5х 1 + 6х 2 30
х 1 0, х 2 0.
Построим многоугольник решений (рис. 2.3).
Для этого в системе координат х 1 Ох 2 на плоскости на плоскости изобразим граничные прямые
2х 1 + 5х 2 = 20 (L 1 )
8х 1 + 5х 2 = 40 (L 2 )
5х 1 + 6х 2 = 30 (L 3 )
х 1 = 0, х 2 = 0.
Взяв какую-нибудь точку, например, начало координат, установим, какую полуплоскость определяет соответствующее неравенство (эти полуплоскости на рис. 2.3 показаны стрелками). Многоугольником решений данной задачи является ограниченный пятиугольник ОАВСD.
Для построения прямой 50х 1 + 40х 2 = 0 строим радиус-вектор N = (50;40) = 10(5;4) и через точку O проводим прямую, перпендикулярную ему. Построенную прямую Z = 0 перемещаем параллельно самой себе в направлении вектора N. Из риc. 2.3 следует, что опорной по отношению к многоугольнику решений эта прямая становится в точке С, где функция Z принимает максимальное значение. Точка С лежит на пересечении прямых L 1 и L 2 . Для определения ее координат решим систему уравнений
8x 1 + 5х 2 = 40
5х 1 + 6х 2 = 30
Оптимальный план задачи: х 1 = 90/23 = 3,9; х 2 = 40/23 = 1,7. Подставляя значения х 1 и х 2 в линейную функцию, получаем Z max = 50 3,9 + 40 1,7 = 260,3
Таким образом, для того чтобы получить максимальную прибыль в размере 260,3 руб., необходимо запланировать производство 3,9 ед. продукции Р 1 и 1,7 ед. продукции Р 2 .
Задача составления рациона. При откорме каждое животное ежедневно должно получать не менее 9 ед. питательного вещества S 1 , не менее 8 ед. вещества S 2 и не менее 12 ед. вещества S 3 . Для составления рациона используют два вида корма. Содержание количества елиниц питательных веществ в 1 кг каждого вида корма и стоимость 1 кг корма приведены в таблице 2.2.
Таблица 2.2.
Питательные вещества |
Количество единиц питательных веществ в 1 кг корма. |
|
Корм 1 |
Корм 2 |
|
S 1 |
3 |
1 |
S 2 |
1 |
2 |
S 3 |
1 |
6 |
Стоимость 1 кг корма, коп. |
4 |
6 |
Необходимо составить дневной рацион нужной питательности, причем затраты на него должны быть минимальными.
Решение.
Для составления математической модели обозначим через х 1 и х 2 соответственно количество килограммов корма 1 и 2 в дневном рационе. Принимая во внимание значения, приведенные в таблице 2.2, и условие, что дневной рацион удовлетворяет требуемой питательности только в случае, если количество единиц питательных веществ не меньше предусмотренного, получаем систему ограничений
3х 1 + х 2 9
х 1 + 2х 2 8
х 1 + 6х 2 12
х 1 0, х 2 0.
Если корм 1 не используется в рационе, то х 1 =0; в противном случае x 1 0. Аналогично имеем х 2 0. То есть должно выполняться условие неотрицательности переменных: х 1 0, х 2 0.
Цель данной задачи – добиться минимальных затрат на дневной рацион, поэтому общую стоимость рациона можно выразить в виде линейной функции Z = 4х 1 + 6х 2 (коп.)
Требуется найти такие х 1 и х 2 , при которых функция Z принимает минимальное. Таким образом, необходимо найти минимальное значение линейной функции Z = 4х 1 + 6х 2 при ограничениях
3х 1 + х 2 9
х 1 + 2х 2 8
х 1 + 6х 2 12
х 1 0, х 2 0.
Построим многоугольник решений (рис. 2.4). Для этого в системе координат х 1 Ох 2 на плоскости изобразим граничные прямые
3х 1 + х 2 = 9 (L 1 )
х 1 + 2х 2 = 8 (L 2 )
х 1 + 6х 2 = 12 (L 3 )
х 1 = 0, х 2 = 0.
Взяв какую-нибудь точку, например, начало координат, установим, какую полуплоскость определяет соответствующее неравенство (эти полуплоскости на рис. 2.4 показаны стрелками). В результате получим неограниченную многоугольную область с угловыми точками А, В, С, D.
Для построения прямой 4х 1 + 6х 2 = 0 строим радиус-вектор N = (4;6) и через точку O проводим прямую, перпендикулярную ему. Построенную прямую Z = 0 перемещаем параллельно самой себе в направлении вектора N. Из риc. 2.4 следует, она впервые коснется многогранника решений и станет опорной по отношению к нему в угловой точе В. Если прямую перемещать дальше в направлении вектора N, то значения линейной функции на многограннике решений возрастут, значит, в точке В линейная функция Z принимает минимальное значение.
Точка В лежит на пересечении прямых L 1 и L 2 . Для определения ее координат решим систему уравнений
3x 1 + х 2 = 9
х 1 + 2х 2 = 8
Имеем: х 1 = 2; х 2 = 3. Подставляя значения х 1 и х 2 в линейную функцию, получаем Z min = 4 2 + 6 3 = 26.
Таким образом, для того, чтобы обеспечить минимум затрат (26 коп. в день), необходимо дневной рацион составить из 2 кг корма 1 и 3 кг корма 2.
Вообще, с помощью графического метода может быть ре-шена задача линейного программирования, система ограниче-ний которой содержит n неизвестных и m линейно независи-мых уравнений, если N и M связаны соотношением N – M = 2.
Действительно, пусть поставлена задача линейного программирования.
Найти минимальное значение линейной функции Z = С 1 х 1 +С 2 х 2 +... +С N x N при ограничениях
a 11 x 1 + a 22 x 2 + ... + a 1N Х N = b 1
(2.3) a 21 x 1 + a 22 x 2 + ... + a 2N Х N = b 2
. . . . . . . . . . . . . . .
a М1 x 1 + a М2 x 2 + ... + a МN Х N = b М
x j 0 (j = 1, 2, ..., N)
где все уравнения линейно независимы и выполняется cоотношение N - M = 2.
Используя метод Жордана-Гаусса, производим M исключений, в результате которых базисными неизвестными оказались, например, M первых неизвестных х 1 , х 2 , ..., х M , а свободными - два последних: х М+1 , и х N , т. е. система ограничений приняла вид
x 1 + a 1,М+1 x М+1 + a 1N Х N = b 1
(2.4) x 2 + a 2,М+1 x М+1 + a 2N Х N = b 2
. . . . . . . . . . . .
x М + a М, М+1 x 2 + a МN Х N = b М
x j 0 (j = 1, 2, ..., N)
С помощью уравнений преобразованной системы выражаем линейную функцию только через свободные неизвестные и, учитывая, что все базисные неизвестные - неотрицательные: х j 0 (j = 1, 2, ..., M), отбрасываем их, переходя к системе ограничений, выраженных в виде неравенств. Таким образом, окончательно получаем следующую задачу.
Найти минимальное значение линейной функции Z = С М+1 х М+1 +С N x N при ограничениях
a 1,М+1 x М+1 + a 1N Х N b 1
a 2,М+1 x М+1 + a 2N Х N b 2
. . . . . . . . . .
a М,М+1 x М+1 + a МN Х N b М
x М+1 0, х N 0
Преобразованная задача содержит два неизвестных; решая ее графическим методом, находим оптимальные значения x М+1 и х N , а затем, подставляя их в (2.4), находим оптимальные значения х 1 , х 2 , ..., х M.
Пример.
Графическим методом найти оптимальный план задачи ли-нейного программирования, при котором линейная функция Z = 2х 1 - х 2 + х 3 - 3х 4 + 4х 5 достигает максимального значения при ограничениях
х 1 - х 2 + 3х 3 - 18х 4 + 2х 5 = -4
2х 1 - х 2 + 4х 3 - 21х 4 + 4х 5 = 2
3х 1 - 2х 2 + 8х 3 - 43х 4 + 11х 5 = 38
x j 0 (j = 1, 2, ..., 5)
Решение.
Используя метод Жордана-Гаусса, произведем три полных исключения неизвестных х 1 , х 2 , х 3 . В результате приходим к системе
х 1 + х 4 - 3х 5 = 6
х 2 + 7х 4 + 10х 5 = 70
х 3 - 4х 4 + 5х 5 = 20
Откуда x 1 = 6 – х 4 + 3x 5 , х 2 = 70 – 7х 4 -10х 5 , х 3 = 20 + 4х 4 -5х 5 .
Подставляя эти значения в функцию и отбрасывая в системе базисные переменные, получаем задачу, выраженную только через свободные переменные х 4 и х 5 : найти максимальное значение линейной функции Z = 6х 4 + 15х 5 – 38 при ограничениях
х 4 - х 5 6
7х 4 + 10х 5 70
- 4х 4 + 5х 5 20
х 4 0, х 5 0.
Построим многогранник решений и линейную функцию в системе координат х 4 Ох 5 (рис. 2.5). Из рис. 2.5 заключаем, что линейная функция принимает максимальное значение в угловой точке В, которая лежит на пересечении прямых 2 и 3. В результате решения системы
7х 4 + 10х 5 = 70
4х 4 + 5х 5 = 20
находим: х 4 = 2, х 5 = 28/5. Максимальное значение функции Z max = -38 + 12 + 84 = 58.
Для отыскания оптимального плана исходной задачи подставляем найденные значения х 4 и х 5 . Окончательно получаем: х 1 = 104/5, х 2 = 0, х 3 = 0, х 4 = 2, х 5 = 28/5.
ЛИТЕРАТУРА