- •Содержание
- •Глава 1. Постановка транспортных задач 6
- •Глава 2. Определение оптимального плана транспортных задач 28
- •Введение
- •Глава 1.Постановка транспортных задач
- •1.1.Однопродуктовая транспортная модель
- •1.2.Многопродуктовая транспортная модель
- •1.3.Модель производства с запасами
- •1.4. Методы построения опорного плана
- •1.4.1. Метод северо-западного угла
- •1.4.2.Метод минимальной стоимости
- •1.4.3.Метод двойного предпочтения
- •1.4.4.Приближенный метод Фогеля
- •Глава 2.Определение оптимального плана транспортных задач
- •2.1.Решение транспортной задачи методом моди
- •2.2.Дельта-метод решения транспортной задачи
- •2.3.Решение задач закрепления потребителей за поставщиками и клиентуры за автотранспортными предприятиями с учетом дополнительных требований
- •2.3.1.Ограничения в поставках
- •2.3.2.Несбалансированное наличие и потребности
- •2.3.3.Задача закрепления при учете взаимозаменяемости автомобилей
- •2.3.4.Задача на минимизацию времени доставки груза
- •Глава 3.Задача о назначениях
- •3.1.Постановка задачи о назначениях
- •3.2.Венгерский метод решения задачи о назначениях
- •3.3.Применение задачи о назначениях к решению экономических проблем
- •Глава 4.Оптимальное планирование грузооборота
- •4.1.Транспортная сеть и характеристика перевозимых грузов
- •Объёмы потребления грузов
- •Объёмы производства песка
- •4.2.Оптимальное планирование грузоперевозок
- •4.3.Маршрутизация перевозок грузов при помашинных отправках
- •4.4.Составление кольцевых и маятниковых маршрутов
- •Глава 5.Оптимальное планирование работы автобусного парка
- •5.1.Постановка задачи
- •5.2.Двойственная задача линейного программирования
- •5.3. Примеры формулировок двойственных задач
- •5.4. Симметричная и несимметричная двойственные пары. Основы теории двойственности
- •Основная теорема теории двойственности
- •5.5. Условия равновесия в симметричной паре. Экономическая интерпретация
- •5.6.Решение задачи оптимального планирования работы автопарка
- •Глава 6.Область применения сетевых транспортных задач
- •6.1.Примеры применения модели о кратчайшем пути
- •6.2.Алгоритмы нахождения кратчайшего пути
- •6.2.1.Алгоритм для сетей без циклов
- •6.2.2.Алгоритм для сетей с циклами
- •6.2.3.Алгоритм Флойда
- •6.3.Алгоритм нахождения максимального потока в сети
- •6.4.Представление сетевых задач как задач линейного программирования
- •Глава 7.Применение сетевых моделей в транспортировке грузов
- •7.1. Определение кратчайших расстояний между пунктами транспортной сети
- •7.2. Решение задачи коммивояжера методом "ветвей и границ"
- •7.3. Определение развозочных маршрутов для перевозки мелких партий грузов
- •7.3.1. Нахождение кратчайшей связывающей все пункты сети и набор пунктов в маршруты
- •7.3.2. Определение очередности объезда пунктов маршрута
- •Матрица кратчайших расстояний 2-го маршрута
- •7.4. Определение развозочных маршрутов для мелких партий грузов методом Кларка Райта
- •Список литературы
6.2.Алгоритмы нахождения кратчайшего пути
Здесь описаны три алгоритма нахождения кратчайшего пути – в сетях без циклов и с циклами. Первый алгоритм очень простой, но в нём представлена конструктивная идея рекурсивных вычислений. Второй алгоритм обобщает первый, однако он разработан в первую очередь для сетей, содержащих циклы. Третий алгоритм, который называется алгоритм Флойда, более общий, поскольку он позволяет одновременно найти минимальные пути между любыми двумя узлами сети.
6.2.1.Алгоритм для сетей без циклов
Сначала рассмотрим алгоритм на численном примере. Затем описанную процедуру объясним с точки зрения рекурсивных вычислений.
Пример 6.0:
Рис. 6.11. Пример сети с циклами
Рассмотрим сеть, изображённую на рис. 6.3. Узел 1 представляет начальную точку (исходный пункт), а узел 7 – конечную точку (пункт назначения). Заметим, что сеть не имеет циклов, поскольку нет ни одной цепи, связывающей узел с самим собой.
Прежде чем описать процедуру решения, введём следующие обозначения: dij – расстояние на сети между смежными узлами i и j,
uj – кратчайшее расстояние между узлами i и j, u1 = 0.
Процедура завершается, когда получено значение u7. Общая формула для вычисления uj имеет вид (6.1).
|
(6.29) |
Из этой формулы следует, что кратчайшее расстояние uj до узла j можно вычислить лишь после того, как определено кратчайшее расстояние до каждого предыдущего узла i, соединенного дугой с узлом j.
Для узла 1 можно вычислить лишь u2 и u3. (Заметим, что, хотя узел 4 соединён с узлом 1 дугой, соответствующее значение u4 вычислить нельзя, пока не будут определены u2 и u3.) Вычислительная схема состоит из следующих этапов.
Этап 1: u1 = 0.
Этап 2: u2 = u1 + d12 =0+2=2 (из 1);
u3 = u1 + d13=0+4=4 (из 1).
Этап 3: u4 =min{u1+d14, u2+d24 , u3+d34}= min{0+10, 2+11, 4+3}=7 (из 3).
Этап 4: u5=min{u2+d25 , u4+d45} =min{2+5, 7+8}=7 (из 2);
u6=min{u3+d36 , u4+d46} =min{4+1, 7+7}=5 (из 3).
Этап 5: u7=min{u5+d57 , u6+d67} =min{7+6, 5+9}=13 (из 5).
Минимальное расстояние между узлами 1 и 7 равно 13, а соответствующий маршрут 1257. Заметим также, что решение даёт кратчайшее расстояние между узлом 1 и любым из других узлов сети.
Все вычисления можно провести непосредственно на сети (рис.6.3). Величина uj для j узла вычисляется лишь после того, как получены ui для всех узлов i, предшествующих j. Таким образом, начиная с u1=0, получаем u2 =2 и u3 = 4. Далее можно вычислить u4 =7. После этого определяются u5 =7 и u6 =5. На последнем этапе получается u7 =13
Представленный выше тип вычислений интересен тем, что он имеет рекурсивный характер. Эти вычисления выполняются с использованием информации о всех кратчайших расстояниях до непосредственного предшествующего узла. Например, в узле 5 величина u5 вычисляется по кратчайшим расстояниям между узлом 1 и узлами 2 и 4, т. е. u2 и u4 .
Заметим, что не обязательно знать конкретный маршрут, дающий кратчайшее расстояние между узлами 1 и 4. Величина u4 включает всю информацию, необходимую для узла 4. Именно такая информация позволяет использовать рекурсивные вычисления. Рекурсивные вычисления представляют собой основу вычислительной схемы динамического программирования.