УДК 656.135.073
К. С. Подшивалова, Э. Р. Домке, С. Ф. Подшивалов, С. А. Жесткова
ИСПОЛЬЗОВАНИЕ ФИКТИВНЫХ УЗЛОВ ДЛЯ ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНОЙ КОМБИНАЦИИ МАРШРУТОВ С СОВМЕСТНЫМ ЦЕНТРОМ
Аннотация. Предложено совершенствование метода ветвей и границ, позволяющее посещать вершины графа несколько раз. Представлено решение задачи маршрутизации для комбинации маршрутов с симметричной матрицей весов, выходящих из одного центра.
Ключевые слова: алгоритм, граф, симметричная матрица, методика расчета, комбинации маршрутов.
Abstract. The authors offer a technique of branches and borders method improvement, allowing to reach graph’s apexes several times. The article introduces a solution of routing problem for a combination of routes with a symmetric matrix of weights drifting from the same center.
Key words: algorithm, graph, symmetric matrix, calculation method, combination of routes.
Введение
Задача поиска оптимальных маршрутов на взвешенном графе имеет самый общий характер. Она появляется там, где существует возможность выбора той или иной последовательности наступления рассматриваемых событий. На практике выбор оптимального маршрута при решении задачи коммивояжера подразумевает однократное появление каждого события. В настоящее время для его поиска предложено несколько алгоритмов расчета: эвристические и Монте-Карло, линейного и динамического программирования, метод ветвей и границ.
Наиболее сложные и интересные задачи стоят перед исследователями в областях, где события могут накладываться друг на друга, повторяться и связаны с поиском оптимальной комбинации одновременно нескольких маршрутов на графе.
1. Постановка задачи
В классической задаче коммивояжера необходимо посетить все вершины графа один раз так, чтобы вес маршрута был наименьший. Возможны два варианта постановки задачи. В первом варианте начальные и конечные вершины маршрута совпадают. Во втором случае они разные. Когда маршрут начинается и заканчивается в одном и том же пункте, решение сводится к поиску замкнутого гамильтонового контура. В незамкнутой задаче коммивояжера, когда не требуется возвращаться к исходной вершине, находится гамильтонов путь. При помощи изменения некоторых весов дуг ее также можно свести к общей первоначальной постановке [1]. Подчеркнем, что в обоих вариантах задачи рассматривается только один маршрут, проходящий по всем вершинам графа. Определение гамильтонового контура относится к трудно разрешимой задаче дискретной математики, которая для полного графа может и не иметь решения. В настоящее время этот вопрос остается открытым.
Следует отметить, что гамильтонов контур не всегда является кратчайшим маршрутом. Поясним это на примере графа (рис. 1,а).
а) б)
Рис. 1. Граф оптимального маршрута
Требуется найти оптимальный маршрут из пункта 1 через все узлы графа и вернуться в исходную вершину 1. Как следует из анализа вариантов передвижения, он проходит через вершины 1—2—3 —2—4—1, длиной 11 единиц (рис. 1,б). При этом узел 2 посещается два раза. Длина гамильтонового замкнутого контура составляет 18 единиц.
Сложной и интересной оптимизационной задачей представляется вариант, когда из исходного пункта выходят одновременно несколько маршрутов. Примером может служить проектирование электрических, тепловых, транспортных и других коммуникационных систем.
Первой особенностью их расчета является то, что ветви графа могут посещаться несколько раз. Вторая особенность - это возможность пересечения маршрутов в его узлах. Существующие методы расчета не учитывают эти обстоятельства.
В общем случае по принципу организации движения на графе могут быть два вида маршрутов: замкнутый и разомкнутый, т.е. когда начальный и конечный пункты маршрута находятся в одной вершине и когда они не совпадают, соответственно.
В данной статье предлагается метод расчета, позволяющий находить оптимальную комбинацию для нескольких маршрутов, выходящих из одного общего центра, при симметричной матрице весов.
2. Модель расчета
Задан неполный конечный взвешенный граф. Все элементы исходной матрицы весов положительные. Известно количество замкнутых p и разомкнутых q маршрутов, а также место нахождения их общего центра. Для разомкнутых схем движения указано расположение конечных пунктов. Заданы контрольные вершины, через которые пройдут замкнутые маршруты. Требуется организовать все маршруты одновременно таким образом, чтобы суммарный вес был минимальным.
Для разделения графа на маршруты вводим дополнительно фиктивные узлы в исходную матрицу весов. Фиктивным будем называть узел, дублирующий действительную вершину исходного графа. Фиктивной дугой называется дополнительная хорда между вершинами, которой не было в исходном графе. Фиктивной ветвью называется дуга с фиктивным узлом.
Теорема. Фиктивный узел делит оптимальный замкнутый маршрут с симметричной матрицей весов на пару незамкнутых маршрутов равного суммарного веса.
Для доказательства теоремы используем метод от противного. Пусть существует оптимальный замкнутый маршрут из пункта Ц через контрольную вершину К (рис. 2,а). По нему можно передвигаться в обоих направлениях.
Вводим в контрольную вершину фиктивный узел КФ. Связываем его со смежными действительными узлами фиктивными дугами с весами а и б, как и в пункте К (рис. 2,б). На рис. 2,б они изображены штриховыми линиями. Получаем пару разомкнутых маршрутов из исходного центрального пункта Ц в конечные вершины К и КФ. Предположим, что существуют другие схемы передвижения между указанными вершинами, суммарный наименьший вес которых будет отличаться от такового в замкнутом маршруте. Тогда, соединив действительную К и фиктивную КФ вершины дугой весом, равным нулю, получим новый оптимальный замкнутый маршрут из исходного пункта Ц через контрольный узел К, отличающийся от представленного на рис. 2,в. Однако это противоречит постановке задачи. Теорема доказана.
В соответствии с доказанной теоремой аналогично вводим фиктивный узел ЦФ в начальный узел передвижения Ц (рис. 3).
Рис. 3. Схема ввода фиктивных ветвей в замкнутый маршрут
Чтобы получить замкнутый контур, соединяем обозначенные узлы ориентированными фиктивными дугами К-ЦФ и КФ-Ц.
В отличие от рассмотренной выше схемы движения, разомкнутый маршрут не содержит фиктивных узлов.
При комбинации схем передвижения, выходящих или входящих в совместный центр, необходимо в рассматриваемой модели обеспечить общий замкнутый контур. Для этого в исходную матрицу весов потребуется ввести внешние фиктивные узлы: в центральную вершину (2р + д -1) штук и по одному в контрольные пункты. В итоге получаем замкнутую матрицу весов:
1
2
3
1з = 4
і
І*
1 2 3 4 і І
а12 а13 а14 а1
а23 а 24 а
а34 а
а44
а
В качестве примера на рис. 4 показана схема их расположения для двух замкнутых и одного разомкнутого маршрутов с общим центром Ц. Здесь два первых из них проходят через вершины К2 и К3. Разомкнутый маршрут следует через пункт К1. Отметим, что ориентированные фиктивные дуги направлены к исходной вершине. Однако решение задачи не изменится, если их направить в обратную сторону, так как матрица весов симметричная. Здесь фиктивные дуги и вершины изображены штриховыми линиями.
Рис. 4. Схема расположения ориентированных фиктивных ветвей
В замкнутой матрице вес ориентированных фиктивных дуг принят равным ^, чтобы они не влияли на преобразования матрицы. Поиск решения в ней начинаем с операции приведения по методу ветвей и границ [2] . Для этого в каждой строке находим минимальный элемент И и вычитаем его из
всех остальных элементов а■■, расположенных в рассматриваемой строке:
и
Затем в полученной матрице находим минимальный элемент в каждом
столбце h j и вычитаем его из всех остальных элементов aij, расположенных J U
в рассматриваемом столбце:
aj = aij - hj, j = 1,2,3,..., m. (2)
В результате такой операции приведенная матрица Хпр будет содержать в каждом столбце и строке по крайней мере один ноль.
Далее авторы предлагают сначала вычеркнуть в ней фиктивные ориентированные ветви, так как они должны быть включены в маршрут в первую очередь, обеспечивая тем самым приоритет движения между заданными вершинами и центром. Отметим, что при удалении ячейки номер строки, на которой она находится, означает название вершины, от которой идет движение по ветви. В итоге проведенных преобразований получаем модифицированную матрицу L1. Далее необходимо повторить операцию приведения для строк и столбцов, где не будет нулевых ячеек.
Рассмотрим вопрос о выборе дуги, которую необходимо включить
в маршрут при решении матрицы L1. Для этого используем способ оценки ее
элементов, разработанный в [2]. Создаем оценочную матрицу L . Определяем для каждого элемента с aj = 0 оценку по формуле
и
A = min aJk + min a"sj, k Ф j, s Ф i, k, s = 1,2,3,..., n, (3)
где a"k - наименьший элемент в строке i; a'j - наименьший элемент
в столбце j .
Находим пару ks с максимальной оценкой
Aks = max Aij, i, j = 1, 2,3,..., n. (4)
Вычеркиваем из оценочной матрицы L строку k и столбец s с наибольшей оценкой. Переходим к новой действительной матрице Lks . В ней блокируем ячейку на пересечении строки s и столбца k, ask = ^ . Кроме того, необходимо также заблокировать ветвь aiJ- = ^ , ведущую к зацикливанию цепи со звеном ks. В результате размер матрицы уменьшается. Теперь можно опять выполнить над Lks операции приведения и оценки. Они продолжаются до тех пор, пока последняя вычеркиваемая ветвь не станет очевидной. Следует отметить, что такой подход пригоден для задачи, имеющей гамильтоновый контур. При его отсутствии решения не будет, так как всегда найдется зависшая вершина, у которой будут вычеркнуты все входящие в нее дуги. Более того, как было показано в примере на рис. 1, даже при наличии гамильтоно-вого контура маршрут по нему не всегда является оптимальным. В силу вышеперечисленного для поиска маршрута с наименьшим весом требуется обеспечить посещение вершин графа несколько раз. Однако по методу ветвей и границ этого сделать нельзя.
Для устранения указанного недостатка предлагается использовать узлы вычеркиваемой ветви несколько раз в процессе преобразования матрицы весов [3]. Их будем называть фиктивными расчетными узлами. Принципиальная схема их ввода для повторного посещения вершин представлена на рис. 5. С этой целью создаем первую расчетную фиктивную матрицу Фк путем введения в Ьь строки и столбца с вычеркнутым узлом к . Если столбца с номером вершины к нет в матрице Ьь, то Фк не создается. Аналогично формируем вторую фиктивную матрицу Ф5, чтобы зарезервировать для посещения еще раз вершину 5.
Вводим в Ьь строку и столбец с вычеркнутым узлом 5. Матрица Ф5 не создается, если в Ьь отсутствует строка с номером вершины 5. Далее их расчет повторяем как для обычной действительной матрицы. Над ними выполняются операции приведения и оценки, а также могут вводиться новые расчетные фиктивные узлы. Общее их количество в действительном узле не превышает количество входящих туда дуг минус единица. Оптимальный маршрут находится путем сравнения всех вариантов. Предложенный метод расчета с использованием фиктивных узлов позволяет усовершенствовать классический метод ветвей и границ и посещать ветви и вершины графа несколько раз.
3. Определение оптимальной комбинации транспортных маршрутов
Рассмотрим мелкопартионную перевозку грузов от одного грузоотправителя, которая часто встречается на практике. Представим граф транспортной сети, состоящий из восьми вершин (рис. 6).
Требуется доставить груз из центра № 1 по двум маршрутам одновременно. Первый из них проходит через вершину № 5 и является разомкнутым. Обратно автомобиль совершает холостой пробег. Вторая схема движения должна проходить через контрольный узел № 8 и представляет собой замкнутый маршрут. Требуется определить оптимальную комбинацию маршрутов. В соответствии с разработанным методом расчета решение задачи будет состоять их семи этапов.
Первый этап. Составляем замкнутую матрицу 1з (табл. 1).
Таблица 1
Замкнутая матрица I?
1 2 3 4 5 6 7 8 8ф 9ф 10ф
1 3 2 1
2 3 1 5 6 3 3
3 2 1 2 3 5 5 2 2
4 1 2 4 7 1 1
5 5 3 8 6 6
6 6 5 4 8 6 3 3
7 5 7 6 4 4
8 6 3 4
8ф 6 3 4
9ф 3 2 1
10ф 3 2 1
Второй этап. Создаем по формулам (1), (2) матрицу 1пр (табл. 2).
Таблица 2
Приведенная матрица 1пр
1 2 3 4 5 6 7 8 8ф 9ф 10ф
1 2 1 0
2 2 0 2 5 2 2
3 1 0 1 0 4 3 1 1
4 0 1 3 5 0 0
5 2 0 5 3 3
6 3 2 1 3 2 0 0
7 1 3 2 0 0
8 1 0 0
8ф 1 0 0
9ф 2 1 0
10ф 2 1 0
Третий этап. Переходим к модифицированной матрице Xм (табл. 3).
Таблица 3
Модифицированная матрица Iм
2 3 4 5 6 7 8 8ф
1 2 1 0
2 0 2 5
3 0 1 0 4 3
4 1 3 5
6 3 2 1 3 2 0 0
7 1 3 2 0 0
9ф 2 1 0
10ф 2 1 0
Четвертый этап. Находим новую приведенную матрицу (табл. 4).
Таблица 4
Приведенная матрица
2 3 4 5 6 7 8 8ф
1 2 1 0
2 0 2 1
3 0 1 0 2 1
4 0 0 2
6 3 2 1 3 0 0 0
7 1 3 0 0 0
9ф 2 1 0
10ф 2 1 0
Пятый этап. По формулам (3), (4) создаем оценочную матрицу (табл. 5).
Таблица 5
Оценочная матрица 1о
2 3 4 5 6 7 8 8ф
1 2 1 01
2 01 2 1
3 02 1 02 2 1
4 00 00 2
6 3 2 1 3 01 00 00
7 1 3 00 00 00
9ф 2 1 01
10ф 2 1 01
Шестой этап. Создаем новую матрицу меньшего размера 1к (табл. 6).
Таблица 6
Новая матрица 1к
3 4 5 6 7 8 8ф
1 1 0
2 2 1
4 0 0 2
6 2 1 3 0 0 0
7 1 3 0 0 0
9ф 1 0
10ф 1 0
Седьмой этап. Создаем фиктивные матрицы Фк (табл. 7) и Ф5 (табл. 8).
Таблица 7
Фиктивная матрица Фк=3
3 4 5 6 7 8 8ф Фз
1 1 0 1
2 2 1 0
4 0 0 2 0
6 2 1 3 0 0 0 2
7 1 3 0 0 0 1
9ф 1 0 1
10ф 1 0 1
Фз 1 0 2 1
Фиктивная матрица Ф5=2 Таблица 8
3 4 5 6 7 8 8ф Ф2
1 1 0 2
2 2 1
4 0 0 2
6 2 1 3 0 0 0 3
7 1 3 0 0 0
9ф 1 0 2
10ф 1 0 2
Ф2 0 2 1
Далее процесс решения повторяется по этапам 2 и 5-7 до тех пор, пока последняя вычеркиваемая ветвь не станет очевидной в матрице размером 2^2.
Поиск оптимальной комбинации маршрута производится по специально разработанной программе на ПК, позволяющей вводить фиктивные узлы автоматически или оператором. Для решения используется метод рекурсии.
В результате решения задачи находим разомкнутый маршрут 1-3-5 длиной 5 единиц (рис. 7). Замкнутая схема передвижения проходит через вершины 1-2-3-7-8-6-4-1 - длина 21 единица. При этом по ней можно ехать в обоих направлениях. Возможна и другая их оптимальная комбинация: 1-2-3-5 -длина 7 единиц, и 1-3-7-8-6-4-1 - длина 19 единиц. Следует отметить, что вершина 3 графа посещается два раза.
Заключение
Предложенная модель позволяет проектировать маршруты доставки мелкопартионных грузов. На основании ее разработан алгоритм динамического построения и перестроения графика маршрутов автомобильных перевозок.
Отметим, что применение разработанного метода расчета возможно и в других предметных областях, где процесс наступления событий имеет такой же структурный характер.
Список литературы
1. Мудров, В. И. Задача о коммивояжере / В. И. Мудров. - М. : Знание, 1969. -61 с.
2. Литл, Дж. Алгоритм для решения задачи о коммивояжере / Дж. Литл, К. Мур-ти, Д. Суини, К. Карел // Экономика и математические методы. - М., 1965. -Т. 1. - Вып. 1. - С. 94-107.
3. Подшивалова, К. С. Определение оптимального пути при доставке мелкопартионных грузов от двух производителей / К. С. Подшивалова, С. Ф. Подшива-лов // Проблемы автомобильно-дорожного комплекса России : материалы V Международной научно-технической конференции (ПГУАС, май 2008) : в 2 ч. - Пенза, 2008. - Ч. 1. - С. 158-161.
Подшивалова Кристина Сергеевна кандидат технических наук, доцент, кафедра организации и безопасности движения, Пензенский государственный университет архитектуры и строительства
E-mail: [email protected]
Домке Эдуард Райнгольдович
кандидат технических наук, профессор, заведующий кафедрой организации и безопасности движения, Пензенский государственный университет архитектуры и строительства
E-mail: [email protected]
Подшивалов Сергей Федорович кандидат технических наук, доцент, кафедра сопротивления материалов и теория упругости, Пензенский государственный университет архитектуры и строительства
E-mail: [email protected]
Жесткова Светлана Анатольевна
аспирант, Пензенский государственный университет архитектуры и строительства
E-mail: [email protected]
Podshivalova Kristina Sergeevna Candidate of engineering sciences, associate professor, sub-department of traffic organization and safety, Penza State University of Architecture and Construction
Domke Eduard Raingoldovich
Candidate of engineering sciences, professor, head of sub-department of traffic organization and safety, Penza State University ofArchitecture and Construction
Podshivalov Sergey Fyodorovich Candidate of engineering sciences, associate professor, sub-department of elastic theory and strength of materials, Penza State University of Architecture and Construction
Zhestkova Svetlana Anatolyevna Postgraduate student, Penza State University of Architecture and Construction
УДК б5б.І35.073 Подшивалова, К. С.
Использование фиктивных узлов для определения оптимальной комбинации маршрутов с совместным центром I К. С. Подшивалова,
Э. Р. Домке, С. Ф. Подшивалов, С. А. Жесткова II Известия высших учебных заведений. Поволжский регион. Технические науки. - 20ІІ. - № 2 (І8). -С. 8І-9І.