C'è un grafico non orientato in cui a ogni nodo viene assegnato un colore. Devo trovare il percorso più breve da qualsiasi nodo di colore blu a qualsiasi nodo di colore rosso. (Altri colori possono anche esistere nel grafico e anche se non importa ma non si sa quanti colori ci sono.) Come posso farlo in tempo polinomiale?Trovare il percorso più breve tra due nodi appartenenti a due sottoinsiemi disgiunti di un grafico
Trovare il percorso più breve tra due nodi appartenenti a due sottoinsiemi disgiunti di un grafico
risposta
Come suggerimento, aggiungi due nuovi nodi al grafico: chiamali s e t. Collega s a ciascun nodo blu con un limite di costo 0 e ogni nodo rosso a t con un limite di costo 0. Quindi trova il percorso più breve da s a t.
Spero che questo aiuti!
grazie, questa è davvero la soluzione. – anirudh
Polinomiale per aggiungere i nodi s e t e per trovare il percorso più breve tra di essi (ad esempio con Dijkstra), così è polinomiale. – pvoosten
@lbp Ci sono molti modi semplici per risolverlo in tempo polinomiale, si potrebbe fare Floyd-Warshall e trovare la coppia (blu, rossa) con una distanza minima. Potresti fare Dijkstra | red | * | blu | tempi, molto inefficienza, e ancora essere polinomiale. Ma questa risposta fornisce un modo efficace, non solo polinomiale. – sdcvvc
- 1. Il modo migliore per trovare un percorso più breve tra due nodi in Tinkerpop 3.1
- 2. Come trovare il percorso più lungo in un grafico ciclico tra due nodi?
- 3. Modifica dell'algoritmo di Dijkstra per ottenere il percorso più breve tra due nodi
- 4. Trovare il percorso più breve con FGL
- 5. Algoritmo per trovare il percorso che minimizza il peso massimo tra due nodi
- 6. Il percorso più breve per visitare tutti i nodi
- 7. Come calcolare il percorso più breve tra due punti in una griglia
- 8. Ottieni tutti gli itinerari tra due nodi neo4j
- 9. Disegno di più spigoli tra due nodi con retex
- 10. Come trovare il percorso più breve in un grafico ponderato usando networkx?
- 11. Come trovare il percorso più breve con il numero minimo di hop in Neo4j?
- 12. Come ottenere il percorso più breve tra due punti in google maps
- 13. API MAP Google: come tracciare il percorso aereo più breve tra due punti geografici?
- 14. Trovare il percorso più breve usando l'algoritmo Dijkstra
- 15. modo efficiente per trovare gradi di separazione tra i due nodi di un grafo
- 16. Quale algoritmo posso utilizzare per trovare il percorso più breve tra i tipi di nodo specificati in un grafico?
- 17. : percorso più breve tra tutti i punti
- 18. Come determinare se due nodi sono connessi?
- 19. Calcolare il percorso più breve attraverso un negozio di alimentari
- 20. Determina la distanza tra due nodi casuali in un albero
- 21. MySQL trovare il modo di più sottoinsiemi
- 22. Trovare il percorso ciclabile minimo in un grafico diretto dinamicamente
- 23. Differenza dei nodi tra due percorsi
- 24. Percorso più breve con numero pari di spigoli
- 25. Animazione tra due forme di percorso Bezier
- 26. Ricerca di un algoritmo veloce per trovare la distanza tra due nodi nell'albero binario
- 27. a due, perché il nome di "due"
- 28. Percorso più corto a una via attraverso più nodi
- 29. Ottimizzazione dell'algoritmo: percorso più breve tra più punti
- 30. Algoritmo molto veloce per tutti i percorsi tra due nodi
Sono sicuro che l'algoritmo di Dijkstra può essere utilizzato in qualche modo per risolvere questo problema, ma non sono stato in grado di capire come. – anirudh