Подсчет количества простых путей в неориентированном графе


18

Как я могу определить количество уникальных простых путей в неориентированном графе? Либо для определенной длины, либо диапазона приемлемых длин.

Напомним, что простой путь - это путь без циклов, поэтому я говорю о подсчете количества путей без циклов.


2
Об этом уже спрашивали на mathoverflow: mathoverflow.net/questions/18603/…
— Листинг

5
На самом деле вопрос в mathoverflow был о том, чтобы найти все пути, а не считать их. Найти их может быть намного сложнее.
— DCTLib

1
Помимо ссылок, которые даны в ответах, одно тривиальное наблюдение состоит в том, что если можно сосчитать число путей длины n−1 то можно ответить на вопрос о существовании гамильтонова пути. Так что скорее всего это не П.
— Саид

Ответы:


20

Есть несколько алгоритмов, которые подсчитывают простые пути длины за время f ( k ) n k / 2 + O ( 1 ) , что намного лучше, чем время грубой силы ( O ( n k ) ). Смотри, например, Vassilevska and Williams, 2009 .kf(k)nk/2+O(1)O(nk)


18

Это # P-complete (Valiant, 1979), так что вы вряд ли будете делать намного лучше, чем грубая сила, если вам нужен точный ответ. Аппроксимации обсуждаются Roberts and Kroese (2007).


Б. Робертс и Д. П. Кроуз, " Оценка числа - t путей в графеst ". Журнал графовых алгоритмов и приложений , 11 (1): 195-214, 2007.

Валиант Л.Г. « Сложность перечисления и проблемы надежности ». Журнал SIAM по вычислительной технике 8 (3): 410-421, 1979.


4
Бумага Робертса и Кроуса, похоже, не дает гарантий приближения. Есть PTAS, известный для этой проблемы?
— Сашо Николов

3
@SashoNikolov, кажется маловероятным, что существует какой-либо разумный алгоритм приближения. Учитывая получает G ' из G замены каждого узла клики размера N = п с , где п = | V | и c ≫ 1 . Для каждого простого пути длины ℓ в G существует примерно ( N ! ) ℓ путей в G ′ . Так что, если G имеетG=(V,E)G′GN=ncn=|V|c≫1ℓG(N!)ℓG′G гамильтонов путь, будет не менее ( N ! ) n или около того простых s - t путей в G ′ , а в остальном самое большее что-то вроде ( n - 1 ) ! ( N ! ) N - 1 простых s - t путей. Таким образом, это должно быть трудно приблизительно с коэффициентом N ! / ( n - 1 ) ! ≫ n c -s−t(N!)ns−tG′(n−1)!(N!)n−1s−t, N!/(n−1)!≫nc−1!
— Нил Янг

6

Я хотел бы добавить другой алгоритм аппроксимации, параметризованный: для фиксированного (или, что более точно, δ = Ω ( 1)δ>0), можно вычислитьс(1+& delta)-аппроксимации числа простых путей, в любом неориентированного или ориентированного графа, длиныквременивывода*(2O(K)).δ=Ω(1poly(k))(1+δ)kO∗(2O(k))

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.