Модифицированный симплекс-метод

 

1.5.1. Вычислительная схема, основанная на преобра­зовании обратных матриц. Анализируя вычислительную процедуру симплекс-метода с позиций оценки трудоемкости, не­трудно заметить, что наиболее критичным в этом плане являет­ся этап пересчета значений А и b при переходе от одного базис­ного плана к другому (п. 3 алгоритма). Однако в том случае, когда число ограничений задачи m явно меньше количества переменных n, можно добиться существенной «экономии», вы­полняя на очередной итерации q преобразование Жордана—Га­усса не над матрицей А( q )), а над матрицей Δ-1( q )). При этом учитывается и то, что при необходимости, применяя формулу (1.26), всегда можно получить А( q )) по Δ-1( q )). Более того, для выполнения описанных выше действий симплекс-процедуры нам в действительности не требовалась матрица А( q )) целиком. Реаль­но в ней использовались только строка оценок a 0( q )) и ведущий столбец al( q )). Данные соображения положены в основу вы­числительной схемы симплекс-метода, основанной на преобра­зовании обратных матриц, которую также называют модифици­рованным симплекс-методом. Впервые данный алгоритм был предложен в 1951 г. в работах Л. В. Канторовича.

 

 

Вычислительной схеме модифицированного симплекс-мето­да соответствует система таблиц T 1 и Т 2( q ). Таблица T 1 (рис. 1.7) является общей для всех итераций и служит для получения строки оценок текущего базисного плана a 0( q )). Если обозна­чить через δ i( q )) (i Î 0: m) строки матрицы Δ-1( q )), то из (1.26), в частности, следует, что

 

 

Как видно из рис. 1.7, T 1 состоит из трех блоков:

Ø Ø в центре содержится матрица А;

Ø Ø в левом блоке таблицы на каждой итерации дописывают­ся нулевые строки матрицы Δ-1( q )) для текущего ба­зиса;

Ø Ø нижний блок, расположенный под матрицей А, на каж­дой итерации дополняется строкой оценок текущего плана, вычисленной по формуле (1.42).

Симплекс-таблица Т 2( q ), изображенная на рис. 1.8, соответ­ствует допустимому базису КЗЛП β( q ), получаемому на q -й ите­рации. Столбец N( q )) содержит номера базисных столбцов (в последовательности вхождения в базис); столбец b( q )) — компоненты вектора ограничений относительно текущего ба­зиса β( q ); Δ-1( q )) — матрица, обратная по отношению к матри­це расширенных столбцов текущего базиса β( q ); графа аl со­держит расширенный вектор условий, вводимый в базис на текущей итерации, а следующая графа — координаты аl( q )) этого же столбца в текущем базисе β( q ).

 

 

По аналогии с п. 1.4.1 опишем формальную схему алгоритма модифицированного симплекс-метода.

0-этап. Нахождение допустимого базисного плана.

1. Для поиска допустимого базиса может быть применен ме­тод минимизации невязок, рассмотренный в п. 1.4.5. При этом для решения вспомогательной задачи используется процедура модифицированного симплекс-метода. В результате 0-этапа мы получаем допустимый базисный план x(1)) и соответствую­щие ему матрицу Δ-1(1)) и вектор b(1)).

2. Заполняем центральную часть таблицы T 1, содержащую матрицу А.

3. Содержимое матрицы Δ-1(1)) и вектора b(1)), получен­ных на этапе поиска допустимого базисного плана, переносит­ся в таблицу T 2(1).

4. Полагаем номер текущей итерации q равным 1 и перехо­дим к I-этапу.

1-этап. Стандартная итерация алгоритма — выполня­ется для очередного базисного плана x( q )).

1°. Проверка оптимальности текущего базисного плана. Содержимое нулевой строки таблицы T 2( q ) — δ0( q )) переписы­вается в соответствующую графу таблицы T 1. По формуле (1.42) рассчитываем и заполняем строку a 0( q )). Осуществля­ем просмотр строки оценок a 0( q )). Возможны два варианта:

