SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Por Rey Salcedo; email resalpa84@gmail.com

     DIJKSTRA EL CAMINO MAS CORTO                           cambiamos   de   color   para   indicar   que   ya   lo 
                                                            usamos,  quedando según la siguiente figura.
Basicamente podemos decir que el algoritmo de 
dijkstra nos permite determinar dado dos nodos 
de un grafo la ruta mas corta que los une.

Por decirlo de alguna manera, voy a explicar de 
manera grafica y paso a paso como determinar 
dicha ruta mas corta, esto gracias a éste metodo 
didactico y facil de comprender y que pretendo 
que ustedes aprendan y asi puedan generar su 
propio algoritmo de dijkstra.

Antes   de   empezar   pensemos   que   nuestros 
nodos   pueden   tener   dos   propiedades 
acumuladoPeso y otro llamando nodoAntecesor, 
                                                  (Segunda   iteracion)  Marcamos   los   nodos 
el manejo de estas variables las aprenderemos 
                                                  adyacentes de A, inicializando sus variables de 
en la medida que las vallamos usandolas.
                                                  la siguiente forma:
Para   efectos   de   esta   explicacion   usaremos   el 
                                                          acumuladoPeso   =   [acumuladoPeso   del   nodo  
grafo de la siguiente figura:
                                                          antecesor (en este caso el de A)] + peso de la  
                                                          arista que los une;

                                                            nodoAntecesor = el nombre del nodo antecesor;

                                                            Asi para B:
                                                            acumuladoPeso = 0 + 6 = 6;
                                                            nodoAntecesor = A;

                                                            Para D:
                                                            acumuladoPeso = 0 + 5 = 5;
                                                            nodoAntecesor = A;

                                                            Para G:
                                                            acumuladoPeso = 0 + 8 = 8;
                                                            nodoAntecesor = A;
(Primera iteracion)  Escogemos un nodo inicio, 
en   este   caso   usaremos   el   nodo   A,   e 
                                                   Quedando según la siguiente figura:
inicializamos sus variables de la siguiente forma:

acumuladoPeso = 0;
nodoAntecesor = nulo;

Al   ser   nuestro   nodo   inicio,   no   tiene   pesos 
acumulados   ni   nodo   antecesor,   ademas   lo 
Por Rey Salcedo; email resalpa84@gmail.com

                                                                de color verde. (ver como este paso es analogo 
                                                                la iteracion 2)

                                                                Para este caso los nodos adyacentes de D no 
                                                                usados son: C, E, H, B; inicializamos los valores 
                                                                de nuestros nodos adyancentes asi:

                                                                Para C:
                                                                acumuladoPeso = 5 + 4 = 9;
                                                                nodoAntecesor = D;

                                                                Para E:
                                                                acumuladoPeso = 5 + 6 = 11;
                                                                nodoAntecesor = D;
(Tercera   iteracion)  Localizamos   de   los   nodos 
                                                                Para H:
visitados   y   que   no   esta   marcado   con   el   color 
                                                                acumuladoPeso = 5 + 3 = 8;
verde   y   que   tenga   menor   peso   acumulado 
                                                                nodoAntecesor = D;
(acumuladoPeso), en  caso  que  tengamos mas 
de   uno   con   la   caracteristica   antes   descritas 
                                                Para B:
estamos el la libertad de escoger cualquiera de 
                                                Como el nodo B ya esta marcado (por el nodo 
estos, una vez localizado lo marcamos de color 
                                                A), primero calculamos el  peso acumulado asi:
verde.
                                                acumuladoPeso = 5 + 1 = 6; 
                                                como   el  nuevo  acumuladoPeso  no  generar   un 
Para nuestro caso el nodo a escoger es el D ya 
                                                valor mas pequeño del que ya estaba , es decir 
que su peso acumulado es el menor de todos 
                                                no lo mejora, el nodo B no lo modificamos.
con 5, quedando según la siguiente figura:
                                                                Recordemos   que   el   numero   5   corresponde   al  
                                                                acumuladoPeso del nodo antecesor.

                                                                Quedando según la siguiente figura:




