Задачи линейного программирования. Симплекс-метод.

Система линейных неравенств и область их решения. Пусть задано линейное неравенство с двумя переменными х1 и х2:

a1x1+a2x2+b≥0. (20.1)

Если величины х1 и х2 рассматривать как координаты точки плоскости, то совокупность точек плоскости, координаты которых удовлетворяют неравенству (20.1), называется областью решений данного неравенства. Областью решений неравенства (20.1) является полуплоскость.

Для того чтобы установить, какая из двух полуплоскостей соответствует неравенству (20.1), достаточно привести это неравенство к виду x2≥kx1+l или к виду х2≤kx1+l. В первом случае искомая полуплоскость лежит выше прямой а1х12 x2+b= 0, во втором — ниже ее. Если же а2=0, то неравенство приводится к одному из видов x1≥h или x1≤h, т. е. полуплоскость лежит справа или слева от прямой x1= h.

В случае же, когда задана система неравенств

(20.2)

где т — конечное число, получим пересечение конечного числа полуплоскостей, образующее многоугольную область D. Область D называется областью решений системы неравенств (20.2) Эта область не всегда бывает ограничена, она может быть и неограниченной и даже пустой. Последний случай имеет место тогда, когда система неравенств (20.2) противоречива. Могут быть также случаи лишних неравенств, входящих в совместную систему и определяющих прямые, не имеющие с областью D общих точек. Такие неравенства можно исключить.

Область решений обладает важным свойством — она является выпуклой, т. е. вместе с любыми своими двумя точками содержит и весь соединяющий их отрезок Прямая, которая имеет с областью по крайней мере одну общую точку, притом так, что вся область лежит по одну сторону от этой прямой, называется опорной по отношению к этой области.

Аналогично истолковывается геометрически и система неравенств с тремя переменными

(20.3)

Здесь каждое из неравенств выполняется для одного из полупространств, на которые разбивает все пространство соответствующая плоскость Система неравенств (20.3) представляет собой пересечение полупространств, т. е. многогранную область решений системы неравенств.

Основная задача линейного программирования. Графическое решение. Задача линейного программирования заключается в изучении способов отыскания наибольшего или наименьшего значений линейной функции при наличии линейных ограничений.

Функция, наибольшее или наименьшее значение которой отыскивается, называется целевой функцией, а совокупность значений переменных, при которых достигается наибольшее или наименьшее значение, определяет так называемый оптимальный план. Всякая же другая совокупность значений, удовлетворяющая ограничениям, определяет допустимый план (решение).

Пусть ограничения заданы совместной системой т линейных неравенств с п переменными:

Среди неотрицательных решений этой системы требуется найти такое решение, при котором линейная функция (целевая функция)

принимает наибольшее (наименьшее) значение или, как говорят, максимизировать (минимизировать) линейную форму L.

Покажем, как решается указанная задача геометрическим методом, для чего ограничимся рассмотрением совместной системы линейных неравенств с двумя и тремя переменными. Пусть, кроме того, задана линейная функция L=c1x1+c2x2+c0. Найдем среди множества точек (x1; х2) из области решений совместной системы неравенств такие, которые придают заданной линейной функции наименьшее (наибольшее) значение. Для каждой точки плоскости функция L принимает фиксированное значение L=L1. Множество всех таких точек есть прямая c1x1+c2x2+c0=L1 перпендикулярная вектору C(c1, с2), выходящему из начала координат. Если эту прямую передвигать параллельно самой себе в положительном направлении вектора С, то линейная функция L = c1x1 +c2x2 + с0 будет возрастать, а в противоположном направлении — убывать. Пусть при движении прямой L в положительном направлении вектора С она впервые встретится с многоугольником решений в его вершине, тогда в этом положении L1 прямая L становится опорной, и на этой прямой функция L принимает наименьшее значение. При дальнейшем движении в том же направлении (положительном) прямая L пройдет через другую вершину многоугольника решений, выходя из области решений, и станет также опорной прямой L2; на ней функция L принимает наибольшее значение среди всех значений, принимаемых на многоугольнике решений.

Таким образом, минимизация и максимизация линейной функции L=c1x1+c2x2+c0 на многоугольнике решений достигаются в точках пересечения этого многоугольника с опорными прямыми, перпендикулярными вектору С(с12). Опорная прямая может иметь с многоугольником решений либо одну общую точку (вершину многоугольника), либо бесконечное множество точек (это множество есть сторона многоугольника).

Аналогично, линейная функция трех переменных L=c1x1+c2x2+c3x3+c0 принимает постоянное значение из плоскости, перпендикулярной вектору С(с12;с3). Наименьшее и наибольшее значения этой функции на многограннике решений достигаются в точках пересечения этого многогранника с опорными плоскостями, перпендикулярными вектору С(с1; с2; с3). Опорная плоскость может иметь с многогранником решений либо одну общую точку (вершину многогранника), либо бесконечное множество точек (это множество есть ребро или грань многогранника).

Пример 20.1. Максимизировать линейную форму L=1+2х2 при ограничениях:

