4. МНОГОМЕРНЫЙ ПОИСК.

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ [l,2]

 

4.3. Симплексный метод решения задач линейного программирования

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

 

Задача.

Найти решение системы уравнений:

(41)

удовлетворяющее условиям неотрицательности

X1≥0, X2≥0, …, Xn≥0

(42)

и максимизирующее линейную функцию

R=C1X1+C2X2+…+CnXn

(43)

Полагая, что ранг r  матрицы коэффициентов меньше числа неизвестных, выразим r неизвестных системы (41) через остальные

(44)

В системе (44) число линейно независимых уравнений равно r.

Неизвестные X1 , Х2> ,...,Хr  назовем базисными, остальные неизвестные назовем свободными.

Так как свободным неизвестным можно придавать любые неотрицательные значения ( Хr+1 ≥0, Хr+2≥0 ,..., Хп≥ 0 ), то свободные члены b1\, b2\ ,..,br\ должны быть неотрицательными (bi\≥0 при i=1,2,…,r). В противном случае (т.е. если bi<0 для i=1,2,…r) при Хr+1=0, Xr+2=0,..., Хn =0  получим X1<0, Х2< 0,..., Хr<0, что недопустимо по условию задачи.

Положим все свободные неизвестные равными нулю: Хr+1=0, Xr+2=0,..., Хn =0. Получим:

Полученное решение системы является допустимым, т.к удовлетворяет условиям (41) и (42), и называется базисным решением. При этом вектор (b1\, b2\,…, br\, 0,…,0) называется базисным вектором.

Подставим в оптимизируемую линейную функцию (43) найденные базисные неизвестные, выраженные через свободные неизвестные. Для первого базисного решения все свободные неизвестные Xr+1=0, поэтому получим Rо\.

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

Переход осуществляется следующим образом: одна из базисных переменных заменяется другой, которая ранее была свободной, и т. д. Этот процесс повторяется до тех пор, пока R не достигнет экстремального значения.

Рассмотрим принцип нахождения решения задачи линейного программирования на примерах.

 

Пример 1.

Найти решение системы уравнений:

(45)

удовлетворяющее условиям неотрицательности:

X1≥0, X2≥0, …, X5≥0

(46)

и минимизирующее целевую функцию:

R=3-X4+X5

(47)

Выразим базисные переменные X1, Х2, X3 через свободные X4 и X5:

(48)

Приняв свободные переменные X4 и X5 равными нулю, получим первое базисное решение, т.е. выполним первую итерацию симплексных преобразований:

Х1= 2, Х2 = 7, Х3= 2, Х4 =0, Х5= 0

(49)

При этом R = 3.

Выполним вторую итерацию, которая приведет к уменьшению R.

Анализ уравнения (47), которое определяет R, показывает, что целевая функция R может быть уменьшена за счет уменьшения X5 и увеличения X4. Однако уменьшить Х5 нельзя, т.к. на первой итерации Х5= 0, а условие неотрицательности не позволяет сделать Х5<0.

Значит, путь уменьшения R состоит в увеличении Х4.

Увеличение Х4 должно идти до тех пор, пока одна из переменных Xi , которая зависит от Х4, не станет равной нулю и, следовательно, дальнейшее увеличение Х4  приведет к отрицательному значе­нию Xi, что недопустимо.

Из системы (48) следует, что Х4 не может превышать значения 2, т.к. при Х4>2  Х1  становится меньше нуля (первое уравнение системы (48)), что недопустимо по условию задачи.

Принимаем Х4=2, при этом Х1=0. Подставим эти значения в систему уравнений (48), получим новое базисное решение:

Х1= 0, Х2 = 3, Х3= 4, Х4 =2, Х5= 0

(50)

При этом R=1.

Выразим новые базисные переменные  Х2, X3, X3 через свободные X1 и X5:

(51)

Подставим полученное выражение для Х4 в выражение для целевой функции (47), получим:

R=1+X1+2X5.

Поскольку требуется получить минимум функции R, а уже на второй итерации X1 и Х5 равны нулю, то, учитывая, что X1 и Х5 не могут быть отрицательными, а любое увеличение X1 и Х5 не приводит к уменьшению R , делаем вывод: задача решена, и искомое решение есть результат второй итерации (50).

 

Пример 2.

Найти значения Xi, i=1,2,3,4,5, которые удовлетворяют системе уравнений:

(52)

условиям неотрицательности:

Xi , i = 1,2,3,4,5

(53)

к обеспечивают наименьшее значение целевой функции:

P=-10X1  - 12X2

(54)

Примем переменные Х3, Х4, Х5 в качестве базисных и выразим их через свободные переменные X1 и Х2 из уравнений (52). Получим:

(55)

Первое базисное решение примет вид:

Х1= 0, Х2 = 0, Х3= 300,

Х4 =100, Х5= 160

(56)

При этом R=0.

Из уравнения (54) видно, что целевая функция может быть уменьшена путем увеличения X1 и Х2 . Увеличим сначала X1. Из (55) следует, что X1 можно увеличить до значения X1= 50, поскольку при большем его значении переменная Х4 станет отрицательной.

Полагая X1 =50, Х2 = 0, из (55) получаем второе базисное решение:

Х1= 50, Х2 = 0, Х3= 100,

Х4 =0, Х5= 60

(57)

При этом R=-500.

Примем ненулевые переменные в (57) X1, X3,X5 в качестве базисных, а нулевые переменные Х2, Х4 в качестве свободных. Из системы (52) найдем:

(58)

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

R=-500-7X2+5X4

(59)

Отсюда следует, что значение целевой функции можно изменить за счет увеличения Х2, поскольку коэффициент при этой переменной в (59) отрицательный.

Максимальное значение Х2 определяется соотношениями (58) и составляет Х2 = 30. Из (58) при X2=30, Х4= 0 получаем третье базисное решение:

Х1= 35, Х2 = 30, Х3= 10

 Х4 =0, Х5= 0

(60)

При этом R=-710.

Для проведения следующего шага симплексных преобразований ненулевые переменные в (60), т.е. X1, Х2, X3, нужно принять в качестве базисных) а нулевые переменные Х4, Х5 - в качестве свободных. В этом случае целевую функцию можно записать в виде:

R = -710 +1,5X2 + 3,5Х5

(61)

Поскольку коэффициенты при Х4, Х5 положительные, то при увеличении этих параметров целевая функция возрастает. Следовательно, решение (60) является оптимальным.