¿Pueden los pesos de Bellman-Ford ser funciones y no constantes?

“La variable es el tiempo”.

Entonces depende de qué función sean en realidad. Si desea arbitrarias, no puede esperar la solución exacta independientemente de si piensa en Bellman-Ford u otros algoritmos para los caminos más cortos: si tiene un gráfico de 2 vértices y 1 borde con peso f (t), encontrar la ruta más corta significa encontrar un mínimo de la función f (t) + t, que puede no ser factible (por ejemplo, si no puede calcular la derivada) o puede tener una muy mala complejidad (si (f (t) + t) ‘tiene muchos valores 0). Entonces, si no asume nada sobre las funciones o si ni siquiera conoce su fórmula completa y solo puede en la práctica calcularlas experimentalmente, lo mejor que puede hacer es encontrar numéricamente algunos candidatos para el mínimo, pero luego todos Los errores del algoritmo residen en las técnicas numéricas, no en el propio Bellman-Ford.

Si es fácil trabajar con sus funciones para que pueda calcular rápidamente un mínimo de f (t) + t en intervalos [x, inf), o si no lo son, pero está de acuerdo con aceptar los errores al calcularlo, entonces hay no hay problema con el uso de Bellman-Ford (o Dijkstra si las funciones son positivas) para el trabajo. Lo único que es importante en la prueba de B-F es que después de la iteración i-ésima, cada nodo tiene la ruta más corta calculada correctamente si esta ruta más corta no tiene más de i bordes. No se viola si decide cambiar el peso con el tiempo: solo hace una relajación del borde (u, v), así que lo que tiene es dist (u), el momento más temprano en el que podría haber llegado a u, dist (v ): El momento más temprano en que podría haber llegado a v, y lo que desea calcular es si ir a u y luego usar (u, v) no mejorará dist (v). Por lo tanto, solo necesita encontrar cuál es el momento óptimo para usar este borde si llega a usted en el momento dist (u), es decir, necesita un mínimo de peso (t) + t en el intervalo [dist (u), inf). La prueba seguirá en pie, si el camino más corto real hacia u tiene i bordes, después de la i-ésima iteración tendrá el valor correcto, por lo que la iteración i + 1-ésima analizará correctamente el uso potencial del borde (u, v ): verificará cuál es el momento más temprano posible para llegar a v si comienza en dist (u) y asumimos que dist (u) es el momento más temprano posible que puede llegar a usted, por lo que calcula el resultado correcto para “what es el momento más temprano que puedes llegar a v si (u, v) es tu última ventaja ”.

More Interesting

¿Cómo funcionan los algoritmos de procesamiento de cadenas en CUDA?

Dado un laberinto cuadrado, cada entrada en el laberinto es una celda abierta 'O' o una pared 'X'. Una rata puede viajar a sus ubicaciones adyacentes (izquierda, derecha, arriba y abajo), pero para llegar a una celda, debe estar abierta. Dadas las ubicaciones de las ratas, ¿puedes averiguar si todas las ratas pueden alcanzar a las demás?

¿Qué tan preciso es el algoritmo de predicción de personalidad de Faception?

¿Cómo mejorarías el algoritmo de autocorrección?

¿Cuáles son los algoritmos y las estructuras de datos que tengo que aprender para competir en Google Code Jam?

¿Cuántas permutaciones se pueden generar a partir de '10011111111'? Cual es la formula?

¿Dejarías que los algoritmos se intercambiaran por ti cuando estés en el trabajo?

Con la complejidad de O (n) u O (1) u O (log n), ¿cómo encuentro cuándo se romperá una bola rompible cuando se lance desde un piso de un edificio que tiene más de 100 pisos?

¿Alguien podría dar una explicación detallada del algoritmo de Lee para encontrar contornos cercanos en una región?

Cómo implementar un árbol binario en Python

¿Cuál es el mejor lenguaje para implementar estructuras y algoritmos de datos fundamentales?

¿Es malo si no entiendo un algoritmo? He estado tratando de entender algunos algoritmos (los recursivos en su mayoría), entiendo la mayoría de ellos, pero no pude entender algunos.

¿Es necesario aprender matemáticas discretas antes de comenzar a aprender la estructura de datos y el algoritmo? ¿Y cuál será el mejor libro para hacer lo mismo?

¿Qué árbol captura más CO2, un árbol completamente maduro o un árbol joven de rápido crecimiento?

¿Por qué me cuesta entender la recursividad?