 
        
        Karmazin_-_Teoria_Igr_Uchebnik / P2_3
.DOCТема 2. РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ СИМПЛЕКС-МЕТОДОМ
В данном разделе речь пойдет об основном методе решения задач линейного программирования  симплекс-методе (методе последовательного улучшения плана). Для решения этим методом задачу надо привести к каноническому виду.
Канонической задачей линейного программирования будем называть следующую задачу:
 (1)
	(1)
 ,
, 
 ,	(2)
,	(2)
 ,	(3)
,	(3)
где 
  заданные вещественные
числа, причем
 заданные вещественные
числа, причем 
 ;
;
  искомые неизвестные.
Предполагается, что
 искомые неизвестные.
Предполагается, что 
 .
.
Любую задачу линейного программирования можно привести к каноническому виду.
Функция 
 ,
подлежащая максимизации,
называется целевой функцией.
Условия (2.2)
и (2.3)
называются ограничениями задачи.
,
подлежащая максимизации,
называется целевой функцией.
Условия (2.2)
и (2.3)
называются ограничениями задачи.
Любой вектор 
 ,
удовлетворяющий всем ограничениям
(2.2),
(2.3)
,
называется допустимым решением
задачи,
а совокупность всех допустимых решений
 допустимым
множеством.
Допустимое решение
,
удовлетворяющий всем ограничениям
(2.2),
(2.3)
,
называется допустимым решением
задачи,
а совокупность всех допустимых решений
 допустимым
множеством.
Допустимое решение 
 задачи называется ее оптимальным
решением или решением ,
если
задачи называется ее оптимальным
решением или решением ,
если
 ,
,
где D 
допустимое множество задачи. Множество
всех оптимальных решений называется
оптимальным. Величина 
 называется оптимальным значением
целевой функции или оптимумом.
называется оптимальным значением
целевой функции или оптимумом.
Теорема 1. Допустимое и оптимальное множества задачи (1)  (3) замкнуты и выпуклы, если не пусты.
Для формулировки метода решения задачи (1)  (3) запишем ее в следующем виде:
 ,
,
 ,
,
 ³
0,
³
0, 
 ,
,	
где 
 .
.
Допустимое решение 
 называется опорным решением (опорным
планом) задачи (1) 
(3),
если векторы
называется опорным решением (опорным
планом) задачи (1) 
(3),
если векторы 
 ,
соответствующие компонентам
,
соответствующие компонентам 
 ,
в совокупности линейно независимы.
,
в совокупности линейно независимы.
Опорное решение будем называть
невырожденным,
если оно имеет 
 положительных компонент,
и вырожденным в противном случае.
положительных компонент,
и вырожденным в противном случае.
Любую совокупность 
 
мерных линейно независимых векторов,
содержащую в качестве подсистемы все
вектора
мерных линейно независимых векторов,
содержащую в качестве подсистемы все
вектора 
 ,
соответствующие положительным компонентам
опорного решения
,
соответствующие положительным компонентам
опорного решения 
 ,
будем называть базисом опорного
решения
,
будем называть базисом опорного
решения 
 .
Положительные компоненты опорного
решения будем также называть базисными.
Ясно,
что базис невырожденного опорного
решения определен однозначно.
.
Положительные компоненты опорного
решения будем также называть базисными.
Ясно,
что базис невырожденного опорного
решения определен однозначно.
Теорема 2. Для того чтобы точка 
 являлась вершиной допустимого множества
задачи (1)  (3),
необходимо и достаточно,
чтобы вектор
являлась вершиной допустимого множества
задачи (1)  (3),
необходимо и достаточно,
чтобы вектор 
 являлся опорным решением этой задачи.
являлся опорным решением этой задачи.
Задача (1)  (3) всегда имеет опорные решения, если её допустимое множество не пусто.
Соседним вершинам допустимого многогранника D (т.е. лежащим на одном и том же ребре) соответствуют опорные решения, базисы которых отличаются лишь одним вектором.
Пусть 
  опорное решение