1΄. a 0( q ))≥0 —план, соответствующий текущему базису задачи, оптимален. Вычислительный процесс закончен. Со­гласно формулам (1.33) и (1.32) выписываются оптимальный план задачи х * = x( q )) и оптимальное значение целевой функ­ции f (х *) = f (x( q ))).

1". В строке оценок a 0( q )) существует по меньшей мере один элемент a 0, j( q ))<0, т. е. имеющий отрицательную оцен­ку. Следовательно, план x( q )) — неоптимален. Выбирает­ся номер l, соответствующий элементу, имеющему минималь­ную (максимальную по абсолютной величине) отрицательную оценку:

 

l -й столбец матрицы A становится ведущим и должен быть вве­ден в очередной базис. Переходим к пункту 2° алгоритма.

2°. Определение столбца, выводимого из базиса. Перепи­сываем ведущий столбец аl из таблицы T 1 в текущую таблицу Т 2( q ). По формуле аl( q )) = Δ-1( q )) аl заполняем соответствую­щий столбец в таблице Т 2( q ). Возможны два варианта:

2'. Для всех i Î 1: m аi,l( q ))≤0. Делается вывод о неограни­ченности целевой функции и завершается вычислительный процесс.

2". Существует по крайней мере один индекс i Î 1: m, для ко­торого аi,l( q ))>0. Согласно правилу (1.27) определяются мес­то r и номер Nr( q )) для столбца, выводимого из базиса. Пере­ходим к пункту 3° алгоритма.

3°. Пересчет относительно нового базиса элементов столбца b и матрицы Δ-1. Переход к новому базису β( q +1), кото­рый получается введением в базис β( q ) столбца аl и выводом из него столбца аr, осуществляется по формулам, аналогичным формулам (1.28)-(1.31). Они имеют вид:

 

 

Полагаем номер текущей итерации q: = q +l и переходим к первому пункту алгоритма.

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

1.5.2. Пример решения ЗЛП модифицированным сим­плекс-методом. Приведем решение рассмотренной ранее за­дачи (1.34)-(1.35), основанное на использовании процедуры модифицированного симплекс-метода. По аналогии с п. 1.4.3 оно начинается с выбора очевидного исходного базиса, обра­зуемого столбцами {5,2,3}. Для него уже были вычислены Δ-1( q )) и b( q )), поэтому заполнение начальных таблиц T 1 и Т 2(1) не представляет труда.

На первой итерации мы переписываем нулевую строку

 

 

из Т 2(1) в T 1 и, умножив ее на матрицу A, получаем строку оце­нок

 

 

Так как a 0(1)) содержит отрицательные элементы, то делаем вывод о неоптимальности плана, соответствующего базису β(1), и, выбрав наименьшую отрицательную оценку (-88), получаем номер столбца, вводимого в базис, l = 4.

Переписываем столбец

 

 

из таблицы T 1 в Т 2(1) и пересчитываем его координаты относи­тельно текущего базиса, т. е. умножаем матрицу Δ-1( q )), рас­положенную в таблице Т 2(1) слева, на а 4.

 

 

 

После заполнения таблицы Т 2(1) данными по вводимому в но­вый базис столбцу можно перейти к определению номера выво­димого столбца. Эта процедура осуществляется в полной ана­логии с обычным симплекс-методом. Рассмотрев отношения элементов bi(1)) и ai,l(1)) для { i Î1: m| ai,l(1))>0} и определив минимальное из них, находим, что r = 2. Следовательно, стол­бец с номером N 2( q )) = 2 должен быть выведен из базиса. Та­ким образом, получаем очередной допустимый базис задачи с N(2)) = {5, 4, 3}. Элемент a 2,3(1)) является ведущим (обведен кружком). Применив формулы (1.43)-(1.46), переходим к сим­плекс-таблице, соответствующей второй итерации Т 2(2), и пола­гаем индекс текущей итерации q = 2.

Повторяя те же самые действия (их легко проследить по при­водимым здесь таблицам Т 2(2) и Т 2(3), на третьей итерации мы получим оптимальный план задачи и оптимальное значение целевой функции, которые извлекаются из второго столбца таблицы Т 2(3). Легко заметить, что в процессе решения мы «про­шли» по той же самой последовательности допустимых базис­ных планов, которая встречалась в п. 1.4.3.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: