Содержание
Вид материала | Документы |
Содержание4.5. Алгоритм улучшения плана Вторая итерация Этап 1 |
- Содержание дисциплины наименование тем, их содержание, объем в часах лекционных занятий, 200.99kb.
- Содержание рабочей программы Содержание обучения по профессиональному модулю (ПМ) Наименование, 139.63kb.
- Заключительный отчет июль 2010 содержание содержание 1 список аббревиатур 3 введение, 6029.85kb.
- 5. Содержание родительского правоотношения Содержание правоотношения, 110.97kb.
- Содержание введение, 1420.36kb.
- Сборник статей Содержание, 1251.1kb.
- Сборник статей Содержание, 1248.25kb.
- Анонсы ведущих периодических изданий содержание выпуска, 806.18kb.
- Вопросы к экзамену по дисциплине «Коммерческая деятельность», 28.08kb.
- Конспект лекций содержание содержание 3 налог на прибыль организаций 5 Плательщики, 795.2kb.
4.5. Алгоритм улучшения плана
Сформулируем теперь алгоритм перехода к новому опорному плану, дающему меньшее значение функции потерь. Прежде, чем формулировать его в общем виде, покажем его основные моменты на том примере, который мы начали рассматривать.
Вспомним, что ограничения двойственной задачи соответствовали тому, что


условия ![]() | говорит о том, что вектор ![]() | надо вводить в базис. |
У нас условие



принято вводить в базис тот вектор, для которого ![]() |
максимально. В данном случае это вектор ![]() | но в учебных целях мы |
введем в базис вектор ![]() |
Введение в базис вектора

![]() 2 | 3.1 | | |
![]() | 3.9 | 4.2 | |
![]() | | 2.8 | 6.3 |
Но теперь у нас нарушился баланс запасов и потребностей получилось, что
из третьего склада вывозится ![]() | а в первый пункт потребления |
поступает ![]() | |
Необходимо восстановить баланс запасов и потребностей. Для этого поступают следующим образом: по ненулевым компонентам плана перевозок (включая и компоненту ) строят цикл вида столбец строка столбец строка ... строка (см. рисунок), который начинается и кончается на компоненте .
Теперь для восстановления баланса запасов и потребностей можно поступить очень просто: при движении по столбцу от имеющихся компонентов плана надо отнимать , а при движении по строке наоборот, прибавлять . В результате получится следующий план перевозок, уже сохраняющий баланс запасов и потребностей:
2- | 3.1+ | | |
| 3.9- | 4.2+ | |
| | 2.8- | 6.3 |
С балансом всё в порядке, но теперь у нас стало


В результате получится новый опорный план следующего вида
| 5.1 | | |
| 1.9 | 6.2 | |
2 | | 0.8 | 6.3 |
в котором снова будет положенные ему ![]() | компонент. |
Вычисляя транспортные расходы для этого плана, мы получим

Опишем этот процесс в общем виде.
Итак, пусть для некоторой пары индексов



величина разности ![]() | максимальна. |
Исходя из клетки


такой цикл всегда может быть построен;
такой цикл единственный.
Итак, пусть этот цикл имеет вид

Установим новый план перевозок вида

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

где считается ![]() | |
В результате получится новый опорный план. Покажем, что этот новый опорный план дает меньшее значение транспортных расходов, чем старый план.
Так как компоненты плана, не входящие в цикл, не изменяются, то их можно не учитывать. Для ненулевых компонент исходного плана
выполнялось условие ![]() | и поэтому |



Для нового плана перевозок мы имеем



В выражении, стоящем в квадратных скобках, большинство слагаемых сокращается и окончательно получаем

так как мы вводим перевозку, для которой ![]() | |
Ну, а дальнейшее очевидно: надо повторять все итерации до тех пор, пока не будет получен оптимальный план. В силу конечности числа вершин допустимой области, это может быть сделано за конечное число шагов.
Закончим наш учебный пример. Одну итерацию мы уже проделали.
Вторая итерация
Этап 1
Определение потенциалов и проверка оптимальности плана. Обычно это совмещается в одной таблице и выглядит в виде таблицы, приведенной на следующей странице.
Сначала в таблицу выписываются

| 2 | 5 | 7 | 4 |
![]() 0 | 2 | 5 | 7 | 4 |
![]() -3 | -1 | 2 | 4 | 1 |
-1 | 1 | 4 | 6 | 3 |
Затем определяются потенциалы. Обычно это легко сделать в уме, двигаясь по строкам и столбцам.
Затем оставшиеся клетки заполняются суммами соответствующих
потенциалов, то есть величинами ![]() | |
Наконец, производится сравнение получившейся таблицы с таблицей
величин ![]() | и определяются те клетки, где ![]() |
Этап 2
Из тех пар индексов, где


В нашем случае эти преобразования имеют следующий вид:
![]() | 5.1- | | | | | | 5.1 | |
![]() | 1.9+ | 6.2- | | | | 7 | 1.1 | |
2 | | 0.8 | 6.3 | | 2 | | 0.8 | 6.3 |
В нашем случае


то есть на 15.3 единицы.
Следующая итерация дается без пояснений.
Третья итерация
Этап 1
| -1 | 2 | 4 | 1 |
0 | -1 | 2 | 4 | 1 |
0 | -1 | 2 | 4 | 1 |
2 | 1 | 4 | 6 | 3 |
В данном случае для всех клеток таблицы выполняется условие

Для этого плана перевозок значение транспортных расходов

По сравнению с исходным планом, полученным методом северо-западного угла, транспортные расходы уменьшились на 17.3 единицы, то есть на 21%.
Теперь мы в состоянии доказать одну интересную теорему
Теорема Если все запасы


Доказательство
Действительно, вспомните, как строился исходный опорный план методом северо-западного угла. При этом применялась только одна арифметическая операция операция вычитания. А при вычитании целых чисел всегда получаются только целые числа. Поэтому исходный опорный план целочисленный.
При переходе к новому опорному плану применялись три операции: нахождение минимума из нескольких чисел (при определении ), вычитание и сложение. В применении к целым числам эти операции всегда дают целые числа. Поэтому на любой итерации получающийся план является целочисленным, в том числе и оптимальный план. Теорема доказана.