Математические основы решения задачи линейного программирования графическим способом
Этап 1.
Сначала на координатной плоскости x1Ox2 строится допустимая многоугольная область (область допустимых решений, область определения), соответствующая ограничениям:
Не приводя строгих доказательств, укажем те случаи, которые тут могут получится.
. Основной случай - получающаяся область имеет вид ограниченного выпуклого многоугольника (рис. 1а).
. Неосновной случай ? получается неограниченный выпуклый многоугольник, имеющий вид, подобный изображенному на рис. 1б. Подобная ситуация, например, получится, если в рассмотренном выше примере убрать ограничение х1 + х 2 ? 3. Оставшаяся часть будет неограниченным выпуклым многоугольником.
Наконец, возможен случай, когда неравенства (1.6) противоречат друг другу, и допустимая область вообще пуста.
Рассмотрим теорию на конкретном примере:
Найти допустимую область задачи линейного программирования, определяемую ограничениями
Решение:
. Рассмотрим прямую -x1+x2 = 1. При x1 = 0, x2 = 0, а при x2= 0, x1= -1. Таким образом, эта прямая проходит через точки (0,1) и (-1,0). Беря x1 = x2 = 0, получим, что -0+0<1 и поэтому интересующая нас полуплоскость лежит ниже прямой, изображенной на рис. 4.а.
. Рассмотрим прямую . При , а при . Таким образом, эта прямая проходит через точки (0, -1/2) и (1,0). так как (4.б).
. Наконец, рассмотрим прямую . Она проходит через точки (0,3) и (3,0) и так как 0+0<3, то интересующая нас полуплоскость лежит ниже прямой, изображенной на рис. 4.в.
Сводя все вместе и добавляя условия х1 ? 0,х2 ? 0 получим рисунок 5, где выделена область, в которой выполняются одновременно все ограничения (1.32). Обратим внимание на то, что получившаяся область имеет вид выпуклого многоугольника.
Этап 2.
Вернёмся теперь к исходной задаче линейного программирования. В ней, кроме системы неравенств, есть еще целевая функция с1х1+с2х2 =>max.
Рассмотрим прямую с1х1+с2х2 = L. Будем увеличивать L. Что будет происходить с нашей прямой?
Легко догадаться, что прямая будет двигаться параллельно самой себе в том направлении, которое дается вектором (с1,с2), так как это ? вектор нормали к нашей прямой и одновременно вектор градиента функции
(х1,х2) = с1х1+с2х2 .
.3 Симплекс метод - метод линейного программирования, который реализует рациональный перебор базисных допустимых решений, в виде конечного итеративного процесса, необходимо улучшающего значение целевой функции на каждом шаге.
Применение симплекс-метода для задачи линейного программирования предполагает предварительное приведение ее формальной постановки к канонической форме с n неотрицательными переменными: (X1, ., Xn), где требуется минимизация линейной целевой функции при m линейных ограничениях типа равенств. Среди переменных задачи выбирается начальный базис из m переменных, для определенности (X1, ., Xm), которые должны иметь неотрицательные значения, когда остальные (n-m) свободные переменные равны 0. Целевая функция и ограничения равенства преобразуются к диагональной форме относительно базисных переменных, переменных, где каждая базисная переменная входит только в одно уравнение с коэффициентом 1.
Данная формальная модель задачи линейного программирования обычно задается в форме, так называемой симплекс-таблицы, удобной для выполнения операций симплекс-метода:
Симплекс-таблица
1 |
X1 |
X2 |
. |
Xm |
Xm+1 |
. |
Xn | ||
X0 |
A0,0 |
0 |
0 |
. |
0 |
A0,m+1 |
. |
A0,n | |
X1 |
A1,0 |
1 |
0 |
. |
0 |
A1,m+1 |
. |
A1,n | |
X2 |
A2,0 |
0 |
1 |
. |
0 |
A2,m+1 |
. |
A2,n | |
. |
. |
. |
. |
. |
. |
. |
. |
. | |
Xm |
Am,0 |
0 |
0 |
. |
1 |
Am,m+1 |
. |
Am,n | |