Алгоритм решения ЗЛП симплексным методом
Если Вы дошли до пятого шага, значит нашли решение, которое допустимо. Однако, это не значит, что оно оптимально. Оптимальным оно будет только в том случае, если положительны все элементы в F-строке. Если же это не так, то необходимо улучшить решение, для чего находим для следующего перерасчета ведущие строку и столбец по следующему алгоритму. Первоначально, находим минимальное отрицательное… Читать ещё >
Алгоритм решения ЗЛП симплексным методом (реферат, курсовая, диплом, контрольная)
Симплекс-метод подразумевает последовательный перебор всех вершин области допустимых значений с целью нахождения той вершины, где функция принимает экстремальное значение. На первом этапе находится какое-нибудь решение, которое улучшается на каждом последующем шаге. Такое решение называется базисным.
Рассмотрим шаги симлекс-метода.
- 1) в составленной таблице сначала необходимо просмотреть столбец со свободными членами. Если в нем имеются отрицательные элементы, то необходимо осуществить переход ко второму шагу, если же нет, то к пятому;
- 2) на втором шаге необходимо определиться, какую переменную исключить из базиса, а какую включить, для того, что бы произвести перерасчет симплекс-таблицы. Для этого просматриваем столбец со свободными членами и находим в нем отрицательный элемент. Строка с отрицательным элементом будет называться ведущей. В ней находим максимальный по модулю отрицательный элемент, соответствующий ему столбец — ведомый. Если же среди свободных членов есть отрицательные значения, а в соответствующей строке нет, то такая таблица не будет иметь решений. Переменная в ведущей строке, находящаяся в столбце свободных членов исключается из базиса, а переменная, соответствующая ведущему столбцу включается в базис. В таблице 1 приведен пример симплекс-таблицы.
Таблица 1 — Пример симплекс-таблицы
Базисные переменные. | Свободные члены в ограничениях. | Небазисные переменные. | |||||
x1 | x2 | … | xl | … | xn | ||
xn+1 | b1 | a11 | a12 | … | a1l | … | a1n |
xn+2 | b2 | a21 | a22 | … | a2l | … | a2n |
… | … | … | … | ||||
… | … | … | … | … | … | … | … |
… | … | … | |||||
xn+r | b2. | ar1 | ar2 | … | arl | … | arn |
… | … | … | … | … | … | … | … |
… | … | … | |||||
… | … | … | … | … | … | … | … |
xn+m | bm | am1 | am2 | … | aml | … | amn |
F (x)max | F0 | — c1 | — c2 | … | — c1 | … | — cn |
- 3) на третьем шаге пересчитываем всю симплекс-таблицу по специальным формулам;
- 4) если после перерасчета в столбце свободных членов остались отрицательные элементы, то переходим к первому шагу, если таких нет, то к пятому;
- 5) если Вы дошли до пятого шага, значит нашли решение, которое допустимо. Однако, это не значит, что оно оптимально. Оптимальным оно будет только в том случае, если положительны все элементы в F-строке. Если же это не так, то необходимо улучшить решение, для чего находим для следующего перерасчета ведущие строку и столбец по следующему алгоритму. Первоначально, находим минимальное отрицательное число в строке F, исключая значение функции. Столбец с этим числом и будем ведущим. Для того, что бы найти ведущую строку, находим отношение соответствующего свободного члена и элемента из ведущего столбца, при условии, что они положительны. Минимальное отношение позволит определить ведущую строку. Вновь пересчитываем таблицу по формулам, т. е. переходим к шагу 3;
- 6) если невозможно найти ведущую строку, так как нет положительных элементов в ведущем столбце, то функция в области допустимых решений задачи не ограничена сверху и Fmax->?. Если в строке F и в столбце свободных членов все элементы положительные, то найдено оптимальное решение.