Sto pensando un algoritmo per risolvere il problema di seguito:Come posso trovare un modo per ridurre al minimo il numero di spigoli?
Un dato grafo composta da vertici e spigoli.
Ci sono clienti N che desiderano viaggiare da un vertice a un altro vertice. E ogni requisito del cliente necessita di uno spigolo diretto per collegare due vertici.
Il problema è come trovare il numero minimo di spigoli per soddisfare tutte le esigenze dei clienti?
C'è un semplice esempio:
- clienti 1 vuole viaggiare da vertice A al vertice B.
- Il cliente 2 vuole spostarsi dal vertice b al vertice c.
- Il cliente 3 vuole spostarsi dal vertice al vertice c.
Il modo più semplice è quello di dare un vantaggio per l'ogni clienti:
- bordo 1: vertice a -> vertice b
- bordo 2: vertice b -> vertice c
- bordo 3 : vertice a -> vertice c
Ma in realtà servono solo 2 spigoli (ad es. spigolo 1 e spigolo 2) per soddisfare le tre esigenze del cliente.
Se il numero clienti è grande, come trovare i bordi minimi per soddisfare tutte le esigenze del cliente?
Esiste un algoritmo per risolvere questo problema?
Sì, ogni vantaggio nel grafico è diretto bordo! Per colpa mia, devo sottolineare che il grafico dato è un grafico diretto. –
Questo è un problema di riduzione transitoria. http://en.wikipedia.org/wiki/Transitive_reduction –
Sono abbastanza sicuro che intendi "E ogni requisito del cliente ha bisogno di un ** percorso ** diretto per connettere due vertici." Se intendevi veramente "edge diretto", il problema è banale e la risposta al tuo problema di esempio richiede tutti e 3 gli spigoli. –