- •Часть V. Элементы линейного программирования.
- •Глава 2. Транспортная задача.
- •§1. Общая постановка задачи.
- •§2. Методы построения опорного плана перевозок.
- •§3. Метод потенциалов улучшения опорного (первоначального) плана.
- •Алгоритм решения транспортной задачи методом потенциалов.
- •Предварительный шаг решения:
- •Общий шаг решения:
§3. Метод потенциалов улучшения опорного (первоначального) плана.
Определение 1. Циклом в таблице называется ломаная, с вершинами в клетках таблицы и звеньями, лежащими вдоль строк и столбцов, если выполняются условия:
Ломаная должна быть связанной, т. е. из любой вершины можно попасть в любую другую.
В каждой вершине ломаной встречаются два звена, одно из которых расположено по строке, другое - по столбцу.
Число вершин ломаной - четное.
SHAPE \* MERGEFORMAT
Первоначальный план, как правило, ацикличен.
Теорема. Чтобы план перевозок был оптимальным, необходимо и достаточно, чтобы ему соответствовала такая система из чисел , для которых выполняются следующие условия:
(для всех клеток принадлежащих множеству X или для заполненных клеток).
(для всех клеток, не принадлежащих множеству Х или для всех пустых клеток).
Числа называют потенциалами соответствующих пунктов отправления и назначения.
Алгоритм решения транспортной задачи методом потенциалов.
Определение 2. Совокупность уравнений вида для всех клеток с перевозками образует систему уравнений с переменными. Такая система имеет бесконечное множество решений. Чтобы система была определенной, принято считать . Оставшиеся переменные находят из системы.
Предварительный шаг решения:
составляем опорное решение задачи одним из трех методов.
строим систему потенциалов для клеток с перевозками.
проверяем на потенциальность незаполненные клетки с помощью неравенства . Если все клетки потенциальны, то оптимальный план найден, если нет, то переходим к общему шагу и повторяем его до тех пор, пока не будет найдено оптимальное решение.
каждый раз вычисляем значение функции Z.
для всех не потенциальных клеток вычисляем разности и находим максимальную разность.
Общий шаг решения:
Улучшаем план перевозок, составляя цикл, в одной из вершин которого находится максимально не потенциальная клетка, т. е. соответствующая . Остальные вершины цикла находятся в заполненных клетках. Вершины цикла, начиная с максимально не потенциальной клетки, обозначают знаками . Рассматривают перевозки в отрицательных вершинах и находят среди них наименьшую . Далее эту минимальную перевозку перемещают по циклу, вычитая от перевозок с отрицательными вершинами и прибавляя к перевозкам с положительными вершинами.
Исправляем систему потенциалов: потенциал новой клетки оставляют без изменения, а от соответствующего потенциала вычитают . Затем исправляют систему потенциалов для клеток с положительными перевозками, для которых потенциальность нарушена.
Проверяем на потенциальность не заполненные клетки и решаем задачу дальше.
Замечание: Если задача решается на max, то система потенциалов составляется так же, а условие потенциальности незаполненных клеток имеет вид: .
Пример: Пусть каким- либо образом получен первоначальный план перевозок.
-
0
5
7
2
Запасы
0
3
5
30
7
10
11
40
-1
1
20
4
6
3
10
30
-5
5
8
12
5
7
15
20
Потребности
20
30
15
25
90
1) Составим систему потенциалов для заполненных клеток:
2) Проверим на потенциальность незаполненные клетки.
Надо из всех выбрать максимальную, но они равны. Следовательно, можно брать любое значение.
3) Составим цикл с клеткой :
-
3
5
30
7
10
11
1
2 0
4
6
3
20
5
8
12
5
7
15
4) Перемещаем отрицательную перевозку «5» по циклу, вычитая ее от клеток с отрицательными перевозками и прибавляя к клеткам с положительными перевозками.
-
2
5
7
4
0
3
5
25
7
15
11
1
1
20
4
6
3
10
-3
5
8
5
12
0
7
15
5) Меняем систему потенциалов для заполненных клеток:
6) Проверяем потенциальность незаполненных клеток:
Таким образом, все пустые клетки в полученном плане потенциальны. Следовательно, данное решение оптимальное.