Линейное программирование: постановка задач и графическое решение
КУРСОВОЙ ПРОЕКТ ПО ДИСЦИПЛИНЕ
«ЭКОНОМИКО-МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ»
Тема. Линейное программирование: постановка задач и графическое решение.
Научный руководитель:
Чернов
Александр Степанович
Исполнитель:
Кудрявцева
Елена Александровна
Г. Мурманск
1998 год
ПЛАН.
Введение.
Общая задача линейного программирования.
Формулировка задачи.
Геометрическая интерпретация задачи линейного программирования.
Графический метод решения задачи линейного программирования.
Область применения.
Примеры задач, решаемых графическим методом.
Обобщение графического метода решения задач линейного программирования.
Литература.
Введение.
Линейное программирование - это наука о методах исследования и отыскания наибольших и наименьших значений линейной функции, на неизвестные которой наложены линейные ограничения. Таким образом, задачи линейного программирования относятся к задачам на условный экстремум функции. Казалось бы, что для исследования линейной функции многих переменных на условный экстремум достаточно применить хорошо разработанные методы математического анализа, однако невозможность их использования можно довольно просто проиллюстрировать.
Действительно, путь необходимо исследовать на экстремум линейную функцию Z = С1х1+С2х2+... +СNxN
при линейных ограничениях
a11x1 + a22x2 + ... + a1NХN = b1
a21x1 + a22x2 + ... + a2NХN = b2
. . . . . . . . . . . . . . .
aМ1x1 + aМ2x2 + ... + aМNХN = bМ
Так как Z - линейная функция, то = Сj (j = 1, 2, ..., n), то все коэффициенты линейной функции не могут быть равны нулю, следовательно, внутри области, образованной системой ограничений, экстремальные точки не существуют. Они могут быть на границе области, но исследовать точки границы невозможно, поскольку частные производные являются константами.
Для решения задач линейного программирования потребовалось создание специальных методов. Особенно широкое распространение линейное программирование получило в экономике, так как исследование зависимостей между величинами, встречающимися во многих экономических задачах, приводит к линейной функции с линейными ограничениями, наложенными на неизвестные.
Общая задача линейного программирования
Формулировка задачи.
Даны линейная функция
(1.1) Z = С1х1+С2х2+... +СNxN
и система линейных ограничений
a11x1 + a22x2 + ... + a1NХN = b1
a21x1 + a22x2 + ... + a2NХN = b2
. . . . . . . . . . . . . . .
(1.2) ai1x1 + ai2x2 + ... + aiNХN = bi
. . . . . . . . . . . . . . .
aM1x1 + aM2x2 + ... + aMNХN = bM
(1.3) xj 0 (j = 1, 2, ... ,n)
где аij, Ьj и Сj - заданные постоянные величины.
Найти такие неотрицательные значения х1, х2, ..., хn, которые удовлетворяют системе ограничений (1.2) и доставляют линейной функции (1.1)минимальное значение.
Общая задача имеет несколько форм записи.
Векторная форма записи. Минимизировать линейную функцию Z = СХ при ограничениях
(1.4) А1х1 + А2x2 + ... + АNxN = Ао, X 0
где С = (с1, с2, ..., сN); Х = (х1, х2, ..., хN); СХ - скалярное произведение; векторы
A1 = , A2 = ,..., AN = , A0 =
состоят соответственно из коэффициентов при неизвестных и свободных членах.
Матричная форма записи. Минимизировать линейную функцию, 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+... +СNxN
при ограничениях
a11x1 + a22x2 + ... + a1NХN b1
a21x1 + a22x2 + ... + a2NХN b2
(1.6) . . . . . . . . . . . . . . .
aM1x1 + aM2x2 + ... + aMNХN bM
(1.7) xj 0 (j = 1, 2, ... ,n)
Совокупность чисел х1, х2, ..., хN, удовлетворяющих ограничениям (1.6) и (1.7), называется решением. Если система неравенств (1.6) при условии (1.7) имеет хотя бы одно решение, она называется совместной, в противном случае - несовместной.
Рассмотрим на плоскости х1Ох2 совместную систему линейных неравенств
a11x1 + a22x2 b1
a21x1 + a22x2 b2
. . . . . . . .
aM1x1 + aM2x2 bM
x1 0, x2 0
Это все равно, что в системе (1.6) - (1.7) положить N=2. Каждое неравенство этой системы геометрически определяет полуплоскость с граничной прямой
ai1x1 + ai2x2 = bi ,(i = 1, 2, ..., m). Условия неотрицательности определяют полуплоскости соответственно с граничными прямыми х = 0, х = 0. Система совместна, поэтому полуплоскости, как выпуклые множества, пересекаясь, образуют общую часть, которая является выпуклым множеством и представляет собой совокупность точек, координаты каждой из которых являются решением данной системы (рис. 1.1).
Совокупность этих точек (решений) назовем многоугольником решений. Он может быть точкой, отрезком, лучом, много-угольником, неограничен-ной многоугольной облас-тью.
Если в системе ограничений (1.6) - (1.7) n = 3, то каждое нера-венство геометрически представляет полупространство трехмерного пространства, граничная плоскость которого ai1x1 + ai2x2 + ai3x3 = bi ,(i = 1, 2, ..., n), а условия неотрицательности – полупрост-ранства с граничными плоскостями соответственно хj = 0 (j = 1, 2, 3). Если система ограничений совместна, то эти полупространства, как выпуклые множества, пересекаясь, образуют в трехмерном пространстве общую часть, которая называется многогранником решений. Многогранник решений может быть точкой, отрезком, лучом, многоугольником, многогранником, многогранной неограниченной областью. Пусть в системе ограничений (1.6) - (1.7) n 3; тогда каждое неравенство определяет полупространство n-мерного пространства с граничной гиперплоскостью ai1x1 + ai2x2 + aiNxN = bi (i = 1, 2, ..., m), а условия неотрицательности – полупространства с граничными гиперплоскостями хj 0 (j = 1, 2, ..., n).
Если система ограничений совместна, то по аналогии с трехмерным пространством она образует общую часть n-мерного пространства, называемую многогранником решений, так как координаты каждой его точки являются решением.
Таким образом, геометрически задача линейного программирования представляет собой отыскание такой точки многогранника решений, координаты которой доставляют линейной функции минимальное значение, причем допустимыми решениями служат все точки многогранника решений.
- Графический метод решения
задачи линейного программирования.
Область применения.
Графический метод основан на геометрической интерпретации задачи линейного программирования и применяется в основном при решении задач двумерного пространства и только некоторых задач трехмерного простран6тва, так как довольно трудно построить многогранник решений, который образуется в результате пересечения полупространств. Задачу пространства размерности больше трех изобразить графически вообще невозможно.
Пусть задача линейного программирования задана в двумерном пространстве, т. е. ограничения содержат две переменные.
Найти минимальное значение функции
(2.1) Z = С1х1+С2х2
при
a11x1 + a22x2 b1
(2.2) a21x1 + a22x2 b2
. . . . . . . .
aM1x1 + aM2x2 bM
(2.3) х1 0, х2 0
Допустим, что система (2.2) при условии (2.3) совместна и ее многоугольник решений ограничен. Каждое из неравенств (2.2) и (2.3), как отмечалось выше, определяет полуплоскость с граничными прямыми: ai1x1 + ai2x2 + ai3x3 = bi,(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 используют три вида сырья: S1, S2, S3. Запасы сырья, количество единиц сырья, затрачиваемых на изготовление единицы продукци, а так же величина прибыли, получаемая от реализации единицы продукции, приведены в таблице 2.1.
Таблица 2.1.
Вид сырья |
Запас сырья |
Количество единиц сырья, идущих на изготовление единицы продукции |
|
Р1 |
Р2 |
||
S1 |
20 |
2 |
5 |
S2 |
40 |
8 |
5 |
S3 |
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; в противном случае x1 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 (L1)
8х1 + 5х2 = 40 (L2)
5х1 + 6х2 = 30 (L3)
х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 принимает максимальное значение. Точка С лежит на пересечении прямых L1 и L2. Для определения ее координат решим систему уравнений
8x1 + 5х2 = 40
5х1 + 6х2 = 30
Оптимальный план задачи: х1 = 90/23 = 3,9; х2 = 40/23 = 1,7. Подставляя значения х1 и х2 в линейную функцию, получаем Zmax = 50 3,9 + 40 1,7 = 260,3
Таким образом, для того чтобы получить максимальную прибыль в размере 260,3 руб., необходимо запланировать производство 3,9 ед. продукции Р1 и 1,7 ед. продукции Р2.
Задача составления рациона. При откорме каждое животное ежедневно должно получать не менее 9 ед. питательного вещества S1, не менее 8 ед. вещества S2 и не менее 12 ед. вещества S3. Для составления рациона используют два вида корма. Содержание количества елиниц питательных веществ в 1 кг каждого вида корма и стоимость 1 кг корма приведены в таблице 2.2.
Таблица 2.2.
Питательные вещества |
Количество единиц питательных веществ в 1 кг корма. |
|
Корм 1 |
Корм 2 |
|
S1 |
3 |
1 |
S2 |
1 |
2 |
S3 |
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; в противном случае x1 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 (L1)
х1 + 2х2 = 8 (L2)
х1 + 6х2 = 12 (L3)
х1 = 0, х2 = 0.
Взяв какую-нибудь точку, например, начало координат, установим, какую полуплоскость определяет соответствующее неравенство (эти полуплоскости на рис. 2.4 показаны стрелками). В результате получим неограниченную многоугольную область с угловыми точками А, В, С, D.
Для построения прямой 4х1 + 6х2 = 0 строим радиус-вектор N = (4;6) и через точку O проводим прямую, перпендикулярную ему. Построенную прямую Z = 0 перемещаем параллельно самой себе в направлении вектора N. Из риc. 2.4 следует, она впервые коснется многогранника решений и станет опорной по отношению к нему в угловой точе В. Если прямую перемещать дальше в направлении вектора N, то значения линейной функции на многограннике решений возрастут, значит, в точке В линейная функция Z принимает минимальное значение.
Точка В лежит на пересечении прямых L1 и L2. Для определения ее координат решим систему уравнений
3x1 + х2 = 9
х1 + 2х2 = 8
Имеем: х1 = 2; х2 = 3. Подставляя значения х1 и х2 в линейную функцию, получаем Zmin = 4 2 + 6 3 = 26.
Таким образом, для того, чтобы обеспечить минимум затрат (26 коп. в день), необходимо дневной рацион составить из 2 кг корма 1 и 3 кг корма 2.
Обобщение графического метода решения задач линейного программирования.
Вообще, с помощью графического метода может быть ре-шена задача линейного программирования, система ограниче-ний которой содержит n неизвестных и m линейно независи-мых уравнений, если N и M связаны соотношением N – M = 2.
Действительно, пусть поставлена задача линейного программирования.
Найти минимальное значение линейной функции Z = С1х1+С2х2+... +СNxN при ограничениях
a11x1 + a22x2 + ... + a1NХN = b1
(2.3) a21x1 + a22x2 + ... + a2NХN = b2
. . . . . . . . . . . . . . .
aМ1x1 + aМ2x2 + ... + aМNХN = bМ
xj 0 (j = 1, 2, ..., N)
где все уравнения линейно независимы и выполняется cоотношение N - M = 2.
Используя метод Жордана-Гаусса, производим M исключений, в результате которых базисными неизвестными оказались, например, M первых неизвестных х1, х2, ..., хM, а свободными - два последних: хМ+1, и хN, т. е. система ограничений приняла вид
x1 + a1,М+1xМ+1 + a1NХN = b1
(2.4) x2 + a2,М+1xМ+1 + a2NХN = b2
. . . . . . . . . . . .
xМ + aМ, М+1x2 + aМNХN = bМ
xj 0 (j = 1, 2, ..., N)
С помощью уравнений преобразованной системы выражаем линейную функцию только через свободные неизвестные и, учитывая, что все базисные неизвестные - неотрицательные: хj 0 (j = 1, 2, ..., M), отбрасываем их, переходя к системе ограничений, выраженных в виде неравенств. Таким образом, окончательно получаем следующую задачу.
Найти минимальное значение линейной функции Z = СМ+1хМ+1+СNxN при ограничениях
a1,М+1xМ+1 + a1NХN b1
a2,М+1xМ+1 + a2NХN b2
. . . . . . . . . .
aМ,М+1xМ+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
xj 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
Откуда x1 = 6 – х4 + 3x5, х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. Максимальное значение функции Zmax = -38 + 12 + 84 = 58.
Для отыскания оптимального плана исходной задачи подставляем найденные значения х4 и х5. Окончательно получаем: х1 = 104/5, х2 = 0, х3 = 0, х4 = 2, х5 = 28/5.
ЛИТЕРАТУРА
Математические методы анализа экономики /под ред. А.Я.Боярского. М.,Изд-во Моск. Ун-та, 1983
А.И.Ларионов, Т.И.Юрченко “Экономико-математические методы в планировании: Учебник – М.: Высш.школа, 1984
Ашманов С.А. “Линейное программирование”,- М.: 1961