3.3. Формирование начального опорного плана исходной задачи линейного программирования из оптимального плана L-задачи
Поскольку , где - оптимальный опорный план L-задачи, то является начальным опорным планом исходной задачи (2.12) - (2.13).
4. Решение исходной задачи I алгоритмом симплекс-метода
Описание I алгоритма
Симплекс-метод позволяет, отправляясь от некоторого исходного опорного плана и постепенно улучшая его, получить через конечное число итераций оптимальный план или убедиться в неразрешимости задачи. Каждой итерации соответствует переход от одной таблицы алгоритма к следующей. Таблица, отвечающая опорному плану в ν-й итерации имеет вид табл. 4.1.
Таблица 4.1
C |
| … | … | … | |||||||
N | B |
| … | … | … | t | |||||
1 | … | … | … | ||||||||
l | … | … | … | ||||||||
m | … | … | … | ||||||||
m+1 | – | – | … | … | … | – |
Заполнение таблицы, соответствующей исходному опорному плану (0-й итерации). Пусть некоторый опорный план задачи (2.1) - (2.3) с базисом . Тогда – базисные компоненты, а – небазисные компоненты.
Вычисляем коэффициенты разложения векторов Аj по базису Б0
(в случае, если Б0 является единичной матрицей, )
и находим оценки . Далее определяем значение линейной формы
Полученные результаты записываем в таблицу 4.1.
В первом столбце N таблицы указываются номера строк. Номера первых m строк совпадают с номерами позиций базиса. Во втором столбце Сх записываются коэффициенты линейной формы при базисных переменных. Столбец Бх содержит векторы базиса . В столбце В записываются базисные переменные опорного плана. Столбцы содержат коэффициенты разложения соответствующих векторов условий по векторам базиса. Все вышесказанное относится только к первым m строкам таблицы. Последняя (m+1)-я строка таблицы заполняется последовательно значением линейной формы F и оценками . Позиции таблицы, которые не должны заполняться, прочеркиваются.
В результате заполнена таблица 0-й итерации кроме столбца t.
Столбцы В, А1,…, An (все m+1 позиций) будем называть главной частью таблицы.
Порядок вычислений в отдельной итерации. Пусть ν-я итерация закончена. В результате заполнена таблица ν за исключением последнего столбца t.
Каждая итерация состоит из двух этапов.
I этап: проверка исследуемого опорного плана на оптимальность.
Просматривается (m+1)-я строка таблицы ν. Если все , то опорный план, полученный после ν-й итерации, является оптимальным (случай 1), завершаем решение задачи. Пусть теперь имеются отрицательные оценки. Проверяем знаки элементов столбцов с . Наличие по крайней мере одного столбца , для которого и все , свидетельствует о неразрешимости задачи (случай 2). Установив это, прекращаем вычисления.
Если в каждом столбце , для которого , содержится хотя бы один положительный коэффициент , то опорный план является неоптимальным (случай 3). Переходим ко II этапу.
II этап: построение нового опорного плана с большим значением линейной формы.
Определяется вектор Ak, который должен быть введен в базис, из следующего условия
.
После этого заполняется последний столбец таблицы ν – столбец t. В него записываются отношения базисных переменных (элементы столбца В) к соответствующим составляющим (элементы столбца Ak). Т.о. заполняются только те позиции, для которых . Если , то в позиции i столбца t записывается . Вектор базиса , на котором достигается t0,
,
подлежит исключению из базиса (если t0 достигается на нескольких векторах, то из базиса исключается любой из них).
Столбец Ak, отвечающий вектору, вводимому в базис, и l-я строка, соответствующая вектору , исключаемому из базиса, называется соответственно разрешающим столбцом и разрешающей строкой. Элемент , расположенный на пересечении разрешающего столбца и разрешающей строки, называется разрешающим элементом.
После выделения разрешающего элемента заполняется (ν+1)-я таблица. В l-е позиции столбцов Бх, Сх вносятся соответственно Ак, Ск, которые в (ν+1)-й таблице обозначаются как , . В остальные позиции столбцов Бх, Сх вносятся те же параметры, что и в таблице ν.
Далее заполняется главная часть (ν+1)-й таблицы. Прежде всего происходит заполнение ее l-й строки в соответствии с рекуррентной формулой
.
Рекуррентная формула для заполнения i-й строки (ν+1)-й таблицы имеет вид
.
Здесь
.
Заполнение главной части (ν+1)-й таблицы завершает (ν+1)-ю итерацию. Последующие итерации проводятся аналогично. Вычисления продолжаются до тех пор, пока не будет получен оптимальный план либо будет установлено, что исследуемая задача неразрешима.
Решение исходной задачи
Весь процесс решения исходной задачи (2.12) - (2.13) приведен в табл. 4.2.
Заполнение таблицы, отвечающей 0-й итерации, происходит на основе табл. 3.2.1 (см. итерацию 1) следующим образом. Главная часть таблицы 0-й итерации исходной задачи (за исключением (m+1)-й строки) полностью повторяет главную часть таблицы заключительной итерации L-задачи без столбца А9. Также без изменений остается столбец базисных векторов Бх. Строка С коэффициентов линейной формы исходной задачи и столбец Сх коэффициентов при базисных переменных заполняются исходя из (2.12). С учетом новых коэффициентов С пересчитываются значение линейной формы F и оценки .
Заполнение таблиц, отвечающих последующим итерациям, происходит в соответствии с описанным выше первым алгоритмом.
Таблица 4.2
Решение исходной задачи (2.12) - (2.13) получено за 3 итерации. Оптимальный план ее равен и .
Найденное решение задачи в канонической форме (2.12) - (2.13) соответствует решению (4.1) общей задачи линейного программирования (2.9) - (2.11), записанной для новых переменных . Для общей задачи из (2.9) следует, что (4.2).
Вернемся к задаче (1.2.1), (1.2.2) со старыми переменными . Учитывая (4.1) и (4.2) из (2.7) и (2.8) получим
(4.3)
и
. (4.4)
Таким образом, для получения максимальной цены (142750 руб.) всей продукции необходимо произвести:
- 450 тыс.л. бензина А из полуфабрикатов в следующих количествах:
- Алкитата тыс.л.
- Крекинг-бензина тыс.л.
- Бензина прямой перегонки тыс.л.
- Изопентона тыс.л.
- тыс.л. бензина В из полуфабрикатов в следующих количествах:
- Алкитата тыс.л.
- Крекинг-бензина тыс.л.
- Бензина прямой перегонки тыс.л.
- Изопентона тыс.л.
- 300 тыс.л. бензина В из полуфабрикатов в следующих количествах:
- Алкитата тыс.л.
- Крекинг-бензина тыс.л.
- Бензина прямой перегонки тыс.л.
- Изопентона тыс.л.
... положит в такой симплекс-таблице текущие базисные переменные равными Ai,0, а свободные - нулю, то будет получено оптимальное решение. Практика применения симплекс метода показала, что число итераций, требуемых для решения задачи линейного программирования обычно колеблется от 2m до 3m, хотя для некоторых специально построенных задач вычисления по правилам симплекс метода превращаются в прямой ...
... 0 505/103 0 792/103 669/103 500/103 Анализ Таблицы 6 позволяет сделать вывод о допустимости и оптимальности базиса XБ4=(x5, x7, x1, x2, x4)T. 3.4 Результат решения задачи планирования производства В результате решения поставленной задачи симплекс-методом получили набор производимой продукции x=(x1, x2, x3, x4, x5)=( 15145/103, 8910/103, 0, 1250/103, 3255/103), который удовлетворяет всем ...
... - метод для решения задач линейного программирования. Задачи курсовой заботы: 1. привести теоретический материал; 2. на примерах рассмотреть симплекс метод; 3. представить данную курсовую работу в виде презентации. Математическое программирование Математическое программирование занимается изучение экстремальных задач и поиском методов их решения. Задачи ...
... . При этом значения cij соответствуют коэффициентам целевой функции исходной замкнутой транспортной задачи (1) и в последующем не изменяются. Элементы xij соответствуют значениям переменных промежуточных решений транспортной задачи линейного программирования и изменяются на каждой итерации алгоритма. Если в некоторой ячейке xij=0, то такая ячейка называется свободной, если же xij>0, то такая ...
0 комментариев