УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
Том 148, кн. 4
Физико-математические пауки
2006
УДК 519.17
МЕТОД ЛИТТЛА С ОПТИМАЛЬНЫМ ПРИВЕДЕНИЕМ МАТРИЦЫ
II. Ф. Борхапов, В. Р. Фазылов
Аннотация
В работе рассматривается применение традиционного и оптимального приведений матрицы стоимостей в методе Литтла для несимметричной задачи коммивояжера. На ряде тестовых задач показана высокая эффективность оптимального приведения.
1. Традиционное и оптимальное приведения
Как известно, в методе Литтла. Мэрти. Суини, Кэролл для задачи коммивояжера (см.. например. [1. с. 369]. [2. с. 78]) используется процедура приведения матрицы стоимостей (весов дуг) Ш порядка п, которая представляет собой последовательность операций приведения строк и столбцов. Операция приведения г-й строки заключается в вычитании из строки матрицы некоторой константы г -константы приведения г-й строки. Аналогично, операция приведения j-тo столбца заключается в вычитании из столбца матрицы некоторой константы с- константы приведения j-гo столбца.
Целыо применения процедур приведения по строкам и столбцам является получение приведенной матрицы - неотрицательной матрицы стоимостей Ш' (=
С3, г
1,... ,п, ] = 1,..., п), каждая строка и каждый столбец которой содержат хотя бы один нулевой элемент. При этом стоимость любого решения исходной задачи будет отличаться от стоимости этого же решения, вычисленного по приведенной матрице, ровно на сумму констант приведения. А так как очевидная нижняя оценка стоимости любого маршрута для приведенной матрицы равна нулю, то нижняя оценка стоимости любого маршрута для исходной матрицы будет равна сумме констант приведения, что и используется в методе Литтла.
В работе [3] отмечено, что простые способы приведения матрицы стоимостей обычно не дают максимума суммы констант приведения, и предложена процедура оптимального приведения. Опишем далее традиционное и оптимальное приведения матрицы стоимостей.
Традиционное приведение. Процедура заключается в следующем: сначала из каждой строки матрицы вычитается минимальный элемент строки, а потом из каждого столбца получившейся матрицы вычитается минимальный элемент столбца. При этом, очевидно, все константы приведения будут неотрицательными, и в каждой строке и в каждом столбце будут нулевые элементы.
Оптимальное приведение. Отыскание оптимальных констант приведения состоит в решении следующей задачи:
'и и \
тах | ^ Г сз I '
^=1 3 = 1 )
П + Сз < , г = 1, . .., п, ] = 1,. . . ,п. (2)
Для решения задачи (1). (2) воспользуемся алгоритмом Манкреса для задачи о назначениях (см. [4. 5]):
1. В каждой строке матрицы найти минимальный элемент строки и вычесть его из каждого элемента этой строки. Найденные минимальные элементы строк будут начальными значениями констант приведения строк.
2. В каждом столбце полученной матрицы найти наименьший элемент столбца и вычесть его из каждого элемента этого столбца. Найденные минимальные элементы столбцов будут начальными значениями констант приведения столбцов.
3. В полученной матрице найти нулевой элемент (2). Если нет помеченного звездочкой нуля в его строке и столбце, то помечаем 2 звездочкой. Повторить это для всех пулей матрицы.
4. Закрыть каждый столбец, содержащий нуль со звездочкой. Если закроются все столбцы, то останов: нули со звездочками определяют оптимальное решение задачи о назначениях.
5. Если в матрице все нули закрыты, то перейти к п. 7, иначе найти незакрытый нуль н пометить его штрихом. Если в строке с этим нулем нет нуля со звездочкой, то перейти к п. 6. иначе закрыть эту строку и открыть столбец, содержащий нуль со звездочкой. Перейти к началу п. 5.
6. Построить ряд чередующихся помеченных штрихом и звездочкой нулей следующим образом.
6.1. Выбрать за 2 незакрытый помеченный штрихом пуль, найденный в
6.2. Поместить 2 в конец ряда. Если в столбце с 2 есть пуль со звездочкой, то выбрать его за иначе перейти к п. 6.4.
6.3. Поместить 2 в конец ряда. В строке с 2 выбрать нуль со штрихом и выбрать его за Перейти к п. 6.2.
6.4. Снять звездочку с нулей со звездочкой в ряду, пометить звездочкой нули со штрихом в ряду, удалить все оставшиеся штрихи и открыть все строки и столбцы матрицы. Перейти к п. 4.
7. Найти из незакрытых элементов матрицы минимальный, обозначить его через А. Добавить А к каждому элементу закрытой строки, и вычесть А из каждого открытого столбца, уменьшить на А значения констант приведения соответству-
А
столбцов. Перейти к п. 5 (без изменений звездочек, штрихов и признаков закрытых строк и столбцов матрицы).
Очевидно, что найденные этим алгоритмом константы приведения строк и столбцов согласно теореме 3 [3] будут решением задачи (1), (2) (то есть оптимальными константами приведения), так как они удовлетворяют условию (8) из [3].
Заметим, что одновременно с константами приведения получается оптимально приведенная матрица и оптимальное решение задачи о назначениях, которое может оказаться решением задачи коммивояжера. Проверка этого имеет сложность О(п) и не представляет большого труда, но в случае успеха сокращает трудоемкость получения решения задачи коммивояжера.
Применение алгоритма Манкреса для решения задачи (1), (2) вместо симплекс-метода обусловлено тем, что первый имеет сложность О(п3), тогда как сложность только одной итерации симплекс-метода для задачи (1), (2) равна О(п4).
Проиллюстрируем применение описанных выше процедур приведения на простом примере. Пусть задана матрица Ж (знак то означает запрет элемента):
п. 5.
то 7 1 7 то 1 5 5 то
Традиционное приведение даст следующие константы приведения: r 1 = 1, Г2 = = 1, r3 = 5, c1 = 0, c2 = 0, c3 = 0, их сумма равна 7, а приведенная матрица имеет вид:
ж 6 0 \ 6 ж 0 I . 0 0 ж)
r1 = 1 r2 =
1, r3 = — 1, c1 = 6, c2 = 6, c3 = 0, их сумма равна 13, а приведенная матрица имеет вид:
ж 0 0 0 ж 0 I . 0 0 ж)
В дальнейшем через W' будем обозначать оптимально приведенную матрицу. Назначением будем называть любой набор элементов матрицы, задающий допустимое решение задачи о назначениях для матрицы W', оптимальным назначением будем называть назначение с нулевой суммой элементов. В матрице W', как доказано в [3], существует хотя бы одно оптимальное назначение с нулевой суммой выбранных элементов.
Назовем оценкой элемента матрицы, сумму констант приведения матрицы, полученной из исходной запретом этого элемента.
Теорема 1. Элемент оптимально приведенной матрицы W', имеющий положительную оценку, входит во все оптимальные назначения.
Доказательство. Пусть оценка элемента w j положительна и существует оптимальное назначение, не содержащее wj . Тогда в матрице W, полученной из W' запретом элемента w j, это назначение сохранится. А так как все элементы это-
W
оценка элемента w j будет равна нулю. Полученное противоречие завершает доказательство. □
Таким образом, согласно теореме 1 поиск элемента с максимальной оценкой в методе Литтла можно проводить только среди элементов оптимального назначения, найденного с помощью алгоритма Манкреса. Это упрощает поиск элемента с максимальной оценкой.
Заметим, что в матрице W' может и не быть элемента с положительной оценкой. Но и в этом случае мы рекомендуем выбирать искомый элемент из элементов оптимального назначения.
2. Тестовые расчеты
Расчеты проводились на компьютере со следующим характеристиками: процессор Pentium 4 3.15 GHz, объем оперативной памяти 512 Mb.
В численном эксперименте решение задачи коммивояжера проводилось следующими алгоритмами:
1 (DEF). Алгоритм Литтла с традиционной процедурой приведения.
2 (APS). Алгоритм Литтла с оптимальной процедурой приведения. Оптимальное приведение используется при приведении исходной матрицы и при каждой фиксации элемента (левые ветви дерева перебора решений). При запрете элемента (правые ветви дерева перебора решений) используется традиционное приведение строки и столбца, соответствующих запрещенному элементу. Поиск элемента с максимальной оценкой проводится среди всех нулевых элементов матрицы.
3 (APSA). Алгоритм APS с поиском элемента с максимальной оценкой (элемент для ветвления) только среди элементов оптимального назначения, найденного алгоритмом Манкреса при оптимальном приведении матрицы. При запрете элемента после традиционного приведения оптимальное назначение неизвестно, и поиск элемента с максимальной оценкой производится среди всех нулей матрицы.
4 (APSAC). Алгоритм APSA с проверкой, не является ли очередное оптимальное назначение допустимым решением задачи коммивояжера.
Для оценки результата решения тестовых задач фиксировались следующие показатели:
1. Время Ti, затраченное та решение тестовой задачи в миллисекундах (i -номер алгоритма):
2. Количество просмотренных узлов Ei в дереве перебора решений метода Литтла:
3. Трудоемкость по времени алгоритмов 2 4 в сравнении с алгоритмом 1 (Ti/Ti, i = 2, 3,4);
4. Трудоемкость по количеству просмотренных узлов алгоритмов 2 4 в сравнении с алгоритмом 1 (E1/Ei, i = 2, 3, 4).
Несимметричные задачи коммивояжера
Генерировались случайные несимметричные матрицы порядка n от 10 до 100 с шагом 1. Диапазон значений элементов - от 0 до 500000000/ n. Для каждого n решено более 200 задач.
Ti Ei
n
Ti
n
равным 1.
Табл. 1
п DEF APS APSA APSAC
Т Si То En Т3 E з ТА Еа
10 0.1 18.6 0.1 11.8 0.1 11.8 0.1 6.8
15 0.1 60.2 0.1 25.3 0.1 25.3 0.1 16.5
20 0.2 147.2 0.1 37.7 0.1 37.7 0.1 26.7
25 0.8 432.2 0.4 60.7 0.6 60.7 0.4 46.5
30 4.5 995.6 0.9 75.6 1 75.6 1.2 59.5
35 18 2774.3 0.9 107.9 1.7 107.9 1.4 88.3
40 41.5 5330.4 2.3 136.3 2.5 136.3 2.2 112
45 165.7 18450.8 2.4 156 3.5 156 3.4 131.3
50 432 40359.2 4.6 180.4 5 180.4 4.1 151.1
55 869.1 69021.7 6.7 195.2 6.1 195.2 6.1 166.1
60 2466.4 173449.7 10.4 250.5 8.9 250.5 8.9 214.8
65 8298.8 496245.4 13.5 294.9 13.3 294.9 11.9 256
70 22227.1 1143516.5 17.7 319 16.6 319 15.3 279.3
75 83209.4 3865399.9 24.1 345.2 22.8 345.2 22 301.9
80 182205.7 7677165.3 28.7 366.4 26.9 366.4 27 322.2
85 323268.7 12393663.5 42.1 448.7 40.5 448.7 39.6 397.3
90 544506 18988318.7 51.1 507.9 49.8 507.9 48.9 457.7
95 970715.9 30820562.1 61.5 538.2 62 538.2 60.9 481.3
100 1117811.5 32222002 80.3 644.1 80.3 644.1 78.5 585.4
-DEF 4ÄPS -APSA --iPSAC
4 £ i> SS § Щ й'- <:' v> v?- •<•> дЬ ¿p ЦК gt ф Sl sä? >?• ,;•?
Рис. 1. Зависимость средней трудоемкости алгоритмов от порядка матрицы
В табл. 2 приведены средние значения показателей Ti/Tj и Ei/Ej для задач с одинаковым порядком матрицы, шаг по n в таблице равен 5. На рис. 2 приведены средние значения показателя Ti/Tj для задач с матрицами одного порядка, для построения графика использованы полные данные эксперимента, полученные n
Табл. 2
п APS APSA APSAC
Ti/Ta Ei/ Е2 Т1/Т3 Ei/ E 3 T1/T4 Ei/E4
10 0.1 1.6 0.1 1.6 0.1 5.6
15 0.1 2.7 0.1 2.7 0.1 9.6
20 0.2 4.2 0.2 4.2 0.2 15.9
25 0.8 9.6 0.8 9.6 0.8 33.6
30 4.4 17.8 4.3 17.8 4.2 83.3
35 16.9 33.6 16.7 33.6 16.2 75.4
40 37 54.6 32.1 54.6 34.4 225.4
45 133.6 210 123.3 210 132.4 3137.2
50 245.2 316.9 265.3 316.9 268.3 1845.2
55 513.5 495.7 525.1 495.7 447.8 1775
60 1152.4 1259.5 882 1259.5 1081.9 11749.3
65 1752 2884.8 2567.4 2884.8 2202.8 7313.8
70 4559.6 6387 4129.1 6387 4770.9 63128.6
75 7859.9 14478.5 6630.4 14478.5 5938.9 22204.7
80 12549.9 34592.4 12920.1 34592.4 14957.1 290688.8
85 10098.1 44845.4 10904.2 44845.4 15011.5 448510.1
90 17637.5 78716.6 18005.4 78716.6 19623.9 393283.8
95 24388.2 133898.8 26006.7 133898.8 26371.4 612443.6
100 22096.4 108588.7 21641.3 108588.7 26679.4 404530.4
-ЯРЗАС
¡?> ¡а
I' I # #■ 1 I V #" # # ^ £ о ■■?■■ <р # & # ¡# ^ Ф »
Рис. 2. Зависимость сред1шх значений относительной трудоемкости алгоритма с традиционным приведением и алгоритмов с оптимальным приведением от порядка матрицы
Симметричные задачи коммивояжера
Генерировались случайные симметричные матрицы порядка п от 10 до 60 с шагом 1. Элемент матрицы вычислялся как евклидово расстояние между точками (хг,уг), (х^), координаты которых выбирались случайно из диапазона от 0 до пп
расчетов использовались алгоритмы 1 4 без каких-либо дополнений, учитывающих симметричность матрицы.
Табл. 3
п БЕР АРЯ А РИА АРЯАС
Т То Еп Т3 Ез т4 Е4
10 0.2 47 0.5 28 0.1 28 0.1 24
15 1.2 212 0.6 95 1.2 95 0.9 85
20 5.4 985 3.5 252 3.4 252 3.2 235
25 28.1 3958 13.4 598 13.2 598 12.7 574
30 152.1 16401 39.6 1342 38.4 1342 37.6 1312
35 721 62339 119 2688.4 114 2688 114.2 2644
40 3430.1 244500 359.5 5969 344 5969 346.1 5916
45 15042.3 925826 1231.6 16826 1183.6 16826 1187.8 16757
50 74466.4 3893821 3280.6 31142 3132.7 31142 3164.2 31058
55 356217 16225433 7822.3 56549 7572.7 56549 7621 56454
60 914692 35522112 22827 132753 22588 132753 22429 132643
В табл. 3 приведены средние значения показателей Т и Е^ для задач с одинако-
п
значения показателя Т для задач с матрицами одного порядка, для построения
п
равным 1.
- —*— DEF -ÜFgFÍ «SÄ,
# f | if | I Ф & # 4> í # í í í é ф «p § ф ba
Рис. 3. Зависимость средней трудоемкости алгоритмов от порядка матрицы
В табл. 4 приведены средние значения показателей Ti/Ti и Ei/Ei для задач с одинаковым порядком матрицы, шаг по n в таблице равен 5. На рис. 4 приведены средние значения показателя Ti/Ti для задач с матрицами одного порядка, для построения графика использованы полные данные эксперимента, полученные n
Табл. 4
n APS APSA APSAC
Ti/Ta Ei/ E2 T1/T3 Ei/ E3 Ti/Ti Ei / Ei
10 0.2 1.9 0.2 1.9 0.2 2.7
15 1.2 2.9 1.2 2.9 1.1 3.4
20 4.9 4.9 4.3 4.9 4.3 5.5
25 9.9 9.2 7.4 9.2 8.5 10.9
30 9.4 18.8 9.9 18.8 9.5 19.8
35 8.6 34.9 9.1 34.9 9.8 36.3
40 16.1 72.7 16.7 72.7 16.7 74.2
45 25.6 137.1 26.6 137.1 26.7 139.4
50 41.4 238.4 43.3 238.4 43.1 241.2
55 115.5 735.5 119.6 735.5 119 740.3
60 99.5 709.3 101.3 709.3 102.3 711.6
Как для несимметричных, так и для симметричных случайных тестовых задач результаты численных экспериментов показывают, что применение оптимального приведения дает значительный выигрыш не только по количеству просмотренных узлов, но и по времени решения задачи, причем этот выигрыш возрастает с ростом размерности задачи (см. табл. 2, 4, и рис. 2, 4). Отсутствие заметного преимущества на малых размерностях (до 25 пунктов в несимметричных задачах и до 15 пунктов в симметричных задачах) не удалось выявить из-за трудности достаточно точной фиксации времени решения ввиду его малости.
Рис. 4. Зависимость средних значений относительной трудоемкости алгоритма с традиционным приведением и алгоритмов с оптимальным приведением от порядка матрицы
Табл. 5
Имя задачи п БЕР АРЯ А РИА АРЯАС
Тг Тп Т3 т4
Й70 70 160328 147265 149187
1Ъ-33 34 156 1046 968 1046
1Ъ-35 36 78 46 31 46
1Ъ'38 39 312 46 31 46
П\11 45 1500 93 78 78
1Ъ-47 48 20968 437 406 421
1Ъ-55 56 615500 2640 2437 2437
1Ъ'64 65 951750 2187 1984 2015
1Ъ'70 71 9515 8203 8390
1Ъ'90 91 1609 1484 1500
1Ы30 131 130813 114265 116484
1Ы40 141 122593 109578 108375
1Ы50 151 152562 132078 134531
1Ы60 161 4045046 3771093 3970437
ГЬ8323 323 20968 3015 2968
гЬ§358 358 86515 7140 7328
ГЬ8403 403 128062 5781 5484
гЬ§443 443 73906 4328 3578
317 11890 11921
tdl000 1001 1237515 1245875 1227671
Ьг17 17 5078 6140 5437 5625
кго124р 100 3688984 3505406 3568203
гу48р 48 571140 57765 54406 54406
atexl 16 234 437 390 406
atexЗ 32 281 62 46 46
со1.1е198 198 234 171 78 62
со1.1е253 253 1818203 1255640 1261203
Табл. 6
Имя задачи n DEF APS APSA APSAC
Et En E з Ei
ft. 70 70 3421546 3421546 3421486
ftv33 34 20737 217020 217096 217035
ftv35 36 8496 3562 3562 3544
ftv38 39 28328 2123 2123 2093
ftv44 45 116002 3013 3010 2990
ftv47 48 1814510 13205 13123 13117
ftv55 56 34685374 90719 88640 88611
ftv64 65 48391535 62403 59254 59236
ftv70 71 1422764 142949 142860
ftv90 91 8075 8075 8017
ft.vl30 131 3393901 3520841 3520771
ft.vl40 141 299846 298833 298760
ft.vlSO 151 3744592 3431861 3431649
ft.vl60 161 20704188 20278643 20278579
rbg323 323 8459 322 242
rbg358 358 31802 357 322
rbg403 403 40598 402 248
rbg443 443 11924 442 81
t.d316 317 316 315
tdlOOO 1001 3060 1000 843
brl7 17 1909572 1301491 1256528 1256524
krol24p 100 11884544 11884544 11884029
ry48p 48 407404475 2296581 2296533 2296533
at.exl 16 80013 98322 98373 98357
at.ex3 32 43633 2229 2253 2225
codel98 198 421 197 197 196
code253 253 559582 559582 559299
Известные тестовые задачи
Эти задачи используются для тестирования алгоритмов решения задачи коммивояжера и свободно доступны в сети интернет. С описанием задач и их происхождением можно ознакомиться, например, в статье [8].
В табл. 5 и 6 приведены значения показателей Ti и E соответственно. Пустые клетки означают, что задача не была решена соответствующим алгоритмом за отведенных два часа на решение одной задачи.
Как видно из приведенных результатов, основной вывод, сделанный ранее для несимметричных и для симметричных случайных задач. эффективность применения оптимального приведения подтверждается и для решенных известных тестовых задач. В некоторых случаях, когда при традиционной реализации метода Литтла не удавалось найти решение за отведенных два часа, алгоритмы с оптимальным приведением находили решение.
Отметим особенно результаты решения задачи td31G. Здесь интересно то. что применение только оптимального приведения не дало решение за отведенных два часа. Однако алгоритмы с оптимальным приведением и поиском элемента с максимальной оценкой только среди элементов оптимального назначения, найденного алгоритмом Манкреса при оптимальном приведении матрицы (алгоритмы APSA. APSAC) нашли решение менее чем за 12 секунд. На наш взгляд, это объясняется особой эффективностью выбора элемента для ветвления из текущего назначения.
В заключение отметим, что ряд тестовых задач ft53 (53 количество пунктов), ftvlOO (101), ftvllO (111), ftvl20 (121), ftvlTO (171), tdlOO (101), p43 (43), atex4 (48), atexS (72), atexS (600), big702 (702), dcll2 (112), dcl26 (126), dcl34 (134), del76 (176), del88 (188), dc563 (563), dc849 (849), dc895 (895), dc932 (932) не были решены за отведенных два часа ни одним из методов, причем среди них есть задачи небольшой размерности (например, ft53, р43, atex4, atexS). По-видимому, для разработки хороших алгоритмов для их решения требуется изучение специфики этих задач.
Summary
I.F. Borhanov, V.R. Fazyluv. Little's method with optimal reduction of a matrix. In this paper are considered application traditional and optimum reduction of a matrix in Little's method for asymmetrical problem of the traveling salesman representative. On a number of test problems high efficiency of optimum reduction is shown.
Литература
1. Акоф P., Caeueuu M. Основы исследования операций. M.: Мир. 1971. 534 с.
2. Копией Р.В., Максвелл В.Л., Миллер Л.В. Теория расписаний. М.: Наука, 1975. 359 с.
3. Ворхапов И.Ф., Фазы,лов В.Р. Об оптимальном приведении матрицы стоимостей // Уч. зап. Казап. уп-та. Сер. Физ.-матем.пауки. 2006. Т. 148, кп. 2. С. 18 22.
4. Munkres J. Algorithms for the assignment and transportation problems // J. SIAM. 1957. V. 5, No 1. P. 32 38.
5. Jin Кие Wong. A new implementation of an algorithm for the optimal assignment problem: an improved version of Munkres' algorithm // BIT Numerical Mathematics. V. 19, No 3. P. 418 424.
6. Кристофидес H. Теория графов. Алгоритмический подход. М.: Мир. 1978. 432 с.
7. Рейнгольд Э., Ниве.раелът Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. М.: Мир. 1970. 476 с.
8. Girtisella J., Johnson D.S., McGeoch L.A., Zhang W. The asymmetric travelling salesman problem: algorithms, instance generators, and tests // ALENEX. 2001. V. 2153. P. 32 59.
Поступила в редакцию 08.09.06
Ворханов Ильнар Фирсорович аспирант кафедры экономической кибернетики Казанского государственного университета.
Фазылов Валерий Рауфович доктор физико-математических паук, заведующий кафедрой экономической кибернетики Казанского государственного университета. E-mail : Valéry. Fazylov Qksu.ru