Encontrar el camino desde un vértice hasta el resto usando BFS

Dada una representación de lista de adyacencia de un gráfico dirigido, la tarea es encontrar la ruta desde el origen hasta todos los demás Nodes del gráfico usando BFS . Ejemplos:   Input: Output: 0 <- 2 1 <- 0 <- 2 2 3 <- 1 <- 0 <- 2 4 <- 5 <- 2 5 … Continue reading «Encontrar el camino desde un vértice hasta el resto usando BFS»

Algoritmo de Bellman-Ford | DP-23

Dado un gráfico y un vértice de origen src en el gráfico, encuentre las rutas más cortas desde src a todos los vértices en el gráfico dado. El gráfico puede contener bordes de peso negativos.  Hemos discutido el algoritmo de Dijkstra para este problema. El algoritmo de Dijkstra es un algoritmo Greedy y la complejidad … Continue reading «Algoritmo de Bellman-Ford | DP-23»

Suma de todos los pares de caminos más cortos en un árbol

Dado un grafo no dirigido ponderado T que consta de Nodes valorados [0, N – 1] y una array Edges[][3] de tipo { u , v , w } que denota un borde entre los vértices u y v que tiene un peso w . La tarea es encontrar la suma de todos los pares … Continue reading «Suma de todos los pares de caminos más cortos en un árbol»

La distancia más corta entre dos Nodes en Graph al reducir el peso de un borde a la mitad

Dado un gráfico no dirigido ponderado que consta de N Nodes y M aristas, la tarea es encontrar la distancia más corta entre dos Nodes A y B reduciendo el peso de una arista a la mitad. Ejemplos: Entrada: A = 0, B = 2, a continuación se muestra el gráfico Salida: 8 Explicación: Después … Continue reading «La distancia más corta entre dos Nodes en Graph al reducir el peso de un borde a la mitad»

Búsqueda de costo uniforme (Dijkstra para gráficos grandes)

Uniform-Cost Search es una variante del algoritmo de Dijikstra . Aquí, en lugar de insertar todos los vértices en una cola de prioridad, insertamos solo la fuente, luego insertamos uno por uno cuando sea necesario. En cada paso, verificamos si el elemento ya está en la cola de prioridad (usando la array visitada). En caso … Continue reading «Búsqueda de costo uniforme (Dijkstra para gráficos grandes)»

Distancia más corta entre dos celdas en una array o cuadrícula

Dada una array de orden N*M. Encuentre la distancia más corta desde una celda de origen hasta una celda de destino, atravesando solo celdas limitadas. También puedes moverte solo hacia arriba, abajo, izquierda y derecha. Si se encuentra, emite la distancia más -1. s representa ‘fuente’  d representa ‘destino’  * representa celda por la que puede … Continue reading «Distancia más corta entre dos celdas en una array o cuadrícula»

Algoritmo de Floyd Warshall | DP-16

  El algoritmo de Floyd Warshall es para resolver el problema de la ruta más corta de todos los pares. El problema es encontrar las distancias más cortas entre cada par de vértices en un gráfico dirigido ponderado de borde dado. Ejemplo:  Input: graph[][] = { {0, 5, INF, 10}, {INF, 0, 3, INF}, {INF, INF, … Continue reading «Algoritmo de Floyd Warshall | DP-16»

La ruta monótona más corta desde el origen hasta el destino en el gráfico ponderado dirigido

Dado un gráfico dirigido ponderado con N vértices y M aristas, un origen src y un destino objetivo , la tarea es encontrar el camino monótono más corto (monótonamente creciente o decreciente) desde el origen hasta el destino. Salida -1 si no es posible una ruta monotónica. Nota: Todos los pesos son no negativos Ejemplos: … Continue reading «La ruta monótona más corta desde el origen hasta el destino en el gráfico ponderado dirigido»

Algoritmo de ruta más corta de Dijkstra en Java usando PriorityQueue

El algoritmo de Dijkstra es muy similar al algoritmo de Prim para el árbol de expansión mínimo . Al igual que el MST de Prim, generamos un SPT (árbol de ruta más corta) con una fuente determinada como raíz. Mantenemos dos conjuntos, un conjunto contiene vértices incluidos en el árbol de ruta más corta, otro … Continue reading «Algoritmo de ruta más corta de Dijkstra en Java usando PriorityQueue»

¿Por qué falla el algoritmo de Dijkstra en pesos negativos?

Algoritmo de Dijkstra : es un algoritmo de búsqueda de gráficos que utiliza un enfoque codicioso para encontrar la ruta más corta desde el Node de origen hasta todos los demás Nodes restantes . Resuelve el problema de la ruta más corta de fuente única para un gráfico ponderado. Este algoritmo realiza un seguimiento de … Continue reading «¿Por qué falla el algoritmo de Dijkstra en pesos negativos?»