Conteggio del numero di percorsi semplici nel grafico non indirizzato


18

Come posso determinare il numero di percorsi semplici unici all'interno di un grafico non indirizzato? O per una certa lunghezza o un intervallo di lunghezze accettabili.

Ricorda che un percorso semplice è un percorso senza cicli, quindi sto parlando del conteggio del numero di percorsi senza ciclo.


2
Questo è già stato chiesto su mathoverflow: mathoverflow.net/questions/18603/…
Elenco

5
In realtà, la domanda su mathoverflow era di trovare tutti i percorsi e non contarli. Trovarli può essere molto più difficile.
DCTLib

1
Oltre ai riferimenti forniti nelle risposte, un'osservazione banale è che se si può contare il numero di percorsi di lunghezza si può rispondere alla domanda di esistenza di un percorso hamiltoniano. Quindi molto probabilmente non è P.n1
Saeed il

Risposte:


20

Esistono diversi algoritmi che contano i semplici percorsi di lunghezza nel tempo f ( k ) n k / 2 + O ( 1 ) , che è molto meglio del tempo della forza bruta ( O ( n k ) ). Vedi ad esempio Vassilevska e Williams, 2009 .kf(k)nk/2+O(1)O(nk)


18

È # P-complete (Valiant, 1979), quindi è improbabile che tu faccia molto meglio della forza bruta, se vuoi la risposta esatta. Le approssimazioni sono discusse da Roberts e Kroese (2007).


B. Roberts e DP Kroese, " Stima del numero di percorsi - t in un graficost ". Journal of Graph Algorithms and Applications , 11 (1): 195-214, 2007.

LG Valiant, " La complessità dei problemi di enumerazione e affidabilità ". SIAM Journal on Computing 8 (3): 410-421, 1979.


4
Il documento di Roberts e Kroese non sembra dare garanzie di approssimazione. Esiste un PTAS noto per questo problema?
Sasho Nikolov,

3
@SashoNikolov, sembra improbabile che esista un algoritmo di approssimazione ragionevole. Dato ottenere G da G sostituendo ciascun nodo con una cricca di dimensione N = n c dove n = | V | e c » 1 . Per ogni semplice percorso di lunghezza in G ci sono approssimativamente ( N ! ) percorsi in G . Quindi se G ha unG=(V,E)GGN=ncn=|V|c1G(N!)GG percorso hamiltoniano, ci saranno almeno ( N ! ) n o così semplicipercorsi s - t in G , e altrimenti al massimo qualcosa come ( n - 1 ) ! ( N ! ) N - 1 semplicipercorsi s - t . Quindi dovrebbe essere difficile approssimare entro un fattore di circa N ! / ( n - 1 ) ! n c -st(N!)nstG(n1)!(N!)n1st. N!/(n1)!nc1!
Neal Young,

6

Vorrei aggiungere un altro algoritmo di approssimazione, uno parametrizzato: per un fisso > 0 (o più precariamente, δ = Ω ( 1δ>0), si può calcolareun(1+δ)-approximation del numero di percorsi semplici, sia grafo non orientato o diretto, di lunghezzaknel tempoO*(2O(k)).δ=Ω(1poly(k))(1+δ)kO(2O(k))

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.