/ / Algoritmo efficiente che decide se uno spigolo appartiene ad un certo ciclo: algoritmo, grafico, profondità-prima-ricerca, larghezza-prima-ricerca

Algoritmo efficiente che decide se uno spigolo appartiene ad un certo ciclo: algoritmo, grafico, profondità-prima-ricerca, larghezza-prima-ricerca

Sto cercando di strutturare un algoritmo efficientegrafico non orientato e bordo e (u, v) e decide se il bordo appartiene ad un ciclo nel grafico, ma non tutti i cicli! Il mio approccio è quello di eliminare il bordo (u, v) dal grafico ed eseguire BFS per vedere se v è ancora raggiungibile da u. Se sì, il grafico originale ha un ciclo contenente e, altrimenti non esiste. Ma non sono così sicuro di come modificare l'algoritmo che deciderà se il bordo non appartiene a tutti i cicli del grafico.

risposte:

1 per risposta № 1

Un grafico non orientato può contenere un bordo che appartiene a tutti i suoi cicli grafici solo se questo grafico ha un singolo ciclo.

Vediamo un esempio: Edge (2,3) appartiene a due cicli, ma puoi sempre trovare un terzo ciclo a cui un tale spigolo non appartiene.

Grafico con cicli 125, 12345

Dopo aver controllato che il bordo appartenga aalcuni cicli, è possibile verificare se questo è l'unico ciclo nel grafico rimuovendo questo bordo e controllando se il grafico ridotto ha alcun ciclo. Grazie a @nomanpouigt per averlo indicato.