Le gusta la estrategia codiciosa.Mi inglés no es bueno.Traduce por google.Si no entiende, lo siento mucho.
Algoritmo de Dijkstra, una G de S a todos los vértices de la longitud del camino más corto. Suponemos que a cada vértice de G en V se le ha dado una bandera L (V), o es un número, ya sea ∞. Supongamos que P es el conjunto de vértices de G, P contiene S, para satisfacer:
A) Si V es P, entonces L (V) desde VS a la longitud de la ruta más corta, y la existencia de tal V de S a la ruta más corta: ruta en los vértices en P en
B) Si V no pertenece a P, entonces L (V) de S a V cumple las siguientes restricciones sobre la longitud de la ruta más corta: V es la única ruta P no pertenece al vértice.
Podemos utilizar la inducción para demostrar algoritmo P Dijkstra en línea con la definición anterior de la colección:
1) Cuando el número de elementos de P = 1, P corresponde a la primera etapa en el algoritmo, P = (S), está claramente satisfecho.
2) P Supongamos que es k, el número de elementos, P satisface la definición anterior, véase el algoritmo por debajo de la tercera etapa
3) P en y la primera para averiguar no está marcado con el vértice mínimo U, marcado como L (U), se puede probar de S a U de U fuera del camino más corto, además de que P no contiene los elementos que no pertenecen.
Porque si hay fuera de los otros vértices excepto U, entonces el camino más corto a S, P1, P2 ... Pn, Q1, Q2 ... Qn, U (P1, P2 ... Pn es P; Q1, Q2, ... Qn no pertenece a P), de la naturaleza de B) la longitud de camino más corta L (Q1) + RUTA (Q1, U)> L (U).
Que es mayor que S, P1, P2 ... Pn, U de la longitud del canal L (U), no es la ruta más corta. Por lo tanto, desde el S hasta la U de U fuera del camino más corto, además de que P no contiene los elementos, no pertenece a U desde S hasta la longitud del camino más corto desde donde se da L (U).
U se agrega a P en la forma P ', claramente P' para cumplir con la naturaleza de A).
Take V no pertenece a P ', obviamente no pertenece a VP, luego de S a V excepto el camino más corto y cumple todos los vértices fuera de V en P' en el camino hay dos posibilidades, i) contiene U, ii) no contiene U.
En i) S, P1, P2 ... Pn, U, V = L (U) + W (U, V)
ii) S, P1 , P2 ... Pn, V = L (V)
Obviamente, los dos se dan en la V más pequeña de S para cumplir con el acceso mínimo y la adición externa a todos los vértices son de longitud VP '.
El tercer paso para el algoritmo dado en P 'con k +1 elementos y cumple con A), B).
Por la proposición de inducción puede permitir.
Aquí está the source.
@APC - Gracias por el enlace. Según esa entrada de la wiki, elegir el vértice más pequeño hace que Dijkstra sea "codicioso". Supongo que ahora necesito buscar los beneficios de un algoritmo codicioso. – BeeBand
@BeeBand, el término "codicioso" simplemente significa que es la mejor opción en el momento actual. La codicia tiende a ser bastante intuitiva y simple de implementar, pero no siempre es óptima (en este caso, sí lo es). –
Prueba el libro de Cormen para obtener una mejor explicación sobre "por qué" el algoritmo codicioso es adecuado ... –