
5 Схема симплекс – метода
Рассмотренный ранее способ перехода от одного ДБР к другому, а также последние теоремы позволяют построить так называемый симплекс – метод решения ЗЛП в канонической форме, который имеет следующую схему:
(не давать – методич. указаниях)
Шаг 0. Построение начального ДБР
Найти некоторое ДБР исходной ЗЛП (такое ДБР называется начальным). Пусть данному ДБР соответствует
базис В,
базисная матрица В,
небазисная матрица N,
вектор базисных переменных
,
небазисных переменных
,
вектор оценок ограничений
. (в опт.реш. это ценности ресурсов)
Шаг 1. Вычисление компонент вектора относительных оценок небазисных переменных.
.
Шаг 2. Проверка выполнения условия оптимальности.
Если
выполняется
,
то прекратить вычисления – текущее ДБР
является решением исходной задачи.
Шаг
3. Выбор небазисной
переменной
,
вводимой во множество базисных переменных.
Выбрать
p, для которого
(Обычно р
соответствует минимальная отрицательная
компонента
= максимальная по модулю отрицательная)).
Шаг 4. Выбор базисной переменной, исключаемой (выводимой) из множества базисных переменных.
Вычислить
элементы ведущего
столбца:
.
Условие допустимости
Если
,
то прекратить вычисления – целевая
функция не ограничена сверху.
Иначе
выбрать q, для которого
выполняется
,
т.е. переменная
будет исключена из множества базисных
переменных.
Шаг 5. Операция замещения.
Построить
базис нового ДБР путем замены столбца
текущего базиса В
на столбец
.
Построить новую базисную матрицу В
и небазисную
.
Найти новое ДБР с
.
Перейти на шаг1.
Последовательность шагов 1-5 называется итерацией симплекс – метода.
Если
имеем ЗЛП на минимум, то достаточным
условием оптимальности является условие
.
На
практике число итераций
,
а общее время счета =
(
-
коэффициент пропорциональности,
зависящий от типа задачи).
Хотя
можно подобрать пример, в котором
перебираются все вершины.
кубик:
Самостоятельно №
Показать, что из того, что
мы выбираем
,
не следует, что получим максимальный
прирост ЦФ, более того, можно подобрать
пример, когда будет наоборот.
Сходимость с-м
[Ермольев, с.22]
Если
после каждой итерации значение ЦФ
увеличивается, то симплекс-методом
перебираются различные вершины. Т.к.
вершин конечное число, то за конечное
число итераций будет получено решение
задачи. Если же после некоторой итерации
значение ЦФ не увеличивается
,
то в процессе перебора некоторые вершины
могут повторяться и не исключено, что
может быть получена последовательность
ДБР периодически повторяющихся и не
являющихся оптимальным решением ЗЛП.
Это явление называется зацикливанием.
Если задачи имеют небольшие размерности, случаи зацикливания редки. Однако, вероятность этого растет по мере роста размерности задачи. [Муртаф, с.30]
С геометрической точки зрения зацикливание объясняется вырожденностью текущего решения.
С практической точки зрения вырожденность объясняется наличием избыточных ограничений:
|
|
С вычислительной точки зрения, причина зацикливания – не единственность выбора выводимой переменной.
|
Точке С соответствует
Например
|
Расстояние от т.В до прямых (1), (2), (3) одно и то же:
(1)
(2)
Три отношения принимают минимальное значение, но выводим из базиса только одну переменную, две другие оставаясь базисными принимают нулевое значение.
[Таха, с. 114-116]
В ходе выполнения симплекс-метода
проверка условия допустимости приводит
к неоднозначному выбору исключаемой
переменной (т. В)).
В этом случае перейдём
к вырожденному решению (одна или несколько
базисных переменных примут нулевое
значение) (т. С).
Если на следующей итерации при выбранном
p будет существать i
такое, что
и
,
то в результате выполнения такой итерации
мы перейдем к новому базису не изменившегося
ДБР (останемся в т. С).
БП |
|
|
X5↓ |
|
|
БП |
|
|
X6↓ |
|
|
БП |
|
|
X2↓ |
|
z |
|
|
|
|
|
z |
|
|
|
|
|
z |
|
|
|
|
x1 ← |
|
|
|
0 |
|
x5 |
|
|
|
0 |
|
x5 |
|
|
|
0 |
x2 |
|
|
|
|
|
x2 |
|
|
|
|
|
x2 |
|
|
|
|
x3 |
|
|
|
|
|
x3 |
|
|
|
|
|
x3 |
|
|
|
|
x4 |
|
|
|
0 |
|
x4 ← |
|
|
|
0 |
|
x6 ← |
|
|
|
0 |
Чтобы исключить зацикливание, был разработан ряд приёмов.
Вырожденному ДБР геометрически соответствует вершина в n – мерном протстрантве, которая получается пересечением гиперплоскостей, число которых больше n. Поэтому, заменив вектор b на вектор b() можем добиться того, чтобы каждая вершина была пересечением n гиперплоскостей
Т.е. задача
заменяется задачей
Для исключения вырожденности в вектор b вносятся небольшие возмущения:
,
- достаточно малое.
Тогда,
если b()
– вектор правых частей и B=
-
текущий базис, то
.
(3)
Самостоятельно №
Объяснить почему (3) справедливо.
Прямые слегка смещаются и (2) не выполняются, то есть в (1) минимум единственный.
Отсюда видим, что теперь можно однозначно определить переменную, выводимую из базиса (бывшие нулевые базисные переменные принимают разные ненулевые значения).
После
получения оптимального решения нужно
будет опять перейти к исходному вектору
.
Второй, более эффективный, прием устранения зацикливания был разработан Блендом. (Ашманов, Тимохов, стр.146)
Сначала определим два множества, пусть
-
множество индексов (номеров) базисных
переменных;
-
множество индексов (номеров) небазисных
переменных.
Теорема Бленда(правило устранения зацикливания)
Если переменная, вводимая в базис определяется так:
,
а переменная, выводимая из базиса так:
,
где
,
то зацикливание симплекс-метода
невозможно.
Без доказательства.
ИТАК:
Если исходная ЗЛП является невырожденной, то очевидно, что симплекс – метод за конечное число шагов находит решение задачи (если применить правило Блэнда, то и для вырожденной ЗЛП получим решение за конечное число шагов).