(Cuarta iteracion) Nos ubicamos en el nodo D, 
el   cual   escogimos   en   el   paso   anterior   y 
marcamos   sus   nodos   adyacentes   siempre   y 
cuando no lo hallamos usado, es decir no este 
                                                                (Quinta   iteracion)  Localizamos   de   los   nodos 
Por Rey Salcedo; email resalpa84@gmail.com

visitados   y   que   no   esta   marcado   con   el   color 
verde   y   que   tenga   menor   peso   acumulado              como   el  nuevo  acumuladoPeso  no  generar   un 
(acumuladoPeso), en  caso  que  tengamos mas                    valor mas pequeño del que ya estaba, es decir 
de   uno   con   la   caracteristica   antes   descritas        no lo mejora, el nodo C no lo modificamos.
estamos el la libertar de escoger cualquiera de 
estos.                                                          Recordemos   que   el   numero   6   corresponde   al  
                                                                acumuladoPeso del nodo antecesor.
Una vez localizado lo marcamos de color verde. 
(ver   como   este   paso   es   analogo   a   la   tercera  Nuestro grafico no sufre ningun cambio.
iteracion)
                                                             (Septima iteracion)  Localizamos de los nodos 
Para nuestro caso el nodo a escoger es el B ya  visitados   y   que   no   esta   marcado   con   el   color 
que es el de menor peso acumulado con 6.                     verde   y   que   tenga   menor   peso   acumulado 
                                                             (acumuladoPeso), en caso que tengamos  mas 
Quedando según la siguiente figura:                          de   uno   con   la   caracteristica   antes   descritas 
                                                             estamos el la libertar de escoger cualquiera de 
                                                             estos.

                                                                Una vez localizado lo marcamos de color verde. 
                                                                (ver como este paso es analogo a la tercera y 
                                                                quinta iteracion)

                                                                Para  nuestro   caso  podemos  escoger  entre   los 
                                                                nodos G,H ya que el peso acumulado en cada 
                                                                uno   de   ellos   son   los   menores   con   8;   nos 
                                                                inclinaremos   a   usar   el   nodo   H   (si   usamos   el 
                                                                nodo G el resultado final no varia).

(Sexta iteracion)  Nos ubicamos en el nodo B,  Quedando según la siguiente figura:
el   cual   escogimos   en   el   paso   anterior   y 
marcamos   sus   nodos   adyacentes   siempre   y 
cuando no lo hallamos usado, es decir no este 
de color verde. (ver como este paso es analogo 
a la segunda y cuarta iteracion).

Para este caso el unico nodo adyacentes de B 
no usado es C.

Inicializamos   los   valores   de   nuestro   nodo 
adyancente asi:

Para C:
Como el nodo C ya esta marcado (por el nodo 
D), primero calculamos el  peso acumulado asi:
acumuladoPeso = 6 + 7 = 13; 
Por Rey Salcedo; email resalpa84@gmail.com

(Octava iteracion) Nos ubicamos en el nodo H,             (Novena   iteracion)  Localizamos   de   los   nodos 
el   cual   escogimos   en   el   paso   anterior   y     visitados   y   que   no   esta   marcado   con   el   color 
marcamos   sus   nodos   adyacentes   siempre   y         verde   y   que   tenga   menor   peso   acumulado 
cuando no lo hallamos usado, es decir no este             (acumuladoPeso), en caso que tengamos  mas 
de color verde. (ver como este paso es analogo            de   uno   con   la   caracteristica   antes   descritas 
a la segunda, cuarta y sexta iteracion).                  estamos el la libertar de escoger cualquiera de 
                                                          estos.
Para este caso los nodos adyacentes de H no        3.
usados son: F,G.                                       Una vez localizado lo marcamos de color verde. 
                                                       (ver   como   este   paso   es   analogo   a   la   tercera, 
Inicializamos   los   valores   de   nuestros   nodos  quinta y septima iteracion)
adyancentes asi:
                                                       Para nuestro caso el nodo a escoger es el G ya 
Para F:                                                que su peso acumulado es el menor con 8.
acumuladoPeso = 8 + 4 = 12;
nodoAntecesor = H;                                     Quedando según la siguiente figura:

