16
Как правило, в сети выделяют один узел, который является конечным (пункт или станция назначения, сток). Задача заключается в отыскании кратчайшего пути в этот конечный узел (на рисунке 2.1 конечным является узел с номером 8) из некоторого другого узла сети (например, из первого узла сети на рисунке 2.1). Величина сij определяет расстояние от i-го узла сети до её j-го узла.
Величина сij может измеряться в единицах, отличных от единиц длины. Так, например, сij может представлять собой стоимость проезда от i-го до j-го узла сети. Тогда задача заключается в отыскании пути минимальной стоимости. Величина сij может также определять время переезда от i-го до j-го узла сети. При этом необходимо найти путь с минимальной продолжительностью переезда.
При решении прикладных задач, сводящихся к задаче выбора кратчайшего пути, часто встречаются ситуации, когда сij ≠ сji. Кроме того, как правило, не выполняется так называемое неравенство треугольника: сij ≤ сik + сkj для всех или некоторых значений индексов i, j, k.
Существуют сети, содержащие циклы, каждый из которых представляет собой замкнутый путь (путь, исходящий из некоторого узла сети и возвращающийся в него же). Так, в сети представленной на рисунке 2.1, много циклов, один из них содержит узлы с номерами 2, 3, 5, 6 и 7. Как правило, в задачах исследования операций значения сij положительны и общая длина цикла является положительной. Следовательно, решение задачи выбора кратчайшего пути не может содержать циклов.
Предположим, что для сети, представленной на рисунке 2.1, необходимо найти кратчайший путь от узла с номером 1 (источник) до узла с номером 8 (сток). Установим связь этой задачи с классической транспортной задачей.
Пример 2.1. Рассмотрим транспортную задачу с промежуточными пунктами, сеть которой представлена на рисунок 2.1. При этом предположим, что в узле с номером 1 имеется избыточная единица товара; в узле с номером 8 имеется недостаток единицы товара; узлы с номерами 2–7 являются промежуточными пунктами с нулевыми чистыми запасами (потребность в дополнительных поставках товара равна нулю). Необходимо разработать план перевозок товара между узлами сети (складами), который при минимальных транспортных затратах позволит на каждом складе поддерживать нулевой чистый запас товара.
17
Считаем, что каждой ориентированной дуге сети соответствует переменная модели хij, представляющая собой количество товара, которое должно быть отправлено с i-го склада на j-ый. Для каждого k-го промежуточного пункта вводим переменную хkk с соответствующим ему коэффициентом хkk∙сkk = 0 целевой функции, а величину чистого запаса обозначаем через Тk. Если множество пар индексов (i, j), соответствующих ориентированным дугам сети, представленной на рисунке 2.1, обозначить через J, то рассматриваемую задачу можно записать следующим образом /1, 2/
cijxij min, |
(2.1) |
i, j J |
|
при ограничениях
xkj xik Tk , |
|
|
i, j J |
i, j J |
|
T1 1; T8 |
1; Tk 0; k 2, , 7; |
(2.2) |
xij 0, i, j J. |
|
|
Сформулированная выше задача о нахождении кратчайшего пути эквивалентна классической транспортной задаче.
2.2. Решение задачи о нахождении кратчайшего пути в Excel
Рассмотрим методику решения в Excel задачи о нахождении кратчайшего пути.
Задача выбора кратчайшего пути задана сетью, изображенной на рисунке 4.10. Найдите кратчайший путь от узла с номером 1 до узла с номером 8,
если |
|
с12 = 1 км, |
с13 = 4 км, |
с14 = 6 км, с23 = 3 км, |
с26 = 5 км, |
с27 |
= 1 км, |
|||
с34 |
= 3 |
км, |
с35 = 5 км, с45 = |
1 |
км, с48 = 4 км, с54 = 1 км, |
с56 = l км, |
с58 |
= 2 км, |
||
с65 |
= |
1 |
км, |
с67 = 3 |
км, с68 = 4 |
км, с72 = 1 км, с76 = 3 км, с78 = 7 км. |
|
|
||
На рисунке 2.2 представлена Таблица кратчайших расстояний и схема определения кратчайшего пути, сформированные на рабочем листе Excel. В Таблице кратчайших расстояний мы видим, что если между отдельными складами отсутствует возможность перевозки товара, то в соответствующие ячейки таблицы заносится любое большое число (в данном случае 1000).
18
Формируем колонку «От-в» начиная с А16, с которую заносим в текстовом формате все возможные направления движения по дугам сети. В колонке справа «Поток» находятся ячейки, которые соответствуют количеству перевозимого по дуге груза, то есть значения в этих ячейках (в данной задаче 0 или 1) будут определять, входит дуга в кратчайший путь или нет. В следующей колонке «Вершина» записываются номера всех вершин сети. В колонке справа «Поток» определяется поток через вершину, который должен быть равен значению в колонке «Спрос». Содержимое колонки спрос определяет, между какими вершинами необходимо определить кратчайшее расстояние. Если значение равно 1, то вершина является истоком, а если -1 – стоком (пунктом назначения). В следующих колонках «От» и «В» раздельно записываются номера вершин из колонки «От-в». В колонку расстояние необходимо перенести расстояния между вершинами из Таблицы кратчайших расстояний. Это делается автоматически с помощью функции /1, 2/
=ИНДЕКС($B$4:$I$11;$F$16:$F$71;$G$16:$G$71) (2.3)
19
Рис. 2.2 – Нахождение кратчайшего пути в Excel
В этой функции первый диапазон ячеек указывает те ячейки, содержимое которых необходимо перенести в столбец; второй диапазон ячеек содер-
20
жит номера строк переносимого диапазона; третий диапазон ячеек содержит номера столбцов переносимого диапазона.
В ячейку D16 столбца «Поток» заносится формула /2/
=СУММЕСЛИ($F$16:$F$71;$C16;$B$16:$B$71)- |
(2.4) |
-СУММЕСЛИ($G$16:$G$71;$C16;$B$16:$B$71)
Эта формула служит для расчета величины чистого потока через вершину. Она суммирует и вычитает между собой значения ячеек столбца В «Поток», если значения ячеек в столбцах F «От» и G «В» совпадают со значениями столбца С «Вершина».
В целевую ячейку, в данном случае С 14, необходимо занести формулу /2/
СУММПРОИЗВ(H16:H71;B16:B71) |
(2.5) |
Используя меню Сервис Поиск решения, открываем диалоговое окно Поиск решения (рис. 2.2), в котором устанавливаем целевую ячейку равной минимальному значению, определяем диапазон изменяемых ячеек и ограничения
изапускаем процедуру вычисления, щелкнув по кнопке Выполнить.
Врезультате кратчайший путь между парой вершин 1–8 пройдет через вершины 1–2–7–6–5–8 и составляет 8 км.
2.3. Содержание отчета по практической работе № 2
В отчете представить математическую модель, транспортную сеть согласно индивидуальному заданию (вместо букв на сети проставить числами номера вершин и вес дуг), таблицы Excel с решением задачи и записать полученные кратчайшие пути по вершинам, а также показать их на сети стрелками (сплошными, пунктирными и штрихпунктирными).