Algoritmo Depth First Search (DFS) para búsqueda en grafos: Explicación, ejemplos y código

Sdílet
Vložit
  • čas přidán 8. 07. 2024
  • En el video de hoy voy a explicarte como funciona el algoritmo Depth First Search (DFS), uno de los más conocidos en la teoría de grafos y a su vez más utilizados en diversas aplicaciones. Este algoritmo es vital para la búsqueda en profundidad en grafos, y ademas explico la modificación de DFS Forest que vuelve este algoritmo mucho más útil.
    Cualquier duda o error que tengas deja un comentario y te ayudare en lo posible!
    Pseudocodigos vistos en el video:
    DFS(grafo G, Nat u){
    marco al vertice u como descubierto (verde);
    for(cada vertice v adayacente a u){
    if(el vertice v no fue visitado){
    padre[v] = u;
    DFS(G,v);
    }
    }
    marco al vertice u como visitado (negro);
    }
    DFS_FOREST(G){
    //Inicializacion
    for(cada vertice v en Grafo.vertices()){
    marco al nodo actual como no visitado;
    padre[v] = NULL;
    }
    //Recorro todos los vertices del grafo, esto es lo que hce el forest
    for(cada vertice v en Grafo.vertices()){
    if(el vertice v no fue visitado){
    DFS(G,v);
    }
    }
    Mas informacion sobre este algoritmo: es.wikipedia.org/wiki/B%C3%BA...
    Servidor de Discord El Taller De TD: / discord
    Contacto/Contact: eltallerdetd@gmail.com
    Información extra, esquemas y mas en mi blog: eltallerdetd.wordpress.com/
    Los mejores proyectos con Arduino en el canal: goo.gl/mCKknp
    Los mejores proyectos de Programación en el canal: czcams.com/users/playlist?list...
    Mis redes sociales:
    Suscribite ahora!: goo.gl/s9jhnN
    Sígueme en Facebook: goo.gl/8krydS
    Sígueme en Twitter: goo.gl/i1V7xo
    Sígueme en Instagram: goo.gl/nqgzbF
    Indice del video:
    00:00 Introduccion al video
    00:46 Explicacion Algoritmo Depth First Search paso a paso (Con ejemplos)
    11:12 Codigo Algoritmo Depth First Search y seguimiento del mismo
    19:44 Determinar si existe un camino entre dos vertices de un grafo
    23:22 Explicacion Algoritmo DFS Forest paso a paso (Con ejemplos y codigo)
    28:11 Conclusiones finales y despedida
    ¡Muchas Gracias!

Komentáře • 44

  • @ElTallerDeTD
    @ElTallerDeTD  Před 2 lety +20

    *ERRATA*
    A partir del minuto 11:17 el pseudocodigo correcto del DFS es:
    DFS(grafo G, Nat u){
    marco al vertice u como descubierto (verde);
    for(cada vertice v adayacente a u){
    if(el vertice v no fue visitado){
    padre[v] = u;
    DFS(G,v);
    }
    }
    marco al vertice u como visitado (negro);
    }
    Al hacer el video se me olvido agregar la linea:
    *marco al vertice u como visitado (negro);*
    Disculpen el error!

    • @DarioAcostaTV
      @DarioAcostaTV Před 2 lety

      es lo que iba a preguntar... solo que el if, pregunta si el vértice adyacente (no es negro), aunque en el segmento de DFS la pizarra preguntas si (no es verde)

    • @DarioAcostaTV
      @DarioAcostaTV Před 2 lety

      se aprecia, la motivacion para implementarlo

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety

      Espero que haya servido la corrección Dario, gracias por el comentario!
      Ya que lo mencionas la condicion en concreto seria algo asi: estado[u] = NO_VISITADO, donde siempre verificamos que el estado del vertice al que vamos este NO_VISITADO
      Saludos!

    • @satoshinakamoto3346
      @satoshinakamoto3346 Před rokem +1

      Me di cuenta un par de horas despues de analizar el video xD, pero se entendio.

  • @nopesep9123
    @nopesep9123 Před měsícem +1

    se nota como uno aprende con el tiempo, gran explicación, muchas gracias por su aporte compañero, se aprecia muchísimo!!!

  • @michaelcarrillohotmart
    @michaelcarrillohotmart Před 2 lety +3

    Excelente, la mejor explicación que he visto hasta el momento, espero puedas seguir con este formato de videos que la verdad ayudan bastante. Gracias por compartir tus conocimientos.

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety +1

      Muchas gracias amigo! Pronto subire un nuevo video sobre grafos! Saludos!

  • @juanzan_9599
    @juanzan_9599 Před 2 lety +7

    con este video me di cuenta que mi ex era recursiva, volvía a todos los que llamaba papi antes que yo. Muy interesante este tema tade, un capo.

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety

      Buen chiste HunterLeague jaja Abrazo y gracias por ver el video!

  • @nopesep9123
    @nopesep9123 Před 6 měsíci +1

    Buenísimo, gran explicación, lo entendí todo

  • @nicolasguillenc
    @nicolasguillenc Před 6 měsíci +1

    Clarísimo, mae usted explica demasiado bien. En serio excelente profe.

  • @juanibarra2846
    @juanibarra2846 Před 2 lety +5

    Excelente!!! Por favor continúa con los demás algoritmos 😊

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety +1

      Gracias Juan! Ya estoy preparando esos videos! Saludos!

  • @TheTotalrecal
    @TheTotalrecal Před 2 lety +1

    Excelente. Conociendo un poco mas los tipos de algoritmos de Busqueda. 👍

  • @ehitel78
    @ehitel78 Před 10 měsíci +1

    Excelete, muchas gracias.

  • @AndresFelipe-xz9rq
    @AndresFelipe-xz9rq Před rokem +1

    Muchas gracias !

  • @Samuelvel98
    @Samuelvel98 Před 2 lety +1

    saludos desde Venezuela muy buena la clase me dio curiosidad y lo vi completo
    estoy aprendiendo a programar paso a paso lo lograre

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety

      Muchas gracias por tu comentario Samuel! Estoy seguro que seras un gran programador si asi lo deseas! Saludos!

  • @Jroizm
    @Jroizm Před 2 měsíci

    Muchas gracias crack

  • @guadguad7896
    @guadguad7896 Před 4 měsíci +1

    10/10

  • @satoshinakamoto3346
    @satoshinakamoto3346 Před rokem +1

    Excelente explicación

  • @juanalfonso60
    @juanalfonso60 Před rokem +1

    Excelente explicacion!!

  • @M_R_Orellana
    @M_R_Orellana Před 2 lety +1

    Gracias a dios me dedico a la infraestructura... ajajaja
    Muy grosso todo Mr. TD!

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety

      Muchas gracias Marcos!! Sin los de infraestructura como vos estariamos todos perdidos jaja!! Abrazo!!

  • @yeahdarwin
    @yeahdarwin Před 27 dny +1

    Nunca subió el video de BFS

  • @nopesep9123
    @nopesep9123 Před 7 měsíci +1

    Grande

  • @yagamisjo
    @yagamisjo Před rokem +1

    Excelente video amigo, pero tengo una duda, podrías explicarme porque o como hace el algoritmo para pasar al vértice E?

  • @tobias1289
    @tobias1289 Před 6 měsíci +1

    5 palabras, crack

  • @lucasrueda3089
    @lucasrueda3089 Před rokem +1

    Dios quiera q hayas hecho el bfs

  • @wilfredoperezgomez8973
    @wilfredoperezgomez8973 Před 2 lety +1

    haz del bfs

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety

      Sera el proximo video de esta serie! Muchas gracias por la recomendacion!

  • @nicolasmarunpoblete202
    @nicolasmarunpoblete202 Před 8 měsíci

    Función DFS(grafo G, vértice u):
    // Marcar el vértice u como "descubierto" (puedes usar un arreglo de visitados)
    Marcar u como "descubierto" (verde)
    // Iterar sobre los vértices adyacentes a u
    Para cada vértice v adyacente a u:
    Si v no ha sido visitado:
    // Establecer a u como el padre de v (opcional)
    padre[v] = u
    // Realizar una llamada recursiva para explorar v
    DFS(G, v)
    // Marcar el vértice u como "visitado" (puedes usar un arreglo de visitados)
    Marcar u como "visitado" (negro)
    dejo el codigo mas claro

  • @pyprogramming599
    @pyprogramming599 Před 2 lety

    haz un tutorial
    thread hilos
    parents child process.

    • @ElTallerDeTD
      @ElTallerDeTD  Před 2 lety

      Lo tendre en cuenta, gracias por el comentario!

  • @Erziok
    @Erziok Před 2 lety +1

    Hola tidi