МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ, ЧИСЛЕННЫЕ МЕТОДЫ И КОМПЛЕКСЫ ПРОГРАММ
УДК 519.7+681.3
И. Б. МОРГУНОВ
РАЗРАБОТКА МАТЕМАТИЧЕСКОЙ МОДЕЛИ ВЫБОРА ОПТИМАЛЬНОГО МАРШРУТА
Рассматривается математическая модель выбора оптимального маршрута между различными объектами, фиксированными как вершины ориентированного графа. Вводится понятие матрицы смежности графа. Приводится алгоритм нахождения оптимального решения. Приводится новая формула разложения факториала. Математическая модель; оптимальный маршрут; задача коммивояжера
Основой многих задач упорядочения является выбор оптимального маршрута, или задача отыскания оптимальных гамильтоновых контуров направленного графа (задача коммивояжера) [1].
Эта задача состоит в том, чтобы на графе найти циклический маршрут, который один раз проходит через каждую вершину, кроме фиксированной начальной вершины, а суммарное значение весов входящих в него дуг графа минимально (максимально).
Веса дуг графа будем задавать его матрицей смежности порядка .
А =
(1)
где ац > 0 вес (расстояние) между вершинами графа * и *, _] = 1, N.
Весу элемента а,ц приписывается достаточно большое число. Если вершины графа рассматривать как пункты, веса дуг между ними — как расстояния, то задача коммивояжера формулируется так: найти циклический маршрут (гамильтонов контур) графа, проходящий по одному разу через каждый пункт, кроме начального пункта, чтобы путь, пройденный коммивояжером, был минимальным. Разработаны итерационные методы поиска оптимальных решений задачи коммивояжера. Основные алгоритмы итерационного поиска оптимальных решений представлены в работе [2].
Произвольный циклический маршрут будем обозначать вектор-строкой .
(2)
Среди всех циклических маршрутов выделим маршрут, который совпадает с порядком строк и столбцов матрицы А.
Этот циклический маршрут назовем расчетным маршрутом, соответствующим порядку строк и столбцов матрицы А(1). Расчетный маршрут обозначен вектором ПР.
Элементы матрицы А(1), которые соответствуют дугам расчетного маршрута, имеют вид:
°'М+1 ;
(3)
где * = 1, N. Если * = Ж, то полагаем * + 1 = 1.
В связи с тем, что длина циклических маршрутов будет определяться по различным матрицам, будем добавлять обозначение соответствующей матрицы к символам или .
Длина произвольного циклического маршрута по матрице А обозначается (ЬПА), расчетного маршрута — (ЬПРА).
Введем функцию:
1, если в циклическом маршруте вершина і непосредственно предшествует вершине 0, в противном случае .
(4)
Длина произвольного циклического маршрута имеет вид:
N N
ЦПА) = ^2^2 Хц * Оу • (5)
.7=1 г=1
Длина расчетного маршрута:
N
Ь(ІІРА) = ^ (I;.; . | .
(6)
г=1
Контактная информация: [email protected]
Это сумма наддиагональных элементов матрицы.
Рассмотрим общую схему поиска оптимальных гамильтоновых контуров. Пусть А — матрица смежности графа порядка п. Известно [1], что элементы матрицы D = А, к < п, показывают число различных путей длины £;, существующих между * и ] вершинами графа (*, _] = 1. п). В общем случае это задача пересчета всех таких путей [1]. Представляет интерес их прямое перечисление.
Методы перечисления всех путей в графе, в том числе и всех контуров графа, подробно рассмотрены в работе [1].
В нашем случае интересно перечисление всех полных гамильтоновых контуров графа. С этой целью используем метод латинской последовательности или латинской композиции дуг графа, который подробно представлен в работе [1].
Применение метода рассмотрим на примерах. Для матрицы В порядка п = 3 в клетках записываются номера начальной и конечной вершины дуги. Это пути длины 1. Дополнительно формируется матрица В’. В ее клетках остается запись только конечных вершин дуг длины 1. Пример записи матриц В и В’ для приведен ниже.
1 2 3
1 1,1 1,2 1,3
В = 2 2,1 2,2 2,3
3 3,1 3,2 3,3
1 2 3
1 1 2 3
В' = 2 1 2 3
3 1 2 3
1 2 3
1,1,1 1,1,2 1,1,3
1 1,2,1 1,2,2 1,2,3
1,3,1 1,3,2 1,3,3
2 г 0 2,1,1 2,1,2 2,1,3
В=ВВ В2= 2 2,2,1 2,2,2 2,2,3
2,3,1 2,3,2 2,3,3
3,1,1 3,1,2 3,1,3
3 3,2,1 3,2,2 3,2,3
3,3,1 3,3,2 3,3,3
Последовательно получаем композицию матриц В = В • В’ и т. д.
Поиск полного гамильтонового контура исключает поиск замкнутых контуров меньшей длины. Поэтому исключаются все диагональные элементы матриц В и В’.
Значение элемента матрицы, равное 0, для исходной или преобразованной матрицы А обозначало число — вес связи дуги. Значение элемента матриц В, В’, равное 0, обозначает отсутствие или разрыв связи для соответствующих дуг. Поэтому ниже в матрицах В и В’ на главной диагонали стоят нули.
1 2 3
1 0 1,2 1,3
В = 2 2,1 0 2,3
3 3,1 3,2 0
1 2 3
1 0 2 3
ГО > II 2 1 0 3
3 1 2 0
Композиция матриц В • В’ дает матрицу В2 = В • В’ для путей длины 2:
Поскольку полный гамильтонов контур проходит через все вершины, то достаточно рассматривать одну любую вершину, например, 1.
Последовательно определяя матрицы В и В, имеем:
В2 = ВВ = 1
В'=2
0 0 3
1 0 0
0 2 0
1
В3 = В2*В= 1
1.3.2.1
1.2.3.1
Рис. 1
Возникает вопрос — сколько полных гамильтоновых контуров существует вне исходного расчетного гамильтонового контура? Как известно, через одну вершину графа, имеющего п вершин, проходит (п — 1)! гамильтонов контур. При п = 3 имеем 2! = 2. Один контур — исходный-расчетный. Следовательно, вне расчетного контура существует еще один контур длины 3.
Каким приемом можно вычислить гамильтонов контур, не содержащий ни одной дуги расчетного контура? Другими словами, мы должны удалить или разорвать при вычислениях все дуги расчетного контура.
Матрицы В и В’ имеют вид:
1 2 3
1 0 0 1,3
В = 2 2,1 0 0
3 0 3,2 0
При имеем .
В матрице В подчеркнуты дуги, которые входят в исходную расчетную последовательность.
Все 6 контуров распределяются следующим образом. Один контур — исходный-расчетный. Один контур не имеет ни одной дуги расчетного контура — это контур 1, 4, 3, 2,1. Четыре контура имеют по одной дуге расчетного контура и по 3 дуги вне расчетного контура, рис. 2:
1
4 3 х
в4 = В -В = 1
а
1
1,4,3,2,1 1,3,2,41
1,34,2,1 1,2,3,4,1
1,4,23,1
12,4,3,1,
б
1
3
1
3
1
1
1
2
2
2
2
1
а
Рис. 2
В итоге получаем
п = 3: 2! = 1 + 1 = 1 + А3 : А3 = 1. п = 4; 3! = 1 + 4 + 1 = 1 + С'| + 1 =
= 1 + С'1 + А4 ; А4 = 1.
Далее представлены результаты вычислений для п = 5.
В = 1
1
2
В' = 3
4
5
4
0 0 1,3 1,4 1,5
1 2 3 4 5
0 0 3 4 5
1 0 0 4 5
1 2 0 0 5
1 2 3 0 0
0 2 3 4 0
5 4 ^
В5 = В-В = 1
1
1.5.4.3.2.1
1.3.5.4.2.1
1.5.2.4.3.1
1.4.2.5.3.1
1.5.3.2.4.1
1.3.5.2.4.1
1.3.2.5.4.1
1.4.3.5.2.1
Рис. 3
Это результат расчета с использованием матриц. Непосредственный подсчет дает тот же результат:
24 = 1
сг
Ал
Ап — 8.
Обозначим в общем случае через А„ — число полных гамильтоновых контуров в графе с п — вершинами, которые не имеют ни одной дуги исходного расчетного гамильтоно-вого контура. Получаем формулу разложения факториала (п — 1)!:
Все контуры вне расчетного маршрута представлены на рис. 3.
Имеем:
п = 5; 4! = 24 = 1 + С1 • Аз + с£ • А4 + А5 = = 1 + 10 • 1 + 5 • 1 + 8: А3 = 8 .
(п - 1)! = 1 + СІ • Аз + (",] • Л ,
• А,
с;
7? — 1
А„_1 + С” ■ А„ —
М7-1 і '-я Я —1
1 + ’ Ак — 1 + ^ ‘ -^к •/^71
к=3 к=3
где А — константы разложения (п — 1)!.
5
3
Таблица
п 3 4 5 6 7 8 9 10 И 12
О - 1)! 2 6 24 120 720 5040 40320 362880 3628800 39916800
А„ 1 1 8 36 229 1625 13208 120288 1214673 13469897
' 100% 50,00 16,66 33,33 30,00 31,80 32,24 32,75 33,15 33,47 33,74
Константы разложения (п — 1) факториала А можно вычислять с использованием непосредственного перечисления всех гамильтоновых контуров графа по матрицам В (к = = 3,...,п), где граф матрицы В не содержит дуг расчетного маршрута. Эквивалентная схема перебора и поиска полных гамильтоновых контуров по матрицам В соответствующей размерности приводит к аналогичному результату.
Рекуррентная последовательность вычисления значений А имеет вид:
А3 = 1 (рис. 1):
А4 = 3! — (1 + С'4 • Аз) = 1, (рис. 2, а):
А5 = 4! — (1 + С'| • Аз + С'| • А4) = 8. (рис. 3).
Последовательно рекуррентно определяются:
А* = (к - 1)! - (1 + С\ • Аз +
к-1
+ С|-А4 + ;£С£-АР), (8)
■р=о
где .
Константы для ряда значений приведены в таблице.
Рассмотрим на примере поиск оптимальной последовательности, используя метод перечисления путей и контуров графа.
Дана матрица А.
А =
1 2 3 4 5
1 Х 0 2 1 4
2 5 Х 0 4 2
3 2 0 Х 3 1
4 4 0 7 Х 0
5 0 4 0 0 Х
Если рассматривать исходную матрицу А на очередном шаге итерационного процесса, то видно, что его оценка Ь(ПРА) = 3.
Следовательно, все элементы матрицы А вне расчетного маршрута, имеющие значение, большее 3, не могут входить в оптимальный гамильтонов контур. Кроме того, оценка заменяемого элемента расчетного маршрута, стоящего на месте , , включает сумму минимального элемента в строке и минимального элемента в столбце .
Оценка значений элементов расчетного маршрута матрицы А есть:
а,12 = 1; а-23 = 2 ; «34 = 0 ;
0,45 = 1; 0,51 = 2 .
Следовательно, любой элемент расчетного маршрута может быть заменен при поиске оптимальной последовательности. В противном случае соответствующий элемент расчетного маршрута нельзя из него удалить. Для метода перечисления строим по матрице А матрицы В и В’.
1
2
В"= 3
4
5
0 1,2 1,3 1,4 0
1 2 3 4 5
0 2 3 4 0
0 0 3 0 5
1 2 0 4 5
0 2 0 0 5
1 0 3 4 0
Применим метод оценки и существования полного гамильтонова контура [2].
Элементы матрицы А , , , , ,
больше оценки расчетного маршрута, равной 3.
Следовательно, соответствующие элементы в матрицах В и В’ полагаем равными нулю,
5
3
4
что означает отсутствие путей через эти элементы.
Последовательно получаем:
2 * в2 = вв = 1
3 2 '
в3 = В -в = 1
1
2
3
4
5
0 1.3.2 1.4.2 1,2,3 1,3,4 1.2.5 1.3.5 1.4.5
1 2 3 4 5
0 1.2.3.2 1.3.4.2 1.3.2.3 1.4.2.3 1.2.5.3 1.3.5.3 1.4.5.3 1.2.3.4 1.2.5.4 1.3.5.4 1.4.5.4 1.3.2.5 1.4.2.5 1.2.3.5 1.3.4.5
1 - 4 - 5 - 3 - 2 ^ ЦлЛ) = 1 1 - 3 - 5 - 4 - 2 ^ ЦлЛ) = 3
1 - 2 - 5 - 3 - 4 ^ ЦлЛ) = 6 1 - 2 - 3 - 5 - 4 ^ ЦлЛ) = 1
1 - 3 - 4 - 2 - 5 ^ ЦлЛ) = 7 1 - 4 - 2 - 3 - 5 ^ ЦлЛ) = 2 1 - 2 - 3 - 4 - 5 ^ ЦлЛ) = 3
1
5 4 ✓
в5 = В4В = 1
1.4.2.5.3.1
1.4.2.3.5.1
В матрице В одной чертой перечеркнуты последовательности дуг, которые имеют внутренние контуры. Двумя чертами перечеркнута последовательность 1, 3, 2, 5 на основании следующего заключения: если имеется подмножество вершин графа, содержащее одинаковые вершины, которые образуют различные последовательности путей, и эти последовательности путей заключены между одинаковыми вершинами начала и конца путей, то продолжения путей этих последовательностей будут содержать одинаковые подмножества вершин. Поэтому при оптимизации надо выбирать такую последовательность из этих вершин, которая имеет минимальное значение пути между ее началом и концом. Это есть локальная оптимизация части последовательности среди рассмотренных вершин. Другие подмножества вершин графа подлежат оптимизации по такому же алгоритму.
Здесь использован известный принцип доминирования последовательностей подмножеств при их оптимизации по заданным критериям.
Имеем:
В3 : 1 - -3 - ^2 - ^5 -»• Ь{пА) = 5 1 — 2 — 3 — 5—> Ь(жА) = 1.
Оставляем последовательность 1, 2, 3, 5.
Далее действуем аналогично:
4 3 '
В4 = В3В =
В5:
1 - 4 - 2 - 5 - 3 - 1 ^ ЦлЛ) = 5 1 - 4 - 2 - 3 - 5 - 1 ^ ЦлЛ) = 2
= 1
1.4.2.3.2
1.2.5.3.2
1.4.5.3.2
1.2.3.4.2
1,2,5,4,2
1.3.4.2.3
1.4.2.5.3
1.2.3.5.3
1.3.4.5.3
1,4,2,3,4
1.4.5.3.4
1.4.2.5.4
1.2.3.5.4
1.3.4.5.4
1.4.2.3.5
1.2.5.3.5
1.4.5.3.5
1.2.5.4.5
1.3.5.4.5
Оптимальная последовательность 1-4-23-5-1.
ЗАКЛЮЧЕНИЕ
В результате проведенного исследования:
1. Предложен новый алгоритм решения задачи коммивояжера.
2. Приводится алгоритм возможного уменьшения размерности исходной матрицы на основе оценки ее расчетного маршрута и ее сопоставление с оценками элементов расчетного маршрута.
3. Приводится новая формула разложения факториала.
СПИСОК ЛИТЕРАТУРЫ
1. Кофман, А. Введение в прикладную комбинаторику /А. Кофман. М.: Наука, 1975. 479 с.
2. Моргунов, И. Б. Оптимизация некоторых задач упорядочения (на примере упорядочения учебного материала) : монография / И. Б. Моргунов. М. : Исследовательский центр проблем качества подготовки специалистов, 2007. 228 с.
ОБ АВТОРЕ
Моргунов Иосиф Борисович, проф. каф. упр. кач. высш. обр-я Иссл. центра проблем кач. подг. спец. Канд. техн. наук, доц. Лауреат премии Президента РФ в обл. образования, почетный работник высшего профессионального образования.
4
В
5
2
3
4
5
0