Algoritmo BellmanFordConPesosNegativos
Función BellmanFord(grafo, nodoInicial)
// Inicializar distancias
Para cada nodo en grafo
distancia[nodo] = INFINITO
Fin Para
distancia[nodoInicial] = 0
// Relajación de aristas repetida V-1 veces
Para i = 1 Hasta V - 1 // V es el número de nodos en el grafo
Para cada arista (u, v, peso) en grafo
Si distancia[u] + peso < distancia[v] entonces
distancia[v] = distancia[u] + peso
Fin Si
Fin Para
Fin Para
// Verificar ciclos de peso negativo
Para cada arista (u, v, peso) en grafo
Si distancia[u] + peso < distancia[v] entonces
Escribir "El grafo contiene un ciclo de peso negativo"
Retornar
Fin Si
Fin Para
Retornar distancia
Fin Función
Fin Algoritmo