Para G:
Como   el   nodo   G   ya   esta   marcado   (por   el 
nodoA), primero calculamos el  peso acumulado 
asi:

acumuladoPeso = 8 + 2 = 10; 

como  el  nuevo   acumuladoPeso  no   generar un 
valor mas pequeño del que ya estaba , es decir 
no lo mejora, el nodo G no lo modificamos.

Recordemos   que   el   numero   8   corresponde   al  
acumuladoPeso del nodo antecesor.
                                                          (Decima iteracion) Nos ubicamos en el nodo G, 
Quedando según la siguiente figura:
                                                          el   cual   escogimos   en   el   paso   anterior   y 
                                                          marcamos   sus   nodos   adyacentes   siempre   y 
                                                          cuando no lo hallamos usado, es decir no este 
                                                          de color verde. (ver como este paso es analogo 
                                                          a la segunda, cuarta, sexta iteracion, etc).

                                                          Para este caso el unico nodo adyacentes de G 
                                                          no usado es E.

                                                          Inicializamos   los   valores   de   nuestro   nodo 
                                                          adyancente asi:

                                                          Para E:
                                                          Como el nodo E ya esta marcado (por el nodo 
Por Rey Salcedo; email resalpa84@gmail.com

D), primero calculamos el  peso acumulado asi:          (Decimo segunda iteracion) Nos ubicamos en 
                                                        el nodo C, el cual escogimos en el paso anterior 
acumuladoPeso = 8 + 10 = 18;                            y   marcamos   sus   nodos   adyacentes   siempre   y 
                                                        cuando no lo hallamos usado, es decir no este 
como  el  nuevo   acumuladoPeso  no   generar un  de color verde. (ver como este paso es analogo 
valor mas pequeño del que ya estaba , es decir  a la segunda, cuarta, sexta iteracion, etc).
no lo mejora, el nodo E no lo modificamos.
                                                        Para este caso los nodo adyacentes de C son 
Recordemos   que   el   numero   8   corresponde   al   E,F.
acumuladoPeso del nodo antecesor.
                                                        Inicializamos   los   valores   de   nuestros   nodos 
Nuestro grafico no sufre cambios.                       adyancente asi:

(Decimo primera iteracion) Localizamos de los                  Para E:
nodos visitados y que no esta marcado con el                   Como el nodo E ya esta marcado (por el nodo 
color verde y que tenga menor peso acumulado                   D), primero calculamos el  peso acumulado asi:
(acumuladoPeso), en  caso  que  tengamos mas 
de   uno   con   la   caracteristica   antes   descritas       acumuladoPeso = 9 + 11 = 20; 
estamos el la libertar de escoger cualquiera de 
estos.                                                        como   el  nuevo  acumuladoPeso  no  generar   un 
                                                              valor mas pequeño del que ya estaba , es decir 
Una vez localizado lo marcamos de color verde.  no lo mejora, el nodo E no lo modificamos.
(ver   como   este   paso   es   analogo   a   la   tercera, 
quinta, septima iteracion, etc).                              Para F:
                                                              Como el nodo F ya esta marcado (por el nodo 
Para nuestro caso el nodo a escoger es el C ya  H), primero calculamos el  peso acumulado asi:
que su peso acumulado es el menor con 9.
                                                              acumuladoPeso = 9 + 2 = 11; 
Quedando según la siguiente figura:
                                                              como   el   valor   cumulado   de   F   es   12   y   el   que 
                                                              acabamos   de   calcular   es   menor   (11)   es   decir 
                                                              que si lo mejora, cambiamos el valor acumulado 
                                                              de F por 11 y el nodo antecesor por C por ser C 
                                                              quien lo mejoro.

                                                               Recordemos   que   el   numero   9   corresponde   al  
                                                               acumuladoPeso del nodo antecesor.

                                                               Quedando según la siguiente figura: (Observe la 
                                                               figura   anterior   y   ésta   que   sigue   para   que 
                                                               compare el cambio que sufrió el nodo F)