Зх1 -2х2 ≥- 6, 1 2≥З, x1≤3.

Заменив знаки неравенств на знаки точных равенств, построим область решений по уравнениям прямых Зx1—2x2 + 6 = 0, Зх1 2—3 = 0, х1=3 (рис. 15).

Рис. 15

Областью решений неравенств является треугольник MNP. Построим вектор С(2; 2). Тогда опорная прямая при выходе из треугольника решений пройдет через точку Р(3; 15/2), а потому в точке Р линейная функция L=1 + 2х2 принимает наибольшее значение, т. е. максимизируется, и Lmax=2∙3+ 2∙(15/2)=21.

Симплекс-метод.Решение основной задачи линейного программирования геометрическим методом является наглядным в случае двух и даже трех переменных. Для случая же большего числа переменных геометрический метод становится невозможным. Так называемый симплекс-метод принадлежит к числу аналитических методов решения основной задачи линейного пpoграммирования. Система ограничений в вычислительных методах обычно задается системой линейных уравнений

(20.4)

и среди неотрицательных решений системы уравнений (20.4) надо найти такие, которые максимизировали бы линейную функцию

.

Выразим через остальные переменные:

(20.5)

где . Если ограничительные условия заданы неравенствами, то их можно преобразовать в равенства путем введения новых неотрицательных переменных, так называемых балансовых (выравнивающих). Например, в неравенстве a1x1+…+ апхп≤ b достаточно добавить к левой части некоторую величину xn+1 ≥0, получится равенство

Ограничительные условия могут задаваться и смешанным образом, т. е. неравенствами и уравнениями, тогда указанным путем их можно свести только к уравнениям. Переменные (неизвестные) х1 х2,...,хr называются базисными, а весь набор 1; х2, ..., хr} базисом, остальные переменные называются свободными, система ограничений (20.5) называется системой, приведенной к единичному базису. Подставляя в линейную форму L вместо базисных переменных их выражения через свободные из системы (20.5), получим

Теперь, полагая все свободные переменные равными нулю, найдем значения базисных переменных: . Таким образом, решение системы является допустимым — оно называется базисным. Для полученного базисного решения значение линейной формы LБ = у0. Решение задачи с помощью симплекс-метода распадается на ряд шагов, заключающихся в том, что от данного базиса Б мы переходим к другому базису Б' с таким расчетом, чтобы значение LБ уменьшалось или, по крайней мере, не увеличивалось, т. е. .

Пример 20.2. Максимизировать линейную форму L=-х45 при ограничениях: x1 +x42x5=1, х2 4 + x5 = 2, х3 +Зx4 + х5 = 3.

Данная система уравнений-ограничений совместна, так как ранги матрицы системы

и расширенной матрицы

совпадают и равны 3. Следовательно, система уравнений совместна и три переменные (базисные) можно линейно выразить через две свободные переменные. Выразим, например х1, х2 и х3 через х4 и х5, т. е. приведем систему к единичному базису:

Линейную форму L = — х4 5 выразим через свободные переменные x4 и х5 (в данном примере L уже выражена через х4 и х5). Теперь при х4 = 0, х5 = 0 найдем значения базисных переменных: x1=1, x2 = 2, х3 = 3. Таким образом, первое допустимое решение системы уравнений есть х1=1, х2 = 2, x3, = 3, x4 = 0, х5=0, или (1, 2, 3, 0, 0). При найденном допустимом решении линейная форма L имеет значение 0, т. е. L1 = 0.

Теперь попытаемся увеличить значение L1, увеличение х4 уменьшит L1, так как перед х4 стоит отрицательный коэффициент, а увеличение х5 даст увеличение и L1. Увеличим поэтому х5 так, чтобы x1, х2, х3 не стали отрицательными, оставив х4 = 0. Из второго уравнения системы следует, что х5, можно увеличить до 2. Таким образом, получаем следующие значения переменных x1=5, х2 = 0, xз=1. x4=0, x5 = 2 или (5, 0, 1, 0, 2).

Значение линейной формы L при этом допустимом решении равно L2 = 2, т. е. при втором шаге оно увеличилось.

Далее, примем за свободные переменные х2 и х4 т. о., именно те переменные, которые в новом решении имеют нулевые значения С этой целью из второго уравнения системы выразим х5 через х2 и х4 и получим х5 = 2—х2 +2х4.

Тогда

Для увеличения значения L будем увеличивать x4. Из второго уравнения последней системы видно, что при условии неотрицательности x3 значение x4 можно довести до x4 =1/5. При этом условии новое допустимое решение есть х1=8/5, x2 = 0, x3 = 0, х4=1/5, x5=12/5 или (28/5, 0, 0, 1/5, 12/5). Значение линейной формы при этом L3= 11/5.

Выразим теперь х1, x4, х5 через свободные переменные x2 и x3:

Так как в последней линейной форме обе свободные переменные входят с отрицательными коэффициентами, то наибольшее значение L достигается при x2=0, xз = 0. Это означает, что решение (28/5, 0, 0, 1/5, 12/5) является оптимальным и Lmax = ll/5.