SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Matrices
MatricesMatrices
Matrices
 
Grafos
GrafosGrafos
Grafos
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Bridge 
Bridge Bridge 
Bridge 
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Relaciones y Grafos
Relaciones y GrafosRelaciones y Grafos
Relaciones y Grafos
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes Formales
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 
Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
CONCEPTOS Y FUNDAMENTOS DE LÓGICA DIFUSA 2
CONCEPTOS Y FUNDAMENTOS   DE LÓGICA DIFUSA 2CONCEPTOS Y FUNDAMENTOS   DE LÓGICA DIFUSA 2
CONCEPTOS Y FUNDAMENTOS DE LÓGICA DIFUSA 2
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Arbol B
Arbol BArbol B
Arbol B
 
Pasos para crear una red lan
Pasos para crear una red lanPasos para crear una red lan
Pasos para crear una red lan
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 

Último

Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
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
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
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
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
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
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
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
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 

Último (20)

Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
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
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
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...
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.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
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 

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.