Por Rey Salcedo; email resalpa84@gmail.com

                                                            (Decimo cuarta iteracion) Nos ubicamos en el 
                                                            nodo E, el cual escogimos en el paso anterior y 
                                                            marcamos   sus   nodos   adyacentes   siempre   y 
                                                            cuando no lo hallamos usado, es decir no este 
                                                            de color verde. (ver como este paso es analogo 
                                                            a la segunda, cuarta, sexta iteracion, etc).

                                                            Para este caso el unico nodo adyacentes de E 
                                                            es F.

                                                            Inicializamos   los   valores   de   nuestro   nodo 
                                                            adyancente asi:

                                                            Para F:
(Decimo tercera iteracion) Localizamos de los 
                                                            Como el nodo F ya esta marcado (por el nodo 
nodos visitados y que no esta marcado con el 
                                                            C), primero calculamos el  peso acumulado asi:
color verde y que tenga menor peso acumulado 
(acumuladoPeso), en  caso  que  tengamos mas 
                                                            acumuladoPeso = 11 + 2 = 13; 
de   uno   con   la   caracteristica   antes   descritas 
estamos el la libertar de escoger cualquiera de 
                                                            como   el  nuevo  acumuladoPeso  no  generar   un 
estos.
                                                            valor mas pequeño del que ya estaba , es decir 
                                                            no lo mejora, el nodo F no lo modificamos.
Una vez localizado lo marcamos de color verde. 
(ver   como   este   paso   es   analogo   a   la   tercera, 
                                                              Recordemos que el numero 11 corresponde al  
quinta, septima iteracion, etc).
                                                              acumuladoPeso del nodo antecesor.
Para   nuestro   caso   tenemos   dos   nodo   que 
podemos usar por ser los de menor pesos E,F         Nuestro grafico no sufre cambios.

Cualquiera   de   los   dos   que   usemos   esta   bien,  (Decimo quinta iteracion)  Localizamos de los 
para este caso tomaremos el nodo E.                        nodos visitados y que no esta marcado con el 
                                                           color verde y que tenga menor peso acumulado 
Quedando según la siguiente figura:                        (acumuladoPeso), en caso que tengamos  mas 
                                                           de   uno   con   la   caracteristica   antes   descritas 
                                                           estamos el la libertar de escoger cualquiera de 
                                                           estos.

                                                            Una vez localizado lo marcamos de color verde. 
                                                            (ver   como   este   paso   es   analogo   a   la   tercera, 
                                                            quinta, septima iteracion, etc).

                                                            Para nuestro caso ya solo nos queda F.

                                                            Quedando según la siguiente figura:
Por Rey Salcedo; email resalpa84@gmail.com

                                                               Miremos este ultimo ejemplo

                                                               Digamos que quiero conocer la ruta mas corta 
                                                               del nodo F al nodo A.

                                                               Primero nos ubicamos en el F y miramos cual 
                                                               es su nodo antecesor, graficamente vemos que 
                                                               es el nodo C.

                                                               Nos ubicamos en el nodo C y miramos cual es 
                                                               su nodo antecesor, graficamente vemos que es 
                                                               D.

Listo, con la decimo quinta iteracion terminamos               Ahora  nos  ubicamos  en   el   nodo   D  y   miramos 
de   aplicar   el   dijkstra   a   este   grafo,   ya   que    cual es su nodo antecesor, graficamente vemos 
marcamos todos nuetros nodo; ahora podemos                     que es A.
identificar   el   camino   mas   corto   de   un   nodo 
cualquiera   al   nodo   A   el   cual   inicialmente          Como finalmente el nodo A no tiene antecesor 
escogimo como nodo inicio.                                     significa que hemos llegado al nodo inicio.

Y ¿Como hacemos esto?: digamos que quiero  Facilmente podemos ver que nuestra ruta es A, 
conocer la ruta mas corta del nodo C al nodo A. D, C y F.

Primero nos ubicamos en el C y miramos cual 
es su nodo antecesor, graficamente vemos que 
es el nodo D.

Ahora   nos   ubicamos  en   el  nodo   D   y miramos 
cual es su nodo antecesor, graficamente vemos 
que es A.

Como finalmente el nodo A no tiene antecesor 
significa que hemos llegado al nodo inicio.