задачи (1)  (3) с базисом
 опорное решение
задачи (1)  (3) с базисом
 .	(4)
.	(4)
Обозначим через 
 -
ю координату вектора
-
ю координату вектора 
 ,
,
 в базисе (4). Ясно,
что
в базисе (4). Ясно,
что 
 ,
,
 ;
;
 ,
,
 ,
,
 ,
,
 ,
,
 .
.
В общем случае вектор 
 является решением следующей системы
линейных алгебраических уравнений:
является решением следующей системы
линейных алгебраических уравнений:
 .	(5)
.	(5)
Для каждого вектора 
 (
( ) определим величину
) определим величину
 ,	(6)
,	(6)
которую будем называть оценкой для
Aj в базисе (4). Ясно,
что 
 .
.
Теорема 3 (критерий оптимальности
опорного плана). Опорное решение тогда
и только тогда является оптимальным
решением задачи,
когда все оценки 
 .
.
Теорема 4 (признак неограниченности
целевой функции задачи). Если для
какого-нибудь опорного решения существует
хотя бы одна оценка 
 такая,
что для неё все
такая,
что для неё все 
 ,
то это означает,
что целевая функция данной задачи
линейного программирования, не ограничена
сверху на допустимом множестве.
,
то это означает,
что целевая функция данной задачи
линейного программирования, не ограничена
сверху на допустимом множестве.
Пусть теперь для некоторого номера 
 ,
система векторов
,
система векторов
 (7)
	(7)
также является базисом в 
 .
.
Обозначим через 
 
 
 -ю
координату вектора
-ю
координату вектора 
 в базисе (7). Тогда имеют место основные
симплекс-формулы:
в базисе (7). Тогда имеют место основные
симплекс-формулы:
 (8)
	(8)

Теорема 5 (о возможности улучшения
опорного решения). Если для данного
опорного решения есть такая отрицательная
оценка 
 ,
что среди координат вектора
,
что среди координат вектора 
 в данном базисе (т.е. среди чисел
в данном базисе (т.е. среди чисел 
 )
есть положительные,
то базис, которому соответствует лучшее
опорное решение,
получим, заменив вектором
)
есть положительные,
то базис, которому соответствует лучшее
опорное решение,
получим, заменив вектором 
 тот вектор
тот вектор 
 исходного базиса,
для которого
исходного базиса,
для которого 
 ,
причем
,
причем 
 для всех
для всех 
 .
.
Теорема 6 (критерий единственности
оптимального опорного решения). Если
для данного опорного решения все оценки
 
 ,
причем нулевые оценки соответствуют
только базисным векторам,
то данное опорное решение является
единственным оптимальным опорным
решением задачи.
,
причем нулевые оценки соответствуют
только базисным векторам,
то данное опорное решение является
единственным оптимальным опорным
решением задачи.
Алгоритм симплекс-метода
Пусть известно какое-нибудь опорное
решение 
 задачи (1)  (3) с базисом
(4).
задачи (1)  (3) с базисом
(4).
- 
Полагаем  .
	Для .
	Для находим находим ,
	решая систему (5). ,
	решая систему (5).
- 
Для каждого  вычисляем оценку вычисляем оценку по
	формуле (6),
	причем по
	формуле (6),
	причем .
	Если все .
	Если все ,
	то процесс решения задачи окончен.
	Рассматриваемое опорное решение
	оптимально. Оптимум целевой функции ,
	то процесс решения задачи окончен.
	Рассматриваемое опорное решение
	оптимально. Оптимум целевой функции
 .	(9)
.	(9)
Если есть 
 ,
то:
,
то:
- 
Выясняем, существует ли хотя бы одна такая  ,
	что все ,
	что все . .
