Percorso unico in un grafico diretto


9

Sto progettando un algoritmo per una classe che determinerà se un grafico diretto è univoco rispetto a un vertice tale che per qualsiasi esiste al massimo un percorso da a . Ho iniziato usando BFS (breadth-first search) per trovare il percorso più breve da v a un altro vertice u, e quindi eseguendo nuovamente BFS per vedere se è possibile trovare un percorso alternativo da v a u. Penso che ciò richieda troppo tempo. Qualcuno ha qualche suggerimento su come trovare la soluzione con tempi di esecuzione più brevi?vuvvu

Risposte:


9

Usa BFS per lavorare all'indietro da v, contrassegnando ogni vertice come "visitato" mentre procedi. Se hai mai colpito un vertice che hai visitato in precedenza, il tuo grafico non ha la proprietà di unicità. Altrimenti, lo fa.



2

È una semplice modifica di qualsiasi attraversamento di grafici: se trovi un bordo su un nodo precedentemente contrassegnato, allora hai più percorsi.

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.