Facilmente podemos ver que nuestra ruta es A, 
D y C.



                                                               Como   nota   final,   suguiero   practicar   con   otros 
                                                               grafos para tomar destreza.

                                                               Como siempre, esperando serles de utilidad.

Mais conteúdo relacionado

Mais procurados

Cableado estructurado
Cableado estructuradoCableado estructurado
Cableado estructuradoANGELALROJASC
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en cJessica Suarez
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externoFernando Solis
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Alvaro Enrique Ruano
 
Tabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOTabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOliras loca
 
5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivos5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivosRey JOaquin
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtualkerlly villon
 
Una base de datos de red
Una base de datos de redUna base de datos de red
Una base de datos de redweneliza99
 

Mais procurados (20)

Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Cableado estructurado
Cableado estructuradoCableado estructurado
Cableado estructurado
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en c
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Gestion de memoria en windows
Gestion de memoria en windowsGestion de memoria en windows
Gestion de memoria en windows
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
 
Metodo congruencial mixto en java
Metodo congruencial mixto en javaMetodo congruencial mixto en java
Metodo congruencial mixto en java
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Tabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOTabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCO
 
6 pipeline
6 pipeline6 pipeline
6 pipeline
 
5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivos5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivos
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
 
VLAN
VLANVLAN
VLAN
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
Una base de datos de red
Una base de datos de redUna base de datos de red
Una base de datos de red
 
Lifo round robín informatica
Lifo round robín informatica Lifo round robín informatica
Lifo round robín informatica
 
Pruebas de caja blanca y negra
Pruebas  de caja blanca y negraPruebas  de caja blanca y negra
Pruebas de caja blanca y negra
 
Gestion memoria windows
Gestion memoria windowsGestion memoria windows
Gestion memoria windows
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 

Último (20)

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 