Если существует, то процесс решения задачи окончен  целевая функция не ограничена сверху на допустимом множестве.
Если таких 
 нет (т.е. для любой
нет (т.е. для любой 
 есть хотя бы одно
есть хотя бы одно 
 ),
то:
),
то:
- 
Выбираем одну из  (например, (например, для для );
	вычисляем отношения );
	вычисляем отношения для всех k,
	для которых для всех k,
	для которых ,
	и найдем минимальное из этих отношений
	(пусть это будет ,
	и найдем минимальное из этих отношений
	(пусть это будет ). ).
- 
Осуществляем переход к новому опорному решению (базис которого получается заменой вектора  в
	предыдущем базисе вектором в
	предыдущем базисе вектором ),
	вычислив координаты ),
	вычислив координаты векторов векторов в новом базисе по основным симплекс-формулам
	(8). в новом базисе по основным симплекс-формулам
	(8).
Переходим к шагу 2.
Каждый переход к новому базису называется итерацией симплекс-метода. В невырожденном случае через конечное число итераций процесс закончится либо на п.2 , либо на п.3. В вырожденном случае возможно зацикливание, но оно маловероятно.
Пример 1. Решить симплекс-методом задачу линейного программирования



 
	

Сначала приведем задачу к каноническому
виду, для этого в каждое ограничение
введем неотрицательные переменные 
 ,
и заменим знаки неравенств на знаки
равенств. В результате получим задачу
линейного программирования, в канонической
форме, эквивалентную исходной задаче.
,
и заменим знаки неравенств на знаки
равенств. В результате получим задачу
линейного программирования, в канонической
форме, эквивалентную исходной задаче.

 (10)
	(10)
 .
.
О
	 
	
 ,
а базисом  единичные
векторы
,
а базисом  единичные
векторы 
 .
Решаем задачу симплекс-методом, результаты
вычислений оформляем в виде симплекс-таблиц.
В самой верхней строке таблицы, в клетках,
расположенных над символами
.
Решаем задачу симплекс-методом, результаты
вычислений оформляем в виде симплекс-таблиц.
В самой верхней строке таблицы, в клетках,
расположенных над символами 
 ,
записывают значения соответствующих
коэффициентов
,
записывают значения соответствующих
коэффициентов 
 целевой функции.
целевой функции. 
Таблица 1
| 
 | № | Базис | Сбаз | A0 | 6 | 7 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | A1 | A2 | A3 | A4 | A5 | 
| 
 | 1 | A3 | 0 | 3 | 3 | -5 | 1 | 0 | 0 | 
| 
 | 2 | A4 | 0 | 39 | 5 | 3 | 0 | 1 | 0 | 
| 
				 | 3 | A5 | 0 | 9 | -5 | "3" | 0 | 0 | 1 | 
| 
 | 4 | - | - | 0 | -6 | -7 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
				 
				 | 
				 
				 | 
				 
				 | 
				 
				 | 
				 
				 | 
				 
				 | 
В колонке "Базис" перечислены
наименования базисных векторов, эта
последовательность векторов всегда
должна образовывать единичную матрицу.
В колонке "Сбаз" для удобства
вычислений приведены значения
коэффициентов целевой функции при
базисных переменных, в алгоритме они
обозначены символами 
 ,
где k 
номер строки в таблице. В колонках
,
где k 
номер строки в таблице. В колонках 
 табл. 1 содержатся коэффициенты системы
ограничений-равенств (10). В алгоритме
эти коэффициенты обозначены символами
табл. 1 содержатся коэффициенты системы
ограничений-равенств (10). В алгоритме
эти коэффициенты обозначены символами
 ,
где i номер строки в
табл. 1, а индекс j
соответствует индексу в столбце
,
где i номер строки в
табл. 1, а индекс j
соответствует индексу в столбце 
 .
В 4-й строке записываются значения
.
В 4-й строке записываются значения 
 и критериев
и критериев 
 ,
которые вычисляются по формулам (6).
,
которые вычисляются по формулам (6).
Анализируя табл. 1 видим, что отрицательными
оценками являются  
 ,
причем
,
причем 
 является наименьшей из них:
