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

18

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

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

Райан
источник
2
Об этом уже спрашивали на mathoverflow: mathoverflow.net/questions/18603/…
Листинг
5
На самом деле вопрос в mathoverflow был о том, чтобы найти все пути, а не считать их. Найти их может быть намного сложнее.
DCTLib
1
Помимо ссылок, которые даны в ответах, одно тривиальное наблюдение состоит в том, что если можно сосчитать число путей длины n1 то можно ответить на вопрос о существовании гамильтонова пути. Так что скорее всего это не П.
Саид

Ответы:

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)GGN=ncn=|V|c1G(N!)GG гамильтонов путь, будет не менее ( N ! ) n или около того простых s - t путей в G , а в остальном самое большее что-то вроде ( n - 1 ) ! ( N ! ) N - 1 простых s - t путей. Таким образом, это должно быть трудно приблизительно с коэффициентом N ! / ( n - 1 ) ! n c -st(N!)nstG(n1)!(N!)n1st, N!/(n1)!nc1!
Нил Янг
6

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

RB
источник