El algoritmo de Dijkstra para encontrar la ruta más corta

  • 1. Por Rey Salcedo; email resalpa84@gmail.com DIJKSTRA EL CAMINO MAS CORTO cambiamos   de   color   para   indicar   que   ya   lo  usamos,  quedando según la siguiente figura. Basicamente podemos decir que el algoritmo de  dijkstra nos permite determinar dado dos nodos  de un grafo la ruta mas corta que los une. Por decirlo de alguna manera, voy a explicar de  manera grafica y paso a paso como determinar  dicha ruta mas corta, esto gracias a éste metodo  didactico y facil de comprender y que pretendo  que ustedes aprendan y asi puedan generar su  propio algoritmo de dijkstra. Antes   de   empezar   pensemos   que   nuestros  nodos   pueden   tener   dos   propiedades  acumuladoPeso y otro llamando nodoAntecesor,  (Segunda   iteracion)  Marcamos   los   nodos  el manejo de estas variables las aprenderemos  adyacentes de A, inicializando sus variables de  en la medida que las vallamos usandolas. la siguiente forma: Para   efectos   de   esta   explicacion   usaremos   el  acumuladoPeso   =   [acumuladoPeso   del   nodo   grafo de la siguiente figura: antecesor (en este caso el de A)] + peso de la   arista que los une; nodoAntecesor = el nombre del nodo antecesor; Asi para B: acumuladoPeso = 0 + 6 = 6; nodoAntecesor = A; Para D: acumuladoPeso = 0 + 5 = 5; nodoAntecesor = A; Para G: acumuladoPeso = 0 + 8 = 8; nodoAntecesor = A; (Primera iteracion)  Escogemos un nodo inicio,  en   este   caso   usaremos   el   nodo   A,   e  Quedando según la siguiente figura: inicializamos sus variables de la siguiente forma: acumuladoPeso = 0; nodoAntecesor = nulo; Al   ser   nuestro   nodo   inicio,   no   tiene   pesos  acumulados   ni   nodo   antecesor,   ademas   lo 
  • 2. Por Rey Salcedo; email resalpa84@gmail.com de color verde. (ver como este paso es analogo  la iteracion 2) Para este caso los nodos adyacentes de D no  usados son: C, E, H, B; inicializamos los valores  de nuestros nodos adyancentes asi: Para C: acumuladoPeso = 5 + 4 = 9; nodoAntecesor = D; Para E: acumuladoPeso = 5 + 6 = 11; nodoAntecesor = D; (Tercera   iteracion)  Localizamos   de   los   nodos  Para H: visitados   y   que   no   esta   marcado   con   el   color  acumuladoPeso = 5 + 3 = 8; verde   y   que   tenga   menor   peso   acumulado  nodoAntecesor = D; (acumuladoPeso), en  caso  que  tengamos mas  de   uno   con   la   caracteristica   antes   descritas  Para B: estamos el la libertad de escoger cualquiera de  Como el nodo B ya esta marcado (por el nodo  estos, una vez localizado lo marcamos de color  A), primero calculamos el  peso acumulado asi: verde. acumuladoPeso = 5 + 1 = 6;  como   el  nuevo  acumuladoPeso  no  generar   un  Para nuestro caso el nodo a escoger es el D ya  valor mas pequeño del que ya estaba , es decir  que su peso acumulado es el menor de todos  no lo mejora, el nodo B no lo modificamos. con 5, quedando según la siguiente figura: Recordemos   que   el   numero   5   corresponde   al   acumuladoPeso del nodo antecesor. Quedando según la siguiente figura: (Cuarta iteracion) Nos ubicamos en el nodo D,  el   cual   escogimos   en   el   paso   anterior   y  marcamos   sus   nodos   adyacentes   siempre   y  cuando no lo hallamos usado, es decir no este  (Quinta   iteracion)  Localizamos   de   los   nodos 
  • 3. Por Rey Salcedo; email resalpa84@gmail.com visitados   y   que   no   esta   marcado   con   el   color  verde   y   que   tenga   menor   peso   acumulado  como   el  nuevo  acumuladoPeso  no  generar   un  (acumuladoPeso), en  caso  que  tengamos mas  valor mas pequeño del que ya estaba, es decir  de   uno   con   la   caracteristica   antes   descritas  no lo mejora, el nodo C no lo modificamos. estamos el la libertar de escoger cualquiera de  estos. Recordemos   que   el   numero   6   corresponde   al   acumuladoPeso del nodo antecesor. Una vez localizado lo marcamos de color verde.  (ver   como   este   paso   es   analogo   a   la   tercera  Nuestro grafico no sufre ningun cambio. iteracion) (Septima iteracion)  Localizamos de los nodos  Para nuestro caso el nodo a escoger es el B ya  visitados   y   que   no   esta   marcado   con   el   color  que es el de menor peso acumulado con 6. verde   y   que   tenga   menor   peso   acumulado  (acumuladoPeso), en caso que tengamos  mas  Quedando según la siguiente figura: de   uno   con   la   caracteristica   antes   descritas  estamos el la libertar de escoger cualquiera de  estos. Una vez localizado lo marcamos de color verde.  (ver como este paso es analogo a la tercera y  quinta iteracion) Para  nuestro   caso  podemos  escoger  entre   los  nodos G,H ya que el peso acumulado en cada  uno   de   ellos   son   los   menores   con   8;   nos  inclinaremos   a   usar   el   nodo   H   (si   usamos   el  nodo G el resultado final no varia). (Sexta iteracion)  Nos ubicamos en el nodo B,  Quedando según la siguiente figura: el   cual   escogimos   en   el   paso   anterior   y  marcamos   sus   nodos   adyacentes   siempre   y  cuando no lo hallamos usado, es decir no este  de color verde. (ver como este paso es analogo  a la segunda y cuarta iteracion). Para este caso el unico nodo adyacentes de B  no usado es C. Inicializamos   los   valores   de   nuestro   nodo  adyancente asi: Para C: Como el nodo C ya esta marcado (por el nodo  D), primero calculamos el  peso acumulado asi: acumuladoPeso = 6 + 7 = 13; 
  • 4. Por Rey Salcedo; email resalpa84@gmail.com (Octava iteracion) Nos ubicamos en el nodo H,  (Novena   iteracion)  Localizamos   de   los   nodos  el   cual   escogimos   en   el   paso   anterior   y  visitados   y   que   no   esta   marcado   con   el   color  marcamos   sus   nodos   adyacentes   siempre   y  verde   y   que   tenga   menor   peso   acumulado  cuando no lo hallamos usado, es decir no este  (acumuladoPeso), en caso que tengamos  mas  de color verde. (ver como este paso es analogo  de   uno   con   la   caracteristica   antes   descritas  a la segunda, cuarta y sexta iteracion). estamos el la libertar de escoger cualquiera de  estos. Para este caso los nodos adyacentes de H no  3. usados son: F,G. Una vez localizado lo marcamos de color verde.  (ver   como   este   paso   es   analogo   a   la   tercera,  Inicializamos   los   valores   de   nuestros   nodos  quinta y septima iteracion) adyancentes asi: Para nuestro caso el nodo a escoger es el G ya  Para F: que su peso acumulado es el menor con 8. acumuladoPeso = 8 + 4 = 12; nodoAntecesor = H; Quedando según la siguiente figura: Para G: Como   el   nodo   G   ya   esta   marcado   (por   el  nodoA), primero calculamos el  peso acumulado  asi: acumuladoPeso = 8 + 2 = 10;  como  el  nuevo   acumuladoPeso  no   generar un  valor mas pequeño del que ya estaba , es decir  no lo mejora, el nodo G no lo modificamos. Recordemos   que   el   numero   8   corresponde   al   acumuladoPeso del nodo antecesor. (Decima iteracion) Nos ubicamos en el nodo G,  Quedando según la siguiente figura: el   cual   escogimos   en   el   paso   anterior   y  marcamos   sus   nodos   adyacentes   siempre   y  cuando no lo hallamos usado, es decir no este  de color verde. (ver como este paso es analogo  a la segunda, cuarta, sexta iteracion, etc). Para este caso el unico nodo adyacentes de G  no usado es E. Inicializamos   los   valores   de   nuestro   nodo  adyancente asi: Para E: Como el nodo E ya esta marcado (por el nodo 
  • 5. Por Rey Salcedo; email resalpa84@gmail.com D), primero calculamos el  peso acumulado asi: (Decimo segunda iteracion) Nos ubicamos en  el nodo C, el cual escogimos en el paso anterior  acumuladoPeso = 8 + 10 = 18;  y   marcamos   sus   nodos   adyacentes   siempre   y  cuando no lo hallamos usado, es decir no este  como  el  nuevo   acumuladoPeso  no   generar un  de color verde. (ver como este paso es analogo  valor mas pequeño del que ya estaba , es decir  a la segunda, cuarta, sexta iteracion, etc). no lo mejora, el nodo E no lo modificamos. Para este caso los nodo adyacentes de C son  Recordemos   que   el   numero   8   corresponde   al   E,F. acumuladoPeso del nodo antecesor. Inicializamos   los   valores   de   nuestros   nodos  Nuestro grafico no sufre cambios. adyancente asi: (Decimo primera iteracion) Localizamos de los  Para E: nodos visitados y que no esta marcado con el  Como el nodo E ya esta marcado (por el nodo  color verde y que tenga menor peso acumulado  D), primero calculamos el  peso acumulado asi: (acumuladoPeso), en  caso  que  tengamos mas  de   uno   con   la   caracteristica   antes   descritas  acumuladoPeso = 9 + 11 = 20;  estamos el la libertar de escoger cualquiera de  estos. como   el  nuevo  acumuladoPeso  no  generar   un  valor mas pequeño del que ya estaba , es decir  Una vez localizado lo marcamos de color verde.  no lo mejora, el nodo E no lo modificamos. (ver   como   este   paso   es   analogo   a   la   tercera,  quinta, septima iteracion, etc). Para F: Como el nodo F ya esta marcado (por el nodo  Para nuestro caso el nodo a escoger es el C ya  H), primero calculamos el  peso acumulado asi: que su peso acumulado es el menor con 9. acumuladoPeso = 9 + 2 = 11;  Quedando según la siguiente figura: como   el   valor   cumulado   de   F   es   12   y   el   que  acabamos   de   calcular   es   menor   (11)   es   decir  que si lo mejora, cambiamos el valor acumulado  de F por 11 y el nodo antecesor por C por ser C  quien lo mejoro. Recordemos   que   el   numero   9   corresponde   al   acumuladoPeso del nodo antecesor. Quedando según la siguiente figura: (Observe la  figura   anterior   y   ésta   que   sigue   para   que  compare el cambio que sufrió el nodo F)
  • 6. Por Rey Salcedo; email resalpa84@gmail.com (Decimo cuarta iteracion) Nos ubicamos en el  nodo E, el cual escogimos en el paso anterior y  marcamos   sus   nodos   adyacentes   siempre   y  cuando no lo hallamos usado, es decir no este  de color verde. (ver como este paso es analogo  a la segunda, cuarta, sexta iteracion, etc). Para este caso el unico nodo adyacentes de E  es F. Inicializamos   los   valores   de   nuestro   nodo  adyancente asi: Para F: (Decimo tercera iteracion) Localizamos de los  Como el nodo F ya esta marcado (por el nodo  nodos visitados y que no esta marcado con el  C), primero calculamos el  peso acumulado asi: color verde y que tenga menor peso acumulado  (acumuladoPeso), en  caso  que  tengamos mas  acumuladoPeso = 11 + 2 = 13;  de   uno   con   la   caracteristica   antes   descritas  estamos el la libertar de escoger cualquiera de  como   el  nuevo  acumuladoPeso  no  generar   un  estos. valor mas pequeño del que ya estaba , es decir  no lo mejora, el nodo F no lo modificamos. Una vez localizado lo marcamos de color verde.  (ver   como   este   paso   es   analogo   a   la   tercera,  Recordemos que el numero 11 corresponde al   quinta, septima iteracion, etc). acumuladoPeso del nodo antecesor. Para   nuestro   caso   tenemos   dos   nodo   que  podemos usar por ser los de menor pesos E,F Nuestro grafico no sufre cambios. Cualquiera   de   los   dos   que   usemos   esta   bien,  (Decimo quinta iteracion)  Localizamos de los  para este caso tomaremos el nodo E. nodos visitados y que no esta marcado con el  color verde y que tenga menor peso acumulado  Quedando según la siguiente figura: (acumuladoPeso), en caso que tengamos  mas  de   uno   con   la   caracteristica   antes   descritas  estamos el la libertar de escoger cualquiera de  estos. Una vez localizado lo marcamos de color verde.  (ver   como   este   paso   es   analogo   a   la   tercera,  quinta, septima iteracion, etc). Para nuestro caso ya solo nos queda F. Quedando según la siguiente figura:
  • 7. Por Rey Salcedo; email resalpa84@gmail.com Miremos este ultimo ejemplo Digamos que quiero conocer la ruta mas corta  del nodo F al nodo A. Primero nos ubicamos en el F y miramos cual  es su nodo antecesor, graficamente vemos que  es el nodo C. Nos ubicamos en el nodo C y miramos cual es  su nodo antecesor, graficamente vemos que es  D. Listo, con la decimo quinta iteracion terminamos  Ahora  nos  ubicamos  en   el   nodo   D  y   miramos  de   aplicar   el   dijkstra   a   este   grafo,   ya   que  cual es su nodo antecesor, graficamente vemos  marcamos todos nuetros nodo; ahora podemos  que es A. identificar   el   camino   mas   corto   de   un   nodo  cualquiera   al   nodo   A   el   cual   inicialmente  Como finalmente el nodo A no tiene antecesor  escogimo como nodo inicio. significa que hemos llegado al nodo inicio. Y ¿Como hacemos esto?: digamos que quiero  Facilmente podemos ver que nuestra ruta es A,  conocer la ruta mas corta del nodo C al nodo A. D, C y F. Primero nos ubicamos en el C y miramos cual  es su nodo antecesor, graficamente vemos que  es el nodo D. Ahora   nos   ubicamos  en   el  nodo   D   y miramos  cual es su nodo antecesor, graficamente vemos  que es A. Como finalmente el nodo A no tiene antecesor  significa que hemos llegado al nodo inicio. Facilmente podemos ver que nuestra ruta es A,  D y C. Como   nota   final,   suguiero   practicar   con   otros  grafos para tomar destreza. Como siempre, esperando serles de utilidad.