- •Раздел 3. Специальные методы решения транспортной задачи
- •3.1 Постановка транспортной задачи и построение математической модели
- •3.2 Открытая и закрытая модели транспортной задачи (тз)
- •3.3 Необходимость специальных методов для решения тз.
- •Практическая задача
- •Нахождение опорного и оптимального плана в тт. Количество переменных в тт и их характеристика.
- •3.5 Методы нахождения опорного плана (первоначального, допустимого, базисного)
- •3.5.1 Метод северо-западного угла
- •3.5.2 Метод минимального элемента (тарифа)
- •3.5.3 Метод двойного предпочтения (минимальных затрат, минимального тарифа с двойным предпочтением)
- •3.6 Вырожденность плана тз
- •3.7 Нахождение оптимального плана тз (оптимального решения)
- •3.7.1 Цикл пересчета тт для нахождения оптимального плана
- •3.7.2 Распределительный метод нахождения оптимального плана тз
- •Практическое решение задач распределительным методом
- •Решение открытых тз
- •Практическое решение открытых тз
- •Метод потенциалов для нахождения оптимального решения тз (метод потенциалов)
- •Экономическая интерпретация. Понятие платежей и псевдостоимостей
- •Особые случаи при решении тз
- •Неединственность решения тз
- •Раздел 4. Графовые модели. Алгоритмы на графах
- •4.1 Теория графов и ее применение
- •4.2 Основные определения графов
- •4.3 Типы графов
- •4.4 Маршруты и связность
- •4.5 Деревья
- •4.6 Сети
- •4.7 Математическое представление графов. (Методы хранения графов в памяти пк)
- •4.8 Нахождение кратчайших путей в графе
3.7 Нахождение оптимального плана тз (оптимального решения)
Известны два наиболее популярных метода решения ТЗ:
- распределительный метод;
- метод потенциалов.
Прежде, чем перейти к рассмотрению этих методов дадим некоторые понятия и определения, общие для этих методов.
3.7.1 Цикл пересчета тт для нахождения оптимального плана
bj ai |
b
+ |
b
+ |
b3 |
b4 |
b5 |
b6 |
a1 |
C 11 |
C 12 |
C
+ |
C14 |
C
- |
C16 |
a2 |
C
- |
C
+ |
C 23 |
C24 |
C 25 |
C26 |
a3 |
C31 |
C32 |
C33 |
C
+ |
C
+ |
C
- |
a4 |
C41 |
C42 |
C43 |
C
- |
C45 |
C
+ |
a5 |
C51 |
C52 |
C
- |
C54 |
C55 |
C56 |
Рисунок 1
Циклом пересчета ТТ будем называть ломанную замкнутую линию с вершинами в клетках и звеньями, которые в каждой клетке совершает поворот на 90 градусов, двигаясь вдоль строк и столбцов таблицы и удовлетворяют следующим условиям:
- ломанная должна быть связной, т.е. из любой её вершины можно попасть в другую вершину по звеньям ломанной;
- в каждой вершине встречаются два звена, одно располагается по строке, другое по столбцу.
На рисунке 1 изображены два цикла:
- первый содержит четыре вершины и является самым простым
- второй сложный и имеет восемь вершин.
Число вершин в цикле всегда четное, обычно это 4,6, или 8 вершин; направление хода пересчета принято производить по часовой стрелке.
Цикл пересчета составляется по базисным клеткам (по заполненным), но одна из вершин цикла лежит в свободной клетке, для которой собственно и делается пересчёт.
Цикл пересчета называется означенным, если в его вершинах расставлены «+» и «-» так, что в свободной клетке, для которой делается пересчет, ставится «+», а соседние вершины имеют противоположные знаки.
Перевезти какое – то количество груза по циклу (пересчитать цикл), значит увеличить поставки, стоящие в «+» вершинах, а в «-» вершинах уменьшить на это же количество. При таком пересчете равновесие между поставками и заявками не изменится, опорный план останется опорным (допустимым), но он корректируется и при каждом пересчете приближается к оптимальному, т.е. общая стоимость перевозок после каждого пересчета должна уменьшаться.
Опорным планом является любой допустимый план задачи, состоящий из базисного распределения поставок; таким образом, мы будем переходить от одного базисного решения к другому, приближаясь к оптимальному решению, что аналогично решению по симплексному методу.
Существует теорема: для каждой свободной клетки базисного распределения поставок существует и притом единственный, цикл пересчета, причем операция означивания цикла является корректной.
Ценой цикла является алгебраическая сумма тарифов, стоящих в вершинах, причем тарифы в «+» вершинах считаются со знаком «+», а в «-»вершинах со знаком «-».
На рисунке 1 для первого простого цикла его цена:
Для второго сложного цикла:
При перемещении одной единицы груза по циклу стоимость перевозки увеличивается или уменьшается на величину (на цену). При перемещении к единиц груза стоимость перевозок увеличивается или уменьшается на величину .
Для улучшения плана ТЗ имеет смысл перемещать поставки только по тем циклам, цена в которых отрицательна, т.к. в этом случае <0, и соответственно <0, и общая стоимость перевозок уменьшится на величину .
Выводы: (они относятся к п.3.7.2)
Будем строить циклы только для тех свободных клеток, цена которых отрицательна, причем все вершины цикла будут лежать в базисных клетках, кроме одной положительной вершины, которая находится в свободной клетке и для которой делается пересчет.
При пересчете цикла одну свободную переменную заменяют на базисную, т.е. заполняют одну свободную клетку и освобождают одну из базисных, причем число базисных клеток всегда должно быть равно m+n-1.
Критерием оптимальности ТЗ является неотрицательность цен для всех циклов свободных клеток. Если же цена свободной клетки отрицательна, то план можно улучшить, перемещая k единиц груза по циклу, составленному для данной свободной клетки.
Количество k перевозимого груза определяется как минимальное значение из значений, стоящих в отрицательных вершинах.