Cómo demostrar que el algoritmo de búsqueda uniforme de costos siempre genera una ruta óptima

La prueba es por inducción en el número de nodos visitados.

Hipótesis invariante : para cada nodo visitado u, dist [u] es la distancia más corta desde la fuente hasta u; y para cada v no visitado, dist [v] es la distancia más corta a través de los nodos visitados solo desde la fuente a v (si existe tal ruta, de lo contrario infinito; tenga en cuenta que no asumimos que dist [v] es la distancia más corta real para no visitado nodos)

El caso base es cuando solo hay un nodo visitado, es decir, el origen del nodo inicial, y la hipótesis es trivial.

Suponga la hipótesis para n-1 visitó nodos. Ahora elegimos un borde uv donde v tiene la menor dist [v] de cualquier nodo no visitado y el borde uv es tal que dist [v] = dist [u] + longitud [u, v]. dist [v] debe ser la distancia más corta desde la fuente hasta v porque si hubiera una ruta más corta, y si w fuera el primer nodo no visitado en esa ruta, entonces por hipótesis dist [w]> dist [v] crea una contradicción. Del mismo modo, si hubiera una ruta más corta hacia v sin usar nodos no visitados, dist [v] habría sido menor que dist [u] + longitud [u, v].

Después de procesar v, seguirá siendo cierto que para cada nodo no visitado w, dist [w] es la distancia más corta desde la fuente hasta w utilizando solo los nodos visitados, ya que si hubiera una ruta más corta que no visite v la habríamos encontrado anteriormente, y si hay una ruta más corta usando v, la actualizamos al procesar v.