Discussione: Trovare cicli
View Single Post
Old 12-01-2007, 14:40   #2
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da f0/\/2!3
Salve,
ho un problema che ha a che fare con un grafo direzionato.

Dovrei trovare tutti i cicli al suo interno e per ogni ciclo eventualmente identificarlo univocamente così da permettermi di svolgere dei calcoli basandomi sulle label degli archi che compongono il ciclo.

Ho sentito che può essere un problema facilmente esponenziale e ciò non posso permettermelo...

(Il tutto andrà implementato in java...)

COME FARE???
Se per ciclo intendi un ciclo semplice, cioè dove solo i vertici iniziale e finale sono uguali, allora un'idea è utilizzare un algoritmo DFS , durante il quale puoi accorgerti se stai visitando un nodo già visitato in precedenza, e marcare il cammino effettuato come ciclo. Questo tipo di algoritmo dovrebbe essere lineare, O(|V| + |A|).
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso