1. ПОСТАНОВКА ЗАДАЧИ И ОСНОВНЫЕ ПОНЯТИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
1.1. Понятие математической модели. Математическая модель в задачах линейного программирования
Любое описание некоторой решаемой задачи в виде формул, уравнений, алгоритмов называется математической моделью этой задачи. Линейное программирование рассматривает задачи с линейной математической моделью. Это задачи, в которых требуется найти такие значения пе- ременных X 1 , X 2 . X n , при которых некоторая линейная функция от этих переменных принимает максимальное или минимальное значение:
E = C 1 X 1 + C 2 X 2 + . + C n X n → max / min | (1.1) |
при выполнении ограничений на переменные X 1 , X 2 . X n , заданных линейными уравнениями или неравенствами:
A 11 X 1 A 21 X 1 . A p 1 X 1 A ( p +1)1 X 1 A ( p +2)1 X 1 . A ( p + q )1 X 1 A ( p + q +1)1 X 1 A ( p + q +2)1 X 1 . A m 1 X 1
+ A | X | +. + | A | X |
( p + q )2 2 | ( p + q ) n n | |||
+ A | X | +. + | A | X |
( p + q +1)2 2 | ( p + q +1) n n | |||
+ A | X | +. + | A | X |
( p + q +2)2 2 | ( p + q +2) n n | |||
+ A | X | +. + | A | X |
m 2 | 2 | mn | n |
≥ B B | |
1 | |
≥ B B | |
2 | |
≥ B B | |
p | |
= B B | |
p +1 | |
= B B | (1.2) |
p +2 |
= B p B + q ≤ B p B + q +1 ≤ B p B + q +2 ≤ B m B
Здесь p – количество ограничений, имеющих вид “не меньше”, q – количество ограничений “равно”, m – общее количество ограничений. Функция (1.1) называется целевой функцией, а ограничения (1.2) – системой ограничений задачи. Если по условию задачи требуется найти такие значения переменных X 1 , X 2 . X n , при которых целевая функция (1.1) будет иметь максимальное значение, то говорят, что целевая функция подлежит максимизации (или направлена на максимум ). Если требуется, чтобы целевая функция принимала мини- мальное значение, то говорят, что она подлежит минимизации ( направлена на минимум ).
В большинстве задач (но не всегда) требуется, чтобы переменные X 1 , X 2 . X n принимали неотрицательные значения (ограничение на неотрицатель- ность): X j ≥0, j =1. n . В некоторых задачах требуется, чтобы переменные принимали целочисленные значения (ограничение на целочисленность). Линейная математическая модель может быть построена для многих задач, решаемых на практике. Любые значения переменных X 1 , X 2 . X n , удовлетворяющие ограничениям задачи (1.2), называются допустимыми решениями (независимо от того, какое значение при этом принимает целевая функция). Большинство задач имеет бесконечно много допустимых решений. Все множество допустимых решений представляет собой область допустимых решений (ОДР). Допустимые значения переменных X 1 , X 2 . X n , при которых целевая функция принимает максимальное или минимальное значение (в зависимости от постановки задачи), представляют собой оптимальное решение .
1.2. Примеры задач линейного программирования
Пример 1.1 . Предприятие химической промышленности выпускает соляную и серную кислоту. Выпуск одной тонны соляной кислоты приносит предприятию прибыль в размере 25 ден.ед., выпуск одной тонны серной кислоты – 40 ден.ед. Для выполнения государственного заказа необходимо выпустить не менее 200 т соляной кислоты и не менее 100 т серной кислоты. Кроме того, необходимо учитывать, что выпуск кислот связан с образованием опасных отходов. При выпуске одной тонны соляной кислоты образуется 0,5 т опасных отходов, при выпуске одной тонны серной кислоты – 1,2 т опасных отходов. Общее количество опасных отходов не должно превышать 600 т, так как превышение этого ограничения приведет к выплате предприятием крупного штрафа. Требуется определить, сколько соляной и серной кислоты должно выпустить предприятие, чтобы получить максимальную прибыль. Составим математическую модель задачи. Для этого введем переменные. Обозначим через X 1 количество выпускаемой соляной кислоты (в тоннах), че- рез X 2 – количество серной кислоты. Составим ограничения, связанные с необходимостью выполнения государственного заказа. Предприятию необходимо выпустить не менее 200 т соля- ной кислоты. Это ограничение можно записать следующим образом: X 1 ≥ 200. Аналогично составим ограничение, устанавливающее, что предприятие должно выпустить не менее 100 т серной кислоты: X 2 ≥ 100. Составим ограничение на опасные отходы. При выпуске одной тонны соляной кислоты образуется 0,5 т опасных отходов; значит, общее количество опасных отходов при выпуске соляной кислоты составит 0,5 X 1 т. При выпуске серной кислоты образуется 1,2 X 2 т опасных отходов. Таким образом, общее ко-
личество опасных отходов составит 0,5 X 1 + 1,2 X 2 т. Эта величина не должна превышать 600 т. Поэтому можно записать следующее ограничение: 0,5 X 1 + 1,2 X 2 ≤ 600. Кроме того, переменные X 1 и X 2 по своему физическому смыслу не могут принимать отрицательных значений, так как они обозначают количество выпускаемых кислот. Поэтому необходимо указать ограничения неотрицательно- сти): X 1 ≥ 0; X 2 ≥ 0. В данной задаче требуется определить выпуск кислот, при котором прибыль будет максимальной. Прибыль от выпуска одной тонны соляной кислоты составляет 25 ден.ед.; значит, прибыль от выпуска соляной кислоты составит 25· X 1 ден.ед. Прибыль от выпуска серной кислоты составит 40 X 2 ден.ед. Таким образом, общая прибыль от выпуска кислот составит 25 X 1 +40 X 2 ден.ед. Требу- ется найти такие значения переменных X 1 и X 2 , при которых эта величина будет максимальной. Таким образом, целевая функция для данной задачи будет иметь следующий вид: E = 25 X 1 +40 X 2 → max . Приведем полную математическую модель рассматриваемой задачи:
X 1 | ≥ 200 | |
X 2 | ≥ 100 | (1.3) |
0,5 X 1 + 1,2 X 2 ≤ 600 | ||
X 1 | ≥ 0, X 2 ≥ 0. | |
E = 25 X 1 +40 X 2 → max . | (1.4) |
В этой задаче имеется два ограничения “больше или равно” и одно ограничение “меньше или равно”. Целевая функция подлежит максимизации. Пример 1.2. Пусть в условиях примера 1.1 из-за ужесточения требований к экологической безопасности требуется свести к минимуму количество опасных отходов. В то же время необходимо учитывать, что для того, чтобы производство кислот было экономически целесообразным, необходимо получить прибыль не менее 20 тыс. ден.ед. Математическая модель такой задачи имеет следующий вид:
X 1 | ≥ 200 | |
X 2 | ≥ 100 | (1.5) |
25· X 1 +40· X 2 ≥ 20000 | ||
X 1 | ≥ 0, X 2 ≥ 0. | |
E = 0,5· X 1 + 1,2· X 2 → min . | (1.6) |
Третье ограничение в этой модели устанавливает, что прибыль от выпуска кислот должна составлять не менее 20 тыс. ден.ед. Целевая функция (1.6) представляет собой количество опасных отходов; эта величина подлежит минимизации.
1.3. Графический метод решения задач линейного программирования
Графический метод применяется для решения задач, в которых имеются только две переменные. Для таких задач имеется возможность графически изобразить область допустимых решений (ОДР). Примечание . Графический метод может применяться также для решения задач с любым количеством переменных, если возможно выразить все переменные задачи через какиелибо две переменные. Как отмечено выше, ОДР – это множество значений переменных X 1 , X 2 . X n , удовлетворяющих ограничениям (1.2). Таким образом, для задач с двумя переменными ОДР представляет собой множество точек ( X 1 ; X 2 ), т.е. некоторую область на плоскости (обычно многоугольник). Для задач с тремя переменными ОДР представляет собой многогранник в пространстве, для задач с большим количеством переменных – некоторую область многомерного пространства. Можно доказать, что экстремум (минимум или максимум) целевой функции всегда достигается при значениях переменных X 1 , X 2 . X n , соответствующих одной из угловых точек ОДР. Другими словами, оптимальное решение всегда находится в угловой точке ОДР. Поэтому задачу линейного программирования с двумя переменными можно решить следующим образом: построить ОДР на плоскости в системе координат ( X 1 ; X 2 ), определить все угловые точки ОДР, вычислить значения целевой функции в этих точках и выбрать оптимальное решение. Решим графическим методом задачу из примера 1.1 Решение показано на рис.1.1. Ограничение X 1 ≥ 200 задается вертикальной линией X 1 =200. Все точки ( X 1 ; X 2 ), расположенные справа от этой линии, удовлетворяют ограничению X 1 ≥ 200, расположенные слева – не удовлетворяют. Ограничение X 2 ≥ 100 задается горизонтальной линией X 2 =100. Все точки, расположенные сверху от этой линии, удовлетворяют ограничению X 2 ≥ 100, расположенные снизу – не удовлетворяют. Для построения линии, задающей ограничение 0,5 X 1 + 1,2 X 2 ≤ 600, удобно записать его в виде равенства: 0,5 X 1 + 1,2 X 2 = 600. Выразим одну из пере- менных через другую: X 2 = -0,417 X 1 + 500. Это уравнение прямой. Построим эту прямую. Она разбивает координатную плоскость на две полуплоскости.
В одной из этих полуплоскостей находятся точки, удовлетворяющие ограничению, в другой – не удовлетворяющие. Чтобы найти полуплоскость, удовлетво- ряющую ограничению 0,5 X 1 + 1,2 X 2 ≤ 600, подставим в него координаты любой точки, например, (0; 0). Для этой точки ограничение выполняется. Значит, она находится в полуплоскости, удовлетворяющей ограничению. Пересечение всех полуплоскостей, удовлетворяющих ограничениям задачи, представляет собой ОДР. На рис.1.1 она выделена серым цветом. X 2 0,5 X 1 +1,2 X 2 =600 X 2 =100 X 1 X 1 =200 Рис.1.1. Решение примера 1.1 графическим методом Оптимальное решение находится в одной из угловых точек ОДР (на рис.1.1 они обозначены как A , B , C ). Эти точки можно найти из построенного графика или путем решения соответствующих систем из двух уравнений. Найдем значения целевой функции (1.4) в этих точках: E ( A ) = 25·200 + 40·100 = 9000; E ( B ) = 25·200 + 40·416,67 = 21666,8; E ( C ) = 25·960 + 40·100 = 28000. Таким образом, оптимальное решение находится в точке C =(960; 100). Это означает, что предприятию следует выпустить 960 т соляной кислоты и 100 т серной кислоты. Прибыль при этом составит 28 000 ден.ед. Можно также найти количество опасных отходов, которое будет получено при производстве кислот: 0,5·960 + 1,2·100 = 600 т. Решим графическим методом задачу из примера 1.2 . Решение показано на рис.1.2. В данном случае ОДР имеет только две угловые точки ( A и B ). Найдем для них значения целевой функции (1.6): E ( A ) = 0,5·200 + 1,2·375 = 550; E ( B ) = 0,5·640 + 1,2·100 = 440. Таким образом, оптимальное решение находится в точке B =(640; 100). Это означает, что предприятию следует выпустить 640 т соляной кислоты и