является наименьшей из них: 
 .
Во всех столбцах с отрицательными
.
Во всех столбцах с отрицательными 
 присутствуют положительные элементы.
Это означает, что данное опорное решение
не оптимально и нет основания утверждать,
что целевая функция задачи не ограничена
сверху на допустимом множестве. Таким
образом, вектор
присутствуют положительные элементы.
Это означает, что данное опорное решение
не оптимально и нет основания утверждать,
что целевая функция задачи не ограничена
сверху на допустимом множестве. Таким
образом, вектор 
 следует ввести в базис (этот факт отмечен
стрелкой сверху). Затем ищем вектор,
который следует вывести из базиса. Для
этого находим отношения
следует ввести в базис (этот факт отмечен
стрелкой сверху). Затем ищем вектор,
который следует вывести из базиса. Для
этого находим отношения

Минимальное отношение 
 =3.
Следовательно, из базиса выводим третий
(по занимаемому месту) вектор
=3.
Следовательно, из базиса выводим третий
(по занимаемому месту) вектор 
 .
Этот факт отмечен стрелкой слева. Ведущий
элемент
.
Этот факт отмечен стрелкой слева. Ведущий
элемент 
 выделен жирным шрифтом и апострофами.
выделен жирным шрифтом и апострофами.
Заполняем симплекс-таблицу,
соответствующую новому опорному решению.
Для этого используем основные
симплекс-формулы (8). При этом сначала
заполняем 3-ю строку табл.2, полагая 

 
	 
	
| 
 | № | Базис | Сбаз | A0 | 6 | 7 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | A1 | A2 | A3 | A4 | A5 | 
| 
 | 1 | A3 | 0 | 18 | -16/3 | 0 | 1 | 0 | 5/3 | 
| 
				 | 2 | A4 | 0 | 30 | "10" | 0 | 0 | 1 | -1 | 
| 
 | 3 | A2 | 7 | 3 | -5/3 | 1 | 0 | 0 | 1/3 | 
| 
 | 4 | - | - | 21 | -53/3 | 0 | 0 | 0 | 7/3 | 
Из табл. 2,
видим,
что отрицательной оценкой является 
 ,
следовательно новый опорный план
,
следовательно новый опорный план 
 неоптимальный и его можно улучшить,
если введем в базис вектор
неоптимальный и его можно улучшить,
если введем в базис вектор 
 .
.
В столбце, соответствующем 
 ,
только элемент второй строки положителен,
следовательно выводим из базиса вектор
,
только элемент второй строки положителен,
следовательно выводим из базиса вектор
 .
Выделяем ведущий элемент и заполняем
следующую табл. 3.
.
Выделяем ведущий элемент и заполняем
следующую табл. 3.
Таблица 3
| 
 | № | Базис | Сбаз | A0 | 6 | 7 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | A1 | A2 | A3 | A4 | A5 | 
| 
 | 1 | A3 | 0 | 34 | 0 | 0 | 1 | 8/15 | 17/15 | 
| 
 | 2 | A1 | 6 | 3 | 1 | 0 | 0 | 1/10 | -1/10 | 
| 
 | 3 | A2 | 7 | 8 | 0 | 1 | 0 | 1/6 | 1/6 | 
| 
 | 4 | - | - | 74 | 0 | 0 | 0 | 53/30 | 17/30 | 
Сначала вычисляем элементы 2-й строки,
затем элементы остальных строк. В новой
симплекс таблице все 
 неотрицательные, следовательно, получен
оптимальный опорный план канонической
задачи:
неотрицательные, следовательно, получен
оптимальный опорный план канонической
задачи: 
 ,
а
,
а 
  максимальное
значение целевой функции.
 максимальное
значение целевой функции.
Оптимальным опорным решением исходной
задачи является вектор 
 .
.
Задание. Задачу линейного программирования из 1.11.104 привести к каноническому виду и решить симплекс-методом.
	
		 
		








