Задача о самом длинном пути
В теории графов и теоретической информатике — задача о самом длинном пути это проблема поиска простого пути максимальной длины в заданном графе . Путь называется простым , если он не имеет повторяющихся вершин ; Длина пути может измеряться либо количеством ребер, либо (во взвешенных графах ) суммой весов его ребер. В отличие от задачи о кратчайшем пути , которую можно решить за полиномиальное время в графах без циклов с отрицательным весом, задача о самом длинном пути является NP-трудной , а версия проблемы, которая спрашивает, существует ли путь хотя бы из некоторых заданных длина, является NP-полной . Это означает, что проблема принятия решения не может быть решена за полиномиальное время для произвольных графов, если только P = NP . Известны также более сильные результаты по твердости, показывающие, что их трудно аппроксимировать . Однако он имеет решение с линейным временем для ориентированных ациклических графов , что имеет важные применения при поиске критического пути в задачах планирования.
NP-твердость [ править ]
NP-трудность невзвешенной задачи о наибольшем пути можно показать, используя сокращение проблемы гамильтонова пути : граф G имеет гамильтонов путь тогда и только тогда, когда его самый длинный путь имеет длину n - 1, где n - количество вершин в Г . Поскольку гамильтонова задача о пути является NP-полной, это сокращение показывает, что версия решения задачи о самом длинном пути также является NP-полной. В этой задаче решения входными данными являются граф G и число k ; желаемый результат — да, если G содержит путь из k или более ребер, и нет в противном случае. [1]
Если бы задача о самом длинном пути могла быть решена за полиномиальное время, ее можно было бы использовать для решения этой проблемы решения, найдя самый длинный путь и затем сравнив его длину с числом k . Следовательно, задача о самом длинном пути является NP-трудной. Вопрос «существует ли в данном графе простой путь с хотя бы k ребрами» является NP-полным. [2]
Во взвешенных полных графах с неотрицательными весами ребер задача о взвешенном самом длинном пути такая же, как и задача о пути коммивояжера , поскольку самый длинный путь всегда включает в себя все вершины. [3]
Ациклические графики [ править ]
Самый длинный путь между двумя заданными вершинами s и t во взвешенном графе G — это то же самое, что кратчайший путь в графе — G, полученный из G путем замены каждого веса на его отрицание. Следовательно, если кратчайшие пути можно найти в −G , самые длинные пути можно найти и в G. то и [4]
Для большинства графов это преобразование бесполезно, поскольку оно создает циклы отрицательной длины в G. — Но если G — ориентированный ациклический граф (DAG), то отрицательные циклы не могут быть созданы, и самый длинный путь в G можно найти за линейное время , применив алгоритм линейного времени для поиска кратчайших путей в — G , который также является направленным ациклический граф. [4] Для DAG самый длинный путь от исходной вершины ко всем остальным вершинам можно получить, алгоритм кратчайшего пути на — G. запустив
Аналогично, для каждой вершины v в данном DAG длина самого длинного пути, заканчивающегося в v, может быть получена с помощью следующих шагов:
- Найдите топологическое упорядочение данного DAG.
- Для каждой вершины v группы DAG в топологическом порядке вычислите длину самого длинного пути, заканчивающегося в v, просматривая ее входящих соседей и добавляя единицу к максимальной длине, записанной для этих соседей. Если у v нет входящих соседей, установите длину самого длинного пути, заканчивающегося на v, равной нулю. В любом случае запишите это число, чтобы последующие этапы алгоритма могли получить к нему доступ.
Как только это будет сделано, самый длинный путь во всем DAG может быть получен, начиная с вершины v с наибольшим записанным значением, затем многократно возвращаясь к ее входящему соседу с наибольшим записанным значением и обращая последовательность вершин, найденных в Сюда.
эквивалентно запуску алгоритма кратчайшего пути на — G. Это
Критические пути [ править ]
Метод критического пути для планирования набора действий предполагает построение ориентированного ациклического графа, в котором вершины представляют вехи проекта, а ребра представляют действия, которые должны быть выполнены после одной вехи и перед другой; каждое ребро взвешивается по оценке количества времени, которое потребуется для завершения соответствующего действия. В таком графе самый длинный путь от первой вехи до последней является критическим путем, который описывает общее время завершения проекта. [4]
Самые длинные пути ориентированных ациклических графов также могут применяться при рисовании многоуровневых графов : присвоение каждой вершины v ориентированного ациклического графа G слою, номер которого равен длине самого длинного пути, заканчивающегося на v, приводит к назначению слоя для G с минимальным возможное количество слоев. [5]
Приближение [ править ]
Бьорклунд, Хусфельдт и Ханна (2004) пишут, что задача о самом длинном пути в невзвешенных неориентированных графах «печально известна трудностью понимания сложности ее аппроксимации». [6] Лучший алгоритм аппроксимации с полиномиальным временем, известный для этого случая, обеспечивает лишь очень слабую степень аппроксимации: . [7] Для всех , невозможно аппроксимировать самый длинный путь с точностью до коэффициента если только NP не содержится в квазиполиномиальном детерминированном времени ; однако существует большой разрыв между этим результатом о неаппроксимируемости и известными алгоритмами аппроксимации этой задачи. [8]
В случае невзвешенных, но ориентированных графов известны сильные результаты о неаппроксимируемости. Для каждого задача не может быть аппроксимирована с точностью до фактора если только P = NP и при более строгих предположениях теории сложности его нельзя аппроксимировать с точностью до фактора. . [6] Метод цветового кодирования можно использовать для поиска путей логарифмической длины, если они существуют, но это дает коэффициент аппроксимации всего лишь . [9]
Параметризованная сложность [ править ]
Проблема самого длинного пути решается с фиксированными параметрами, если она параметризована длиной пути. Например, ее можно решить за время, линейное по размеру входного графа (но экспоненциальное по длине пути) с помощью алгоритма, который выполняет следующие шаги:
- Выполните поиск в глубину графа. Позволять быть глубиной результирующего дерева поиска в глубину .
- Используйте последовательность путей от корня к листу дерева поиска в глубину в том порядке, в котором они были пройдены поиском, чтобы построить декомпозицию пути графа с шириной пути .
- Примените динамическое программирование к этому разложению пути, чтобы найти самый длинный путь во времени. , где — количество вершин в графе.
Поскольку выходной путь имеет длину не менее , время работы также ограничено , где длина самого длинного пути. [10] Используя цветовое кодирование, зависимость от длины пути можно свести к одноэкспоненциальной. [9] [11] [12] [13] Похожий метод динамического программирования показывает, что задача о самом длинном пути также решается с фиксированным параметром, если параметризована шириной дерева графа.
Для графов с ограниченной шириной клика самый длинный путь также может быть решен с помощью алгоритма динамического программирования с полиномиальным временем. Однако показатель степени многочлена зависит от ширины клики графа, поэтому этот алгоритм не является управляемым с фиксированным параметром. Задача о самом длинном пути, параметризованная шириной клика, сложна для сложности . параметризованного класса , показывая, что управляемый алгоритм с фиксированными параметрами вряд ли существует. [14]
Специальные классы графов [ править ]
Алгоритм поиска самого длинного пути в дереве с линейным временем был предложен Эдсгером Дейкстра примерно в 1960 году, а формальное доказательство этого алгоритма было опубликовано в 2002 году. [15] Более того, самый длинный путь можно вычислить за полиномиальное время на взвешенных деревьях, блочных графах , кактусах , [16] на двудольных графах перестановок , [17] и на графиках Птолемея . [18]
Для класса графов интервальных Известен алгоритм времени, использующий подход динамического программирования. [19] Этот подход динамического программирования был использован для получения алгоритмов с полиномиальным временем для больших классов дуговых графов. [20] и графов совместной сравнимости (т.е. дополнений графов , сравнимости которые также содержат графы перестановок ), [21] оба имеют одинаковое время работы . Последний алгоритм основан на особых свойствах упорядочения вершин лексикографического поиска в глубину (LDFS). [22] графов косравнимости. Для графиков совместной сравнения также альтернативный алгоритм с полиномиальным временем и более высоким временем работы. известно, которое основано на диаграмме Хассе определяемого частично упорядоченного множества, дополнением входного графа косравнимости. [23]
Более того, задача о наибольшем пути разрешима за полиномиальное время на любом классе графов с ограниченной шириной дерева или ограниченной шириной клики, таких как дистанционно-наследственные графы . Наконец, очевидно, что это NP-сложно для всех классов графов, на которых проблема гамильтоновых путей является NP-трудной, например, для расщепляемых графов , круговых графов и плоских графов .
Простая модель ориентированного ациклического графа — это модель Прайса , разработанная Дереком Дж. де Солла Прайсом для представления сетей цитирования . Это достаточно просто, чтобы можно было найти аналитические результаты для некоторых свойств. Например,длина самого длинного пути от n-го узла, добавленного в сеть, до первого узла в сети масштабируется как [24] .
См. также [ править ]
- Теорема Галлаи–Хассе–Роя–Витавера , соотношение двойственности между самыми длинными путями и раскраской графа.
- Самый длинный непересекаемый путь рыцаря
- Змея в коробке — самый длинный индуцированный путь в графе гиперкуба.
- Модель Прайса — простая модель сети цитирования, в которой наибольшая длина пути может быть найдена аналитически.
Ссылки [ править ]
- ^ Шрийвер, Александр (2003), Комбинаторная оптимизация: многогранники и эффективность, Том 1 , Алгоритмы и комбинаторика, том. 24, Спрингер, с. 114, ISBN 9783540443896 .
- ^ Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Штейн, Клиффорд (2001), Введение в алгоритмы (2-е изд.), MIT Press, стр. 978, ISBN 9780262032933 .
- ^ Лоулер, Юджин Л. (2001), Комбинаторная оптимизация: сети и матроиды , Courier Dover Publications, стр. 64, ISBN 9780486414539 .
- ^ Jump up to: а б с Седжвик, Роберт ; Уэйн, Кевин Дэниел (2011), Алгоритмы (4-е изд.), Addison-Wesley Professional, стр. 661–666, ISBN 9780321573513 .
- ^ Ди Баттиста, Джузеппе; Идс, Питер ; Тамассия, Роберто ; Толлис, Иоаннис Г. (1998), «Многослойные рисунки орграфов», Рисование графиков: алгоритмы визуализации графов , Прентис Холл , стр. 265–302, ISBN 978-0-13-301615-4 .
- ^ Jump up to: а б Бьёрклунд, Андреас; Хусфельдт, Тор; Ханна, Санджив (2004), «Аппроксимация самых длинных направленных путей и циклов», Proc. Межд. Колл. Автоматы, языки и программирование (ICALP 2004) , Конспекты лекций по информатике , том. 3142, Берлин: Springer-Verlag, стр. 222–233, MR 2160935 .
- ^ Габоу, Гарольд Н .; Ни, Шуксин (2008), «Поиск длинных путей, циклов и схем», Международный симпозиум по алгоритмам и вычислениям , Конспекты лекций по информатике, том. 5369, Берлин: Springer, стр. 752–763, doi : 10.1007/978-3-540-92182-0_66 , ISBN. 978-3-540-92181-3 , МР 2539968 . Более ранние работы с еще более слабыми границами аппроксимации см. Габоу, Гарольд Н. (2007), «Нахождение путей и циклов суперполилогарифмической длины» (PDF) , SIAM Journal on Computing , 36 (6): 1648–1671, doi : 10.1137/S0097539704445366 , MR 2299418 и Бьёрклунд, Андреас; Хусфельдт, Тор (2003), «Нахождение пути суперлогарифмической длины» , SIAM Journal on Computing , 32 (6): 1395–1402, doi : 10.1137/S0097539702416761 , MR 2034242 .
- ^ Каргер, Дэвид ; Мотвани, Раджив ; Рамкумар, GDS (1997), «Об аппроксимации самого длинного пути в графе», Algorithmica , 18 (1): 82–98, doi : 10.1007/BF02523689 , MR 1432030 , S2CID 3241830 .
- ^ Jump up to: а б Алон, Нога ; Юстер, Рафаэль; Цвик, Ури (1995), «Цветовое кодирование», Журнал ACM , 42 (4): 844–856, doi : 10.1145/210332.210337 , MR 1411787 , S2CID 208936467 .
- ^ Бодлендер, Ханс Л. (1993), «О второстепенных тестах линейного времени с поиском в глубину», Journal of Algorithms , 14 (1): 1–23, doi : 10.1006/jagm.1993.1001 , MR 1199244 . Более ранний алгоритм FPT с несколько лучшей зависимостью от длины пути, но худшей зависимостью от размера графа см. Мониен, Б. (1985), «Как эффективно находить длинные пути», Анализ и разработка алгоритмов для комбинаторных задач (Удине, 1982) , North-Holland Math. Студ., вып. 109, Амстердам: Северная Голландия, стр. 239–254, номер doi : 10.1016/S0304-0208(08)73110-4 , ISBN. 9780444876997 , МР 0808004 .
- ^ Чен, Цзянер; Лу, Сунцзянь; Сзе, Синг-Хой; Чжан, Фэнхуэй (2007), «Улучшенные алгоритмы для решения задач пути, сопоставления и упаковки», Proc. 18-й симпозиум ACM-SIAM по дискретным алгоритмам (SODA '07) (PDF) , стр. 298–307 .
- ^ Кутис, Иоаннис (2008), «Быстрые алгебраические алгоритмы для задач путей и упаковки», Международный коллоквиум по автоматам, языкам и программированию (PDF) , Конспекты лекций по информатике, том. 5125, Берлин: Springer, стр. 575–586, CiteSeerX 10.1.1.141.6899 , doi : 10.1007/978-3-540-70575-8_47 , ISBN 978-3-540-70574-1 , MR 2500302 , заархивировано из оригинала (PDF) 9 августа 2017 г. , получено 9 августа 2013 г.
- ^ Уильямс, Райан (2009), «Нахождение путей длины k в O * (2 к ) время», Information Processing Letters , 109 (6): 315–318, arXiv : 0807.3026 , doi : 10.1016/j.ipl.2008.11.004 , MR 2493730 , S2CID 10295448 .
- ^ Фомин Федор Владимирович; Головач Петр А.; Локштанов Даниил; Саураб, Сакет (2009), «Ширина клики: по цене общности», Proc. 20-й симпозиум ACM-SIAM по дискретным алгоритмам (SODA '09) (PDF) , стр. 825–834, заархивировано из оригинала (PDF) 18 октября 2012 г. , получено 1 декабря 2012 г.
- ^ Балтерман, Р.В.; ван дер Соммен, ФРВ; Лебедь, Г.; Верховев, Т.; ван Гастерен, AJM (2002), «О вычислении самого длинного пути в дереве», Information Processing Letters , 81 (2): 93–96, doi : 10.1016/S0020-0190(01)00198-3 .
- ^ Уэхара, Рюхей; Уно, Юши (2004), «Эффективные алгоритмы для решения задачи о наибольшем пути», Флейшер, Рудольф; Триппен, Герхард (ред.), «Алгоритмы и вычисления», 15-й Международный симпозиум, ISAAC 2004, Гонконг, Китай, 20–22 декабря 2004 г., Труды , конспекты лекций по информатике, том. 3341, Springer, стр. 871–883, doi : 10.1007/978-3-540-30551-4_74 , ISBN. 978-3-540-24131-7 .
- ^ Уэхара, Рюхей; Валиенте, Габриэль (2007), «Линейная структура двудольных графов перестановок и проблема наибольшего пути», Information Processing Letters , 103 (2): 71–77, CiteSeerX 10.1.1.101.96 , doi : 10.1016/j.ipl.2007.02 .010 .
- ^ Такахара, Ёсихиро; Терамото, Сачио; Уэхара, Рюхей (2008), «Задачи о наибольшем пути на графах Птолемея», IEICE Transactions , 91-D (2): 170–177, doi : 10.1093/ietisy/e91-d.2.170 .
- ^ Иоанниду, Кириаки; Мерциос, Джордж Б.; Николопулос, Ставрос Д. (2011), «Задача о наибольшем пути имеет полиномиальное решение на интервальных графах», Algorithmica , 61 (2): 320–341, CiteSeerX 10.1.1.224.4927 , doi : 10.1007/s00453-010-9411 -3 , S2CID 7577817 .
- ^ Мерциос, Джордж Б.; Безакова, Ивона (2014), «Вычисление и подсчет длиннейших путей на дуговых графах за полиномиальное время», Discrete Applied Mathematics , 164 (2): 383–399, CiteSeerX 10.1.1.224.779 , doi : 10.1016/j.dam .2012.08.024 .
- ^ Мерциос, Джордж Б.; Корнейл, Дерек Г. (2012), «Простой полиномиальный алгоритм для решения задачи о наибольшем пути на графах сосравнимости», SIAM Journal on Discrete Mathematics , 26 (3): 940–963, arXiv : 1004.4560 , doi : 10.1137/100793529 , S2CID 4645245 .
- ^ Корнейл, Дерек Г.; Крюгер, Ричард (2008), «Единый взгляд на поиск по графам», SIAM Journal on Discrete Mathematics , 22 (4): 1259–1276, doi : 10.1137/050623498 .
- ^ Иоанниду, Кириаки; Николопулос, Ставрос Д. (2011), «Задача о наибольшем пути является полиномиальной на графах сосравнимости» (PDF) , Algorithmica , 65 : 177–205, CiteSeerX 10.1.1.415.9996 , doi : 10.1007/s00453-011-9583-5 , S2CID 7271040 .
- ^ Эванс, Т.С.; Кальмон, Л.; Василяускайте, В. (2020), «Самый длинный путь в модели цен», Scientific Reports , 10 (1): 10503, arXiv : 1903.03667 , Bibcode : 2020NatSR..1010503E , doi : 10.1038/s41598-020-67421-8 , PMC 7324613 , PMID 32601403
Внешние ссылки [ править ]
- « Найди самый длинный путь », песня Дэна Барретта