Спустя десятилетия застоя, найдены новые короткие пути для задачи коммивояжёра


image

Не так давно команда исследователей из Стэнфорда и Университета Макгилла побили 35-летний рекорд по информатике на невообразимо малую величину – на четыре сотых триллионной триллионной триллионной доли процента. Прорыв – сделанный в классической для информатики задаче коммивояжёра – был слишком малым для какого бы то ни было практического значения, но он вдохнул новую жизнь в поиски улучшенных приближённых решений.

Задача формируется так: для набора городов, соединённых дорогами, необходимо найти кратчайший путь посещения каждого города с возвратом в точку старта. У решений задачи есть практические применения от сверления отверстий в печатных платах до управления расписанием задач на компьютере и упорядочивания свойств генома.

Задачу коммивояжёра легко сформулировать, и – в теории – легко решить, проверив все возможные замкнутые пути для поиска кратчайшего. Проблема с подходом грубой силы в том, что при росте количества городов соответствующее количество путей очень быстро начинает превышать возможности самых быстрых компьютеров. Для десяти городов существуют более 300 000 путей. Для 15 городов их количество возрастает до 87 миллиардов.

Алгоритм Кристофидеса


В раннюю компьютерную эру математики надеялись, что кто-нибудь найдёт удобный подход к задаче – некий алгоритм, позволяющий решать её за разумное время. Но хотя программисты достигли прогресса в конкретных случаях – определении кратчайшего пути для 49 городов в 1950-х, для 2392 городов в 1980-х и для 85900 городов в 2006 – никто не предложил алгоритм, эффективно решающий задачу в общем случае. Согласно примечательной работе 1972 года, возможно, что такого алгоритма вообще не существует. Специалист по информатике Ричард Карп из Калифорнийского университета в Беркли, показал, что задача коммивояжёра NP-полная, что означает, что эффективного алгоритма не существует (если только никто не докажет, что P = NP – но большинство учёных считают, что это не так).

image
Самый короткий путь через все 13 509 городов США, население которых превышает 500 человек (по данным 1998 года)

После публикации работы Карпа многие специалисты по информатике занялись разработкой эффективного алгоритма поиска приблизительных решений задачи – замкнутых путей, чья длина ненамного превышает длину самого короткого. И здесь им повезло больше – в 1976 Никос Кристофидес, профессор в Имперском колледже Лондона, разработал алгоритм, выдающий пути, гарантированно не превышающие кратчайший путь более чем на 50%.

После его создания многие учёные решили, что этот алгоритм, достаточно простой для изучения студентами за час, станет промежуточным звеном, после которого будет найден более сложный, лучше аппроксимирующий истинное решение. Но десятилетия спустя таких алгоритмов так и не появилось.

«Почти все студенты, изучающие информатику, проводили недели или месяцы в попытках улучшить алгоритм Кристофидеса», говорит Санджеев Арора [Sanjeev Arora], учёный из Принстонского университета.

Наконец, в 2011 году команда Стэнфорда и Макгилла продвинулась за пределы 50% гарантии для определённых типов задач коммивояжёра и показала, что их решения будут превышать самый короткий путь не больше, чем на 49.99999999999999999999999999999999999999999999999996%.

С тех пор появился ряд улучшенных приближённых алгоритмов, благодаря свежему взгляду на задачу. И хотя эти приближения применимы лишь к определённым типам задач коммивояжёра, их подход довольно многообещающий, по словам Майкла Гоманса [Michel Goemans], специалиста по информатике из Массачусетского технологического института.

«Мы лишь слегка коснулись поверхности,- говорит он. – Я верю в то, что, может, лет через пять, мы достигнем более впечатляющих результатов».

Кратчайшее дерево


image
Мона Лиза как путь между 100 000 городами

Алгоритм Кристофидеса начинает не с поисков кратчайшего пути, а с поисков минимального остовного дерева – набора соединяющих города ветвей без замкнутых петель. В отличие от кратчайшего пути, минимальное остовное дерево довольно легко построить – нужно начать с поиска кратчайшего пути между двумя городами; это будет первая ветвь. Чтобы добавить следующую, нужно найти кратчайший путь между новым городом и одним из двух предыдущих – и так далее, пока не будут охвачены все города.

Результирующее дерево – это не одно из возможных решений задачи коммивояжёра, поскольку оно не даёт нам замкнутого пути. Но его можно превратить в такой путь, представив, что ветви – это стены, а затем прогулявшись по дереву так, чтобы ваш палец касался стены, пока вы не придёте к началу. Результирующая прогулка проходит через каждый город и возвращается назад, но обычно она далеко отстоит от кратчайшего пути, поскольку много раз проходит по одним и тем же отрезкам – каждую стену в дереве мы проходим дважды, по одному разу с каждой стороны.

Но полученный путь в худшем случае не длиннее кратчайшего пути вдвое. Добавив особым образом отбираемые ветви и применив несколько хитростей, Кристофидес показал, как урезать этот путь так, чтобы он не превышал кратчайший более чем на 50%.

Минимальное остовное дерево – естественная отправная точка для постройки короткого обходного пути. Но этот подход также стал отправным для исследователей, пытавшихся ужать 50%-ную гарантию Кристофидеса. Ведь хотя минимальное остовное дерево сначала выглядит эффективным, другие деревья могут подойти лучше для процесса преобразования деревьев в обходной путь – к примеру, к дереву без разветвлений нужно добавить лишь один отрезок пути, чтобы оно стало обходным путём.

Так что целью стал поиск дерева, соблюдающего баланс между длиной и простым преобразованием в обходной путь. Эффективных алгоритмов для поисков идеального дерева нет (если P=NP не истинно), но успешному приближённому алгоритму нужно найти только достаточно хорошее.

Дробное путешествие


Путь к «достаточно хорошему» дереву включал популярную, хотя и контринтуитивную, технику, признающую дробные решения для определённых задач. К примеру, дробный обходной путь может включать путешествие до половины пути между Миннеаполисом и Детройтом, и до половины пути между Кливлендом и Детройтом. С практической точки зрения такой путь не имеет смысла. Но его можно точно описать математически, и в отличие от классической задачи коммивояжёра, такую дробную версию можно решить эффективно.

Многие задачи аппроксимации в информатике можно решать, подсчитывая решения для дробной версии задачи, а затем по-умному округляя доли, чтобы получить примерное решение исходной задачи. Но до недавних пор никто ещё не придумал, как это можно сделать в случае задачи коммивояжёра.

В 2009 году Амин Сабери [Amin Saberi] из Стэнфордского университета и Араш Асадпур [Arash Asadpour], тогда ещё аспирант, разработали общую схему округления, использующую случайные числа для подбора целочисленного решения, сохраняющего как можно больше свойств дробного решения. Сабери считал, что эта схема напоминает «тяжёлый молоток в поисках гвоздя». И он подозревал, что подходящим гвоздём может оказаться задача коммивояжёра.

Через несколько месяцев Сабери, Асадпур, Гоманс, аспирант Стэнфорда Шайан Гаран [Shayan Gharan] и Александер Мадри [Aleksander Madry], ныне работающий в Федеральной политехнической школе Лозанны в Швейцарии, показал, что новая техника округления может дать хороший приближённый алгоритм для одного из вариантов задачи коммивояжёра, «асимметричного» случая. Через год Сабери, Гаран и Мохит Сингх [Mohit Singh] из Университета Макгилла использовали тот же подход для разработки нового приближённого алгоритма для обычной задачи коммивояжёра.

image
Крупнейшей решённой задачей коммивояжёра стал путь между 85 900 городами, подсчитанный в 2006 году. Расположение «городов» соответствует дизайну конкретного компьютерного чипа, созданного в лаборатории Белла, и решение является кратчайшим путём для лазера, его вырезающего

Получив карту городов и путей, новый алгоритм начинает с подсчёта точного дробного решения задачи коммивояжёра. Затем он округляет это решение до остовного дерева, которое теоретически должно близко подходить к балансу между длиной и простым преобразованием в обходной путь. Наконец, алгоритм включает это дерево – а не минимальное остовное дерево – в сеть Кристофидеса.

Новый алгоритм был «идеей, которую мы могли бы объяснить за пару часов, но её доказательство заняло около года», говорит Сабери.

После долгого анализа команда Стэнфорда/Макгилла смогли улучшить алгоритм Кристофидеса на небольшую долю для широкого подкласса задач коммивояжёра, «графических». Через несколько месяцев другие команды, вдохновлённые успехом, использовали другие схемы округления для получения алгоритмов для графического случая с лучшими приближениями. Текущий рекорд составляет 40%, что сильно лучше 50% Кристофидеса.

Графический случай «включает в себя много тех же трудностей, что встречаются и в общей проблеме», говорит Арора, добавляя, что схемы, работающие в графическом случае, могут пригодиться и для общей задачи коммивояжёра.

Тем не менее, говорит Сабери, решение общей приближённой задачи коммивояжёра, скорее всего, потребует новых идей. «Математическое открытие – как движение по тёмной комнате. Протягиваете руку и обнаруживаете стул, протягиваете руку и находите стол», говорит он, перефразируя математика Эндрю Уайлса. «В какой-то момент рука находит выключатель, и внезапно всё становится понятным. В случае задачи коммивояжёра даже после такого количества работ, нащупавших так много границ возможного, мне не кажется, что мы уже нашли этот выключатель».
Поделиться с друзьями
-->

Комментарии (13)


  1. febb
    06.12.2016 19:00

    Интересно, когда-нибудь художественный фильм Travelling Salesman 2012 (Задача коммивояжёра) переведут на русский язык? Очень хочется посмотреть и узнать в чем там дело :-)


    1. safinaskar
      06.12.2016 22:06

      Мне кажется, нет. Я купил их фильмец, посмотрел. Недавно они прислали мыло, в котором написали, что у них всё плохо и срочно нужны положительные оценки на imdb. Так что вряд ли когда-нибудь переведут. Достань субтитры, если есть и гугл транслейтом переведи.


  1. miksoft
    07.12.2016 09:14

    Самый короткий путь через все 13 509 городов США, население которых превышает 500 человек (по данным 1998 года)
    Вот интересно, эта величина сильно меняется по мере развития дорожной сети?


    1. arheops
      07.12.2016 11:50
      +1

      Данная задача НЕ учитывает дорожную сеть. Только табличное расстояние между городами.


      1. Deosis
        07.12.2016 12:17

        Если в городе с населением 499 человек родится ребенок и этот город понадобится добавить в маршрут, то насколько изменится кратчайший путь?


        1. miksoft
          07.12.2016 14:16

          Увеличится на величину не более удвоенного пути от этого города до ближайшего к нему, полагаю.


        1. arheops
          07.12.2016 14:45

          Вам прийдется пересчитать ВСЕ. Может уменьшится, может увеличится. Врядли на ваш вопрос можно дать правильный ответ(доказать теорему).


          1. miksoft
            07.12.2016 15:57

            Может уменьшится
            Уменьшиться не может, имхо.


            1. arheops
              07.12.2016 16:07

              Может. Решение то не оптимальное, а «не более чем на 40% больше оптимального». Может получится, что эта точка приводит алгоритм к более оптимальному решению.


              1. miksoft
                07.12.2016 16:13

                Вопрос, от которого идет обсуждение, был «насколько изменится кратчайший путь?»
                Кратчайший уменьшиться не может.


                1. arheops
                  08.12.2016 01:30
                  +1

                  Путь «через 13 509 городов США» не является кратчайшим. Он именно получен по алгоритму, который находит суб-оптимальный маршрут.


                  1. miksoft
                    08.12.2016 14:40

                    А что тогда означают слова «Самый короткий»?


                    1. arheops
                      08.12.2016 14:46
                      +1

                      Никто не знает «самый короткий» путь в задаче комивояжора с такими данными. Даже суперкомпьютер не справится. В данном случае был использован алгоритм Кристофидеса, который дает приближенное значение «не более чем на 50% длинее».