Complessità di connettività st unica


11

Vorrei sapere se il seguente problema può essere deciso in (spazio di registro non deterministico):NL

Dato un grafico diretto con due vertici distinti s e t , esiste un percorso unico da s a t in G ?GststG

Sento che è probabile che si trovi in poiché possiamo decidere sia se esiste un percorso S - T che se non esiste tale percorso. Tuttavia, contare il numero di tali percorsi è P -hard (Valiant, 1979).NLstP

Quindi le mie domande: hai riferimenti a riguardo? È ovvio che si trova in ? O che non è in N L ?NLNL


5
Intendi percorsi semplici? Non è chiaro è lo stesso in questo contesto.
Lance Fortnow,

1
Buon punto, intendo davvero percorsi semplici.
Bruno,

Risposte:


16

Sembra che il problema è in . Ecco un algoritmo.NL

In primo luogo, indeterminatamente indovinare un percorso da a t . Se indovini in modo errato, rifiuta . Chiamare questo algoritmo A .stA

Si consideri il seguente algoritmo non deterministico , che determina se esistono almeno due percorsi. Dato un grafico e s , t , per tutte le coppie di bordi distinti e , f , indovina un percorso da s a t che include e ma non f , quindi indovina un percorso da s a t che include f ma non e . Se le ipotesi sono corrette, accetta . Se non si verifica alcuna accettazione per tutte le scelte di e ed f , rifiutare . Nota BBs,te,fstefstfeefB è implementabile in uno spazio log non deterministico.

Ora, l'insieme è l'insieme di grafici s - t con almeno due percorsi da s a t . Poiché N L = c o N L , il complemento di B è anche in N L , vale a dire, possiamo determinare se s e t hanno meno di due percorsi, nello spazio log non deterministico.L(B)ststNL=coNLBNLst

L'algoritmo finale è: "Esegui Se A accetta, esegui il complemento di B e invia la sua risposta."AAB

Non conosco un riferimento.

AGGIORNAMENTO: Se vuoi davvero un riferimento, dai un'occhiata al primo paragrafo della Sezione 3 di questo documento . Ma questo è probabilmente solo uno dei tanti riferimenti che citano questa conseguenza. Sarebbe più ragionevole chiamare il risultato "folklore" piuttosto che citare un articolo che sembra menzionarlo.

AGGIORNAMENTO 2: Supponiamo che tu voglia determinare se esiste un percorso semplice univoco. In tal caso, l'algoritmo non deve cambiare: se esiste un percorso, esiste un percorso semplice. Credo che la seguente modifica lavorerà per l'algoritmo B .AB

Vogliamo riscrivere l'algoritmo modo che accetti se ci sono almeno due percorsi semplici.B

PstePstePPP. (Questo algoritmo viene utilizzato per il problema "secondi percorsi più brevi".)

NLNLePePste

NLi=1,,nistNL=coNL

Ecco uno schizzo dell'oracolo del percorso.

kstk=1,,nNL=coNL

u:=sx:=1j:=k

vu

vtj1NL=coNLstj1

Se non è presente alcun percorso, passare al vicino successivo. Se hai esaurito tutti i vicini, respingi .

x=i(u,v)istxju:=vvt

x<itii

iiPst


Ho pensato a qualcosa di simile ma usa uno spazio lineare. Grazie per la tua risposta!
Bruno,

5
NLNC2

2
Sì, come ho detto sopra, l'algoritmo non distingue tra percorsi semplici e percorsi con cicli.
Ryan Williams,

1
P

1
A proposito, il commento di Allender & Lange è sufficiente per concludere direttamente.
Bruno,
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.