Projeto e Análise de Algoritmos - Aula 12 - Algoritmos de busca em largura e profundidade em grafos

UNIVESP
22 Sept 201724:07

Summary

TLDRThe video script delves into the fundamentals of graph exploration through two core search algorithms: Breadth-First Search (BFS) and Depth-First Search (DFS). It explains how BFS systematically uncovers vertices at increasing distances from the starting point, using a queue to manage unexplored nodes. Conversely, DFS explores as far along a branch as possible before backtracking, utilizing recursion. The script provides a detailed walkthrough of both algorithms, including initialization, vertex marking, and the use of time stamps to track vertex discovery and completion. It also touches on the computational complexity and time consumption of these algorithms, offering insights into their practical applications.

Takeaways

  • 📚 The script discusses two fundamental graph exploration algorithms: Breadth-First Search (BFS) and Depth-First Search (DFS).
  • 🔍 BFS is used to systematically explore a graph from a starting vertex, discovering all vertices at the same level before moving to the next.
  • 🌐 DFS, on the other hand, explores as far as possible along each branch before backtracking, creating a tree or a forest of explored vertices.
  • 🔄 BFS uses a queue to keep track of vertices to explore, ensuring that vertices are processed in the order of their discovery level.
  • 📈 The script explains that BFS marks vertices with different colors to indicate their state, such as unexplored, discovered, or fully explored.
  • 🎯 DFS uses a stack implicitly through recursion to keep track of vertices to visit and marks them with a visit time to indicate when they were discovered.
  • 🕒 Both algorithms have a time complexity of O(V + E), where V is the number of vertices and E is the number of edges in the graph.
  • 📝 The script provides a step-by-step explanation of how BFS and DFS work, including the initialization process and the iterative or recursive steps involved.
  • 🛠️ The pseudocode for both algorithms is presented, showing the logic behind the exploration process and the conditions checked at each step.
  • 🌳 DFS can result in a spanning tree or a forest if the graph is not connected, whereas BFS will explore all vertices reachable from the starting point.
  • 🔑 The script highlights the importance of these algorithms in solving various problems, such as finding paths between vertices or determining the connectivity of a graph.

Q & A

  • What are the two fundamental search algorithms discussed in the script?

    -The two fundamental search algorithms discussed are Breadth-First Search (BFS) and Depth-First Search (DFS).

  • What is the primary purpose of using search algorithms in graphs?

    -The primary purpose of using search algorithms in graphs is to explore or traverse the graph systematically, which is essential for solving various problems such as finding paths between vertices.

  • How does Breadth-First Search (BFS) explore a graph?

    -BFS explores a graph by visiting all the vertices at the present depth before going deeper to the vertices at the next depth level. It uses a queue to keep track of the vertices to be explored.

  • What does the term 'level' refer to in the context of BFS?

    -In the context of BFS, 'level' refers to the shortest distance from the source vertex to the current vertex, measured in the number of edges.

  • How does Depth-First Search (DFS) differ from Breadth-First Search (BFS) in terms of exploration strategy?

    -DFS differs from BFS in that it explores as far as possible along a branch before backtracking. It uses a stack (either explicitly or via recursion) to remember where to continue the search.

  • What is the significance of marking vertices in search algorithms?

    -Marking vertices is significant to keep track of which vertices have been visited to avoid revisiting them and to prevent infinite loops in the search process.

  • What data structure is typically used to implement the queue in BFS?

    -A queue data structure is typically used to implement BFS, where vertices are dequeued in the order they were enqueued, ensuring exploration by levels.

  • How does the script describe the process of updating distances in BFS?

    -The script describes the process of updating distances in BFS by stating that when a vertex is dequeued, its adjacent vertices are examined, and their distances are updated if they are further from the source vertex than the current vertex.

  • What is the purpose of the 'predecessor' concept in DFS?

    -The 'predecessor' concept in DFS is used to keep track of how the algorithm arrived at each vertex, which is essential for reconstructing paths or understanding the order of exploration.

  • How does the script explain the time complexity of BFS and DFS in terms of operations on a queue or stack?

    -The script explains that each vertex and edge is enqueued and dequeued once in BFS, and similarly, each vertex is pushed and popped once in DFS, leading to a time complexity of O(V + E) for both algorithms, where V is the number of vertices and E is the number of edges.

Outlines

00:00

📚 Introduction to Graph Exploration Algorithms

This paragraph introduces the topic of graph exploration algorithms, focusing on two fundamental algorithms: Breadth-First Search (BFS) and Depth-First Search (DFS). It explains the importance of these algorithms in systematically exploring a graph, which has numerous applications such as finding paths and solving various search problems. The explanation includes the basic concept of marking vertices as discovered and the process of exploring all vertices from a starting point using BFS and DFS.

05:01

🔍 Detailed Explanation of Breadth-First Search

The second paragraph delves into the specifics of the Breadth-First Search algorithm. It describes the process of BFS, starting from an initial vertex and exploring all its neighbors at the present depth prior to moving on to nodes at the next depth level. The summary explains the use of a queue to keep track of vertices to be explored and how BFS can be used to find the shortest path in an unweighted graph. It also discusses the algorithm's time complexity, which is O(V + E), where V is the number of vertices and E is the number of edges.

10:03

🌐 Analysis of Depth-First Search Algorithm

This paragraph provides an in-depth look at the Depth-First Search algorithm, contrasting it with BFS. DFS is characterized by exploring as far as possible along a branch before backtracking. The summary outlines the process of visiting vertices, marking them as discovered, and recursively visiting all unvisited adjacent vertices. It also touches on the use of a stack or recursion to manage the traversal and the time complexity of DFS, which is also O(V + E), similar to BFS.

15:07

🕒 Time Complexity Analysis of Search Algorithms

The fourth paragraph discusses the time complexity of both BFS and DFS algorithms. It explains that each operation of enqueueing and dequeueing in BFS, as well as the recursive calls in DFS, contributes to the overall time complexity. The summary emphasizes that the time spent on these operations is proportional to the number of vertices and edges in the graph, leading to a conclusion that both algorithms have a linear time complexity in terms of the graph's size.

20:08

🛠️ Recursive Implementation of Depth-First Search

This paragraph focuses on the recursive implementation of the Depth-First Search algorithm. It describes the process of visiting a vertex, marking it as discovered, and then recursively visiting all unvisited adjacent vertices. The summary explains how the algorithm uses a time counter to track the order of vertex discovery and the completion of the visit. It also illustrates how DFS can create a forest of trees, with each tree representing a connected component of the graph.

🎓 Conclusion on Graph Search Algorithms

The final paragraph wraps up the discussion on graph search algorithms, summarizing the key points about BFS and DFS. It highlights the practical applications of these algorithms in graph theory and their significance in computer science. The summary concludes with a note on the presentation of the algorithms, hoping that the explanation has been informative and enjoyable.

Mindmap

Keywords

💡Breadth-First Search (BFS)

Breadth-First Search is an algorithmic paradigm used for traversing or searching tree or graph data structures. It explores the neighbor nodes at the present depth prior to moving on to nodes at the next depth level. In the context of the video, BFS is used for systematically exploring a graph to find paths or determine the shortest path. An example from the script is the description of BFS as an algorithm that 'discovers all its neighbors and if you see from that initial vertex s, although you're going to do that algorithm in parallel, it will determine the distance of each of its vertices to s'.

💡Depth-First Search (DFS)

Depth-First Search is another graph traversal algorithm that explores as far as possible along a branch before backtracking. It is used to find paths, test connectivity, and for various other tasks in graph theory. The script refers to DFS as an algorithm that 'proceeds to search always from the most recently discovered vertex until it has no more undiscovered neighbors', contrasting it with BFS.

💡Graph

A graph in mathematics and computer science is a structure that consists of a set of objects in which some pairs of the objects are in one-to-one correspondence. In the video, the graph is central to explaining how algorithms like BFS and DFS work, as the script mentions 'a fundamental problem in graphs and knowing how to explore a graph systematically'.

💡Vertices

In graph theory, a vertex (plural vertices) is the fundamental unit of which a graph is composed. The script uses the term 'vertices' when explaining the process of graph exploration by BFS and DFS, stating 'we have a set of vertices and sets of edges'.

💡Edges

Edges are connections between vertices in a graph. The script refers to edges in the context of explaining how a graph is made up of vertices and edges, which are essential components for the operation of search algorithms like BFS and DFS.

💡Traversal

Traversal refers to the process of visiting all the elements of a data structure in a specific order. In the video, traversal is the main operation performed by BFS and DFS algorithms as they explore a graph, with the script mentioning 'how to explore a graph systematically'.

💡Search Algorithm

A search algorithm is a method for solving the search problem, which is the task of finding a particular item from a collection of items. The video discusses search algorithms in the context of graph traversal, specifically BFS and DFS, as it explains 'algunas aplicaciones son extraídas como problemas de búsqueda'.

💡Distance

In the context of graph theory, the distance between two vertices is the length of the shortest path between them. The script mentions the concept of distance when describing BFS, stating 'it will determine the distance of each of its vertices to s', where 's' is the starting vertex.

💡Queue

A queue is a linear structure that follows a particular order in which the operations are performed. The script refers to the use of a queue in the BFS algorithm, where it is used to keep track of vertices to be explored, as indicated by 'usar una fila, entonces llamamos un ejemplo aquí'.

💡Stack

A stack is another linear data structure that follows the Last In First Out (LIFO) principle. The script does not explicitly mention 'stack', but the concept is implied in the context of DFS, which can be implemented using a stack to keep track of vertices to be explored next.

💡Time Complexity

Time complexity is a measure of how long an algorithm takes in terms of the amount of input. The script discusses the time complexity of BFS, stating 'consumo de tiempo ese algoritmo primero vamos a analizar a parte de visita dos vértices', explaining the time it takes for the algorithm to perform operations.

Highlights

Introduction to graph exploration algorithms, specifically breadth-first search (BFS) and depth-first search (DFS).

Explanation of how BFS systematically explores a graph by discovering all vertices at the same level before moving on to the next.

DFS is introduced as an alternative that explores as far as possible along a branch before backtracking.

BFS algorithm's process of marking vertices as discovered and using a queue to keep track of vertices to be explored.

DFS algorithm's use of a stack or recursion to explore deeper into the graph's branches.

The concept of graph traversal to find simple paths between vertices.

Illustration of BFS algorithm with a step-by-step example, showing how vertices are discovered and explored.

Explanation of how DFS marks vertices with discovery and finish times to track the order of exploration.

The importance of marking vertices as discovered in both BFS and DFS to avoid revisiting them.

Visualization of how BFS produces a single tree, while DFS can produce a forest of trees.

Algorithmic complexity analysis of BFS, highlighting its time complexity.

Algorithmic complexity analysis of DFS, discussing its time complexity in comparison to BFS.

Practical applications of BFS and DFS in solving various graph-related problems.

The role of BFS in finding the shortest path in unweighted graphs.

DFS's utility in topological sorting and detecting cycles in graphs.

Pseudo-code for implementing BFS, providing a clear guide for coding the algorithm.

Pseudo-code for implementing DFS, including recursive and iterative approaches.

Conclusion summarizing the key points of BFS and DFS algorithms and their significance in graph theory.

Transcripts

play00:00

[Música]

play00:02

i

play00:05

[Música]

play00:15

o la pesoe sellan beijing 2 nos habla

play00:18

número 12 del proyecto y análisis y

play00:20

algoritmos en esa aula veremos al

play00:23

algoritmo de búsqueda largura y

play00:26

algoritmo de búsqueda profundidad y en

play00:27

grafos

play00:30

un problema fundamental en grafos y

play00:34

saber cómo explorar un grafo de forma

play00:36

sistemática muchas aplicaciones son

play00:39

extraídas como problemas de busca

play00:41

entonces algoritmos de busca son a base

play00:43

de varios algoritmos más gerais en

play00:46

grafos

play00:48

como que podemos explorar un grafo

play00:50

suponía que bosé que el saber si existen

play00:53

caminos simples entre dos vértices

play00:56

porque tenemos que pensar aquí es que en

play00:58

un grafo pues cuando per cojamos su

play01:00

grafo la gente consiga llegar un vértice

play01:03

anterior en todo de algunos editores y

play01:06

tengo que marcar los vértices que ya

play01:08

fueron explorados tenemos que marcar los

play01:10

vértices tal vez por ejemplo como face o

play01:13

algoritmo de busca en profundidad y

play01:16

largura de algún insecto

play01:19

comencemos entonces como algoritmo de

play01:21

búsqueda largura sellaje un grafo o si

play01:24

tenemos un conjunto de vértices y

play01:25

conjuntos de aristas y tenemos un

play01:28

vértice se ha partido la famosa será

play01:30

busca o algoritmo de búsqueda y largura

play01:32

también conocido como brett fierce age

play01:35

el ifai per todas las aristas de

play01:38

geógrafo descubriendo todos sus suertes

play01:40

y satín si veis a partir de ese no

play01:44

inicial de ese vértice inicial s

play01:47

aunque que vais a hacer ese algoritmo en

play01:49

tonel y va a determinar la distancia de

play01:52

cada uno de sus vértices a s

play01:55

esa distancia país en mérida el número

play01:58

de aristas

play02:01

vamos porque vamos a comenzar en todo a

play02:03

explorar ese grafo de aquí mostrado una

play02:05

figura y tenemos un estado una verdad de

play02:09

uno inicial que es en un aparte del que

play02:12

vamos a aplicar a busquen largura antes

play02:15

de encontrar un vértice a distancia cama

play02:17

y zoom de ese todo suceda desde la

play02:19

distancia caso encontrados pero

play02:21

algoritmo de búsqueda largura en todo

play02:24

primero que va a hacer encontrar ese

play02:25

vértice un que está a distancia cero del

play02:28

mismo después va a encontrar todos sus

play02:30

vértices que están a distancia aunque

play02:31

sería 1 2 4 y 3 después va a encontrar

play02:35

los que están a distancias 2 que serían

play02:36

un su vértice 6 y 6 y de puestos que

play02:39

están a distancia 3 que sería un vértice

play02:42

cuándo

play02:44

ejecutamos algoritmo de búsqueda largura

play02:46

he producido un árbol he producido más

play02:50

árboles

play02:51

con jasen ese es a árboles by contener

play02:54

todos sus vértices accesibles a partir

play02:57

de ahí vamos necesario les vamos ver un

play03:01

camino más culto desde ese ate en que te

play03:04

un vértice a csif esta valores a mostrar

play03:07

aquí con líneas ver medias mentón

play03:09

tenemos un árbol en hai sada en un

play03:12

vértice

play03:14

y el lacón tiene todos sus vértices que

play03:18

sería en este caso todos sus vértices

play03:20

del grafo por todos ellison accesibles a

play03:23

partir de vértice

play03:25

para facer a busquen largura ya falamos

play03:28

que precisamos marcaron sus vértices de

play03:30

algún objeto nunca se buscan largura sus

play03:34

vértices son pintados de diferentes

play03:35

colores

play03:36

vamos coloridos vértices de blanco sin

play03:39

ciprés o en blanco podemos colocar los

play03:42

vértices que no fueron descubiertos

play03:43

aínda en sheen's a vértices que ya

play03:46

fueron descubiertos más a indalo

play03:48

examinamos sus vecinos y en preto sus

play03:51

vértices cuyos vecinos ya fueron

play03:53

examinados y para mantener sus vértices

play03:57

hinchas vamos a usar una fila

play04:01

entonces llamamos un ejemplo aquí

play04:03

tenemos un grafo de inicio tenemos todos

play04:06

sus vértices coloridos de blanco y todos

play04:09

él existen distancia infinita

play04:13

vamos a hacer a buscar el argumento

play04:15

compartido ver si este es el primero que

play04:18

efecto el vértice origen y pintado de

play04:20

zinsa que ese de aquí vértice origen y

play04:24

eléctrica de considerado descubierto en

play04:26

el jr y colocado una fila nos afila

play04:28

llamada de que ese vértice es retirado

play04:32

de la fila o sea su vértice se ha

play04:35

retirado de la fila y usuarias es

play04:37

israelí son colocados en que hay

play04:39

pintados de ciencia quien somos

play04:40

adyacentes a ese son vértices

play04:43

liberticida bleu usd hoy somos ser

play04:46

colocados manos afilada bleú viaje

play04:49

el índice actualizada distancia para que

play04:52

en este caso sería a distancia a ese 1 y

play04:56

aquí a distancia de doble a ese 1 y

play04:59

actualizado también un parking dubai

play05:01

está marcando aquí como por medio de

play05:04

ésta para saber quién culpar

play05:08

apósito coloritmo su vértice completo

play05:10

por sus museos vecinos sus vecinos de

play05:13

ese ya fueron todos visitados

play05:15

descubiertos

play05:17

antón tenemos una fila dable hubiese un

play05:20

próximo elemento que va a ser retirado

play05:23

de la fila va a ser dable los diseños de

play05:26

edad lo que en que son son tesis lo que

play05:29

vamos a hacer vais a ir dable y va a

play05:31

entrar una fila de gis

play05:35

elevamos el colorido de zinsa y un

play05:38

vértice dable uvais el colorido de preto

play05:40

actualizamos a distancia están siento a

play05:43

que se va a ser una más que upyd cada

play05:46

uno de él y en ese caso para tablet en

play05:49

distancia aún por tanto tesifonte

play05:51

distancia 2 vamos a estar a una

play05:54

distancia 2

play05:56

el próximo elemento que vais a retirar

play05:59

una fila de escayola mosquín que son un

play06:03

censista eres son v y u s más único que

play06:08

blanco v entonces ha retirado guarde

play06:11

aquí va a ser ingerido v

play06:14

una fila cierto color y maxwell de

play06:17

presto y ahí continuamos con un proceso

play06:21

quien que el próximo que va a ser

play06:23

retirado de la fila de usted hoy vamos

play06:25

que en que somos vecinos de usted

play06:27

son 16 maestros y ya fue visitado antes

play06:34

tanto observe que son menchi colocamos

play06:36

la fila vértices blancos en este caso

play06:39

apenas u que son inmediatamente

play06:41

coloridos de ciencia o entran a fila ok

play06:45

el próximo elemento que vais a retirado

play06:47

de la fila eu si hallamos que en que

play06:50

somos adyacentes a él y son weeps y lo

play06:52

cierto único blanco que hay es en chile

play06:55

weeps el aumento muchas hay wifi lo

play06:57

entra en la fila

play06:59

vamos austeros y siguen sin ser todo

play07:02

actualizamos también a distancia

play07:03

actualizamos que en kuwait pronto y

play07:07

después su próximo vértice que vice se

play07:09

ha retirado de la fila v estamos aquí

play07:12

como ve él y no tenía ya sense el que se

play07:15

abran cuento no voy a contestar nada

play07:17

solamente y vais a ir úbeda fila un

play07:20

próximo que están a fila

play07:22

no tengo más niño un vértice blanco

play07:25

adyacente a él y entonces ser simples

play07:28

mensaje tirado la fila y actualizado

play07:30

claro oa distancia a tves

play07:35

en este caso

play07:37

y después un último elemento baixa

play07:39

retirado de la fila que vino

play07:42

en torno al final tenemos a fila fácil

play07:46

un peso del código de algoritmo de

play07:48

búsqueda largura está aquí en todo

play07:50

primero que pasemos a patxi de

play07:52

inicialización tono inicio lo que vamos

play07:55

a hacer para todos sus vértices excepto

play07:58

un vértice es el que vamos color y de

play08:01

liz de blanco vamos a hacer vamos a

play08:03

hacer el color y de lis de blanco

play08:06

colocar a distancia infinito para cada

play08:10

uno de ellis y como no conocemos aínda

play08:12

que en kuwait dubai ser mío

play08:15

el próximo paso es color y vértice s

play08:20

como zinsa que un primero vértice que

play08:22

vais a descubierto a distancia de ese

play08:25

para ese cero e hizo que ésta sino fetal

play08:27

una línea 6 y después su padre es en yo

play08:30

y no inicio a fila está vacía aquí a

play08:35

phil está vacía y colocamos su vértice s

play08:39

una fila que sería esa línea

play08:46

en cuanto existan vértices cintas o que

play08:48

vamos a hacer es tirar primero el

play08:50

elemento de la fila la línea 11 y para

play08:54

cada vértice asia central y que hizo que

play08:58

éstas y no afecte aquí hay en chivay

play09:00

primero preguntar si el blanco si el

play09:04

blanco qué vamos a hacer vamos color ir

play09:08

cada vértice alias en sí de zinsa

play09:11

actualizar a distancia una línea en esa

play09:14

línea de aquí actualizar quien que hay

play09:18

aquí es cierto tengo que vamos a ver el

play09:22

club hay desde uno que le voy a

play09:24

descubierta desde que en ese caso y

play09:27

después vamos colocar ese vértice ve una

play09:30

fila eso que está siendo feito una línea

play09:33

16

play09:36

después de tener visitado todos los

play09:40

vértices adyacentes

play09:41

aquí hay en tipos y color y dentón

play09:44

finalmente un vértice como que

play09:48

hizo efecto en una niña

play09:52

ahora veamos cuánto que consume de

play09:54

tiempo ese algoritmo primero vamos a

play09:57

analizar a parte de visita dos vértices

play09:59

adyacentes cada vértice colocado en la

play10:02

fila no máximo más beige y por tanto

play10:04

retirado de la fila también un máximo

play10:06

más beige

play10:08

ok precisamos saber cuánto que consume

play10:12

cada operación de colocar la fila y deja

play10:14

tirar la fila cada operación de de kiwi

play10:18

en club que sería colocar y retirar la

play10:20

fila de morante en pro de un evento a un

play10:23

tiempo total de operaciones una fila va

play10:25

a ser o debe

play10:28

el indicio sabemos que la lista de

play10:31

aceites de cada vértice examinados

play10:33

solamente cuando vértice girado y

play10:37

desequilibrado cierto a listas de

play10:40

adyacencias de cada vértice he examinado

play10:43

la verdad sin un máximo más vez ya vimos

play10:46

las aulas anteriores que la cantidad de

play10:50

elementos las listas de adyacencia o de

play10:54

cantidad de aristas

play10:58

por tanto un tiempo gasto para bajar

play11:01

todas todos los elementos las listas de

play11:04

adyacencias va a ser idea

play11:08

entonces podemos concluir que la línea

play11:10

de esta línea de solito consume o dea a

play11:13

partir de inicialización como estamos

play11:15

pero corriendo aquí todos sus vértices

play11:17

en ese lazo de aquí la línea aún estamos

play11:20

por cogiendo todos sus vértices va a ser

play11:23

o debe y por tanto consumo el tiempo de

play11:26

algoritmo de busca en largura va a ser o

play11:29

debe maysan

play11:33

ok alto ahora pasemos para el próximo

play11:36

algoritmo de busca que sería el

play11:38

algoritmo de búsqueda profundidad

play11:40

conocido también como decir search de fs

play11:44

con la idea de ese algoritmo y proseguir

play11:47

a buscar siempre a partir de vértice

play11:49

descubierto más recientemente ate que

play11:53

ese no tenía más diseños descubiertos

play11:55

entones ese caso se falta para un

play11:57

vértice anterior a él

play12:00

o posto dudo algoritmo anterior busquen

play12:03

largura

play12:05

o algoritmo de búsqueda profundidad y

play12:08

explorado vértice más antiguo primero

play12:11

y diferente de otro algoritmo que vimos

play12:14

antes él no va a crear solamente una

play12:16

él iba a crear más florencia que sería

play12:18

un conjunto de árboles

play12:22

o algoritmo de búsqueda profundidad y

play12:24

también marca los vértices de albudeite

play12:26

en este caso los vértices van josé

play12:29

verdejo tú los rótulo de que un momento

play12:33

en que vértice fue descubierto o sella

play12:35

en un momento en que uberti se tornó 60

play12:38

o efe que un momento en que examinamos u

play12:42

se os veciños o sella un momento en que

play12:45

torno o secreto y así a gente sabe que

play12:49

un vértice blanco desde inicio ate the

play12:53

scene sa desde ate efe entre df y el

play12:57

proyecto a partir de ese aunque que

play13:00

vamos a hacer no algoritmos agora para

play13:02

enmarcar con esos rótulos df y así va a

play13:06

precisar de veo más variado que marque

play13:10

el tiempo de visita

play13:14

tenemos aquí un ejemplo tenemos un

play13:17

vértice origen que va a ser este de aquí

play13:21

no iniciando marcamos comenzamos con ese

play13:23

contador de tiempo el tempo está en cero

play13:27

cuando visitamos es el vértice origen un

play13:29

contador va a estar en 1 y marcamos un

play13:32

tiempo de visita del vértice de ese

play13:35

vértice de aquí común

play13:39

ay preguntamos existe algún vértice hay

play13:42

esencia o ver dice que no tenía sido

play13:43

descubierto si existen varios nada

play13:47

así es existen 3-6 israel

play13:51

vamos pegarse un de ellis

play13:53

nos peguemos ese de aquí marcamos el y

play13:57

como visitado con marcamos su valor de

play14:00

de el que va a ser 2

play14:03

cierto ahí continuamos hacemos la misma

play14:06

pregunta existe algún 26 ya sea en el

play14:09

vértice actual que no tenía sido

play14:11

descubierto existe si existen varios

play14:15

existe ese y ese de aquí que estamos

play14:18

pegado un de ellis

play14:20

y antes de eso vamos a marcar él como

play14:22

visitado un tiempo de él y de visita que

play14:25

se dio 3

play14:27

hacemos la misma pregunta existe algún

play14:29

vértice a ellas en su vértice que no

play14:31

tenía sido descubierto entonces vemos

play14:34

aquí usadas ya sensis a ese vértice de

play14:37

aquí ese maíz feliz ya fue descubierto

play14:39

antes no tengáis en todo

play14:43

no existe termine con ese vértice y

play14:47

marcó el y marcó el fin de él

play14:51

marcamos con

play14:53

con un valor de esa variable que hay en

play14:56

esta tengo a un longo de tiempo que

play14:57

sería 4 con un tiempo 4 ese vértice ya

play15:02

fue descubierto y elisa fue y todos sus

play15:07

vecinos de delicias fueron analizados

play15:08

termine con ese vértice pintó el y de

play15:12

y volta se la buscaba yo

play15:14

precursor de ese vértice quien que un

play15:16

precursor de ese vértice ese de aquí

play15:20

y continuamos haciendo la misma pregunta

play15:23

existe al burger dicen 10 en su vértice

play15:27

a ese vértice de aquí que no te haya

play15:29

sido descubierto existe existes

play15:34

que vamos a visitar el viento y marcar

play15:36

un tiempo de visitar visitamos en línea

play15:38

tiempo 5

play15:40

pasemos continuamos con la misma

play15:42

pregunta existe algún berti celia

play15:44

sánchez efe dice que no tenía sido

play15:46

descubierto no

play15:49

esto no existe termine con él y marcó un

play15:52

tiempo del tiempo efe y en todo

play15:57

colocamos aquí 6 y terminé de visitar un

play15:59

tiempo 6 ese vértice botas en la busca

play16:02

pero precursor de ese vértice que en que

play16:04

un precursor de ese vértice un precursor

play16:06

de ese de aquí

play16:10

preguntamos si no existe algún vértice

play16:12

adyacente a él y que no te haya sido

play16:14

descubierto no tengáis entonces marcamos

play16:17

su tiempo de fin de el tiempo de fin de

play16:19

visita de él y estamos no seis un

play16:22

próximo serios hecho con él y fue

play16:25

marcado con un tiempo de 5h y alende

play16:30

hizo el y colorido de pret

play16:34

existe algún vértice alias en su vértice

play16:36

que no tenga sido descubierto

play16:39

entramos por fidel y existe si tomamos

play16:42

más caro el tiempo de visita de él que

play16:45

sería tiempo hoy te parece el vértice de

play16:48

aquí

play16:50

continuamos existe algún particiación si

play16:53

a él y si marcamos un tiempo de visita

play16:56

del serio no existe algún vértice hacia

play17:00

él y no marcamos el y como y

play17:04

marcamos su tiempo de fin que sería days

play17:08

desde aquí

play17:10

la i volta moss para precursor de el que

play17:12

guaita y ahora vamos preguntar si existe

play17:15

algún vértice que haya no fue visitado

play17:21

no tengáis en todo marcamos el y como

play17:24

marcamos su tiempo de visita de

play17:28

fin de visita de él que sería 11 votamos

play17:31

para precursor que ese de aquí o que

play17:34

existe algún vértice adyacencia el que

play17:36

no tenía sido visitado no acabamos con

play17:39

ese vértice marcamos un tiempo de de

play17:42

visita de fin va a ser un 12 y pronto

play17:47

qué aconteció aquí la gente comenzó como

play17:49

vértice origen la gente visitó todos sus

play17:52

vértices accesibles a partir de ese

play17:55

vértice por en haina no visitamos esos

play17:58

dos vértices de aquí tú que te vai facer

play18:00

o algoritmo que busquen profundidad y

play18:03

les voy a continuar con los vértices que

play18:05

hayan estado en blanco que hainán o

play18:07

fueron visitados debemos comenzar con

play18:09

intentando visitar ese vértice de aquí

play18:11

ahora él iba a ser un vértice origen

play18:16

marcamos de un tiempo de inicio la

play18:19

visita 13 preguntamos si existe algún

play18:22

plan y será recibido a partir de él ya

play18:24

existe sin ese de aquí marcamos su

play18:27

tiempo de visita del 14 preguntamos si

play18:31

existe algún vértice adyacente ese 14

play18:33

que no tenía sido visitado no existe más

play18:36

en todo acabamos con ese vértice

play18:38

marcamos su tiempo de fin que facer 15

play18:41

pronto contamos para un antecesor de él

play18:45

y que ese vértice de aquí preguntamos si

play18:48

existe algún vértice adyacencia del que

play18:51

aínda no fue visitado no existen más

play18:53

niños en todo acabamos también con él y

play18:57

marcamos su tiempo de fin de visita del

play18:58

que va a ser 16

play19:02

un resultado que los resultados de

play19:04

algoritmo de búsqueda profundidad de una

play19:07

floresta en este caso más floresta que

play19:09

tendrás árboles cadenas los árboles la

play19:12

verdad ya sabe estas es de esas árboles

play19:14

esta marca de enfermería y tenemos aquí

play19:18

un árbol

play19:20

y tenemos aquí una u otra árbol

play19:24

plantemos un árbol con seis vértices y

play19:27

tenemos otra árbol con dos vértices o

play19:33

pensamos en toma gora finalmente

play19:35

algoritmo de búsqueda profundidad juppé

play19:37

pseudo código de eli y primero vamos a

play19:41

ver qué acontece cuando visitamos un no

play19:44

un vértice lo primero que vamos a hacer

play19:47

es color y el vértice de zinsa

play19:51

porque indica que uberti se acabo de ser

play19:54

descubierto después vamos a hacer ese

play19:57

contador que vaya aumentando de 1

play20:00

marcamos su tiempo de visita de de ese

play20:04

vértice con ese valor de esa variable de

play20:08

tiempo del contador de tiempo y después

play20:10

vamos ver si existe algún vértice alias

play20:13

el chele y se está haciendo feito las

play20:16

líneas 4 5 y 6

play20:21

tengo que vamos a hacer si un vértice

play20:24

hacia seychelles de blanco

play20:27

en todo el juego marcado en kuwait desde

play20:30

antes el pay de ella más recursiva mente

play20:34

o algoritmo que visite un vértice como

play20:37

llamar o algoritmo decir search con un

play20:40

parámetro b para ser llamado recursiva

play20:43

mente visitar a gurús vértice ve cuando

play20:45

él y termine de explorar todos sus

play20:48

vértices adyacentes

play20:51

entonces ya podemos hablar que todos sus

play20:55

vértices adyacentes fueron examinados y

play20:58

por tanto podemos marcar ese vértice o

play21:01

decor prette ok y marcamos también un

play21:06

tiempo designado de visita de él y que

play21:07

eeuu efe

play21:10

esto de aquí que vais a hacer en la

play21:12

verdad crear un árbol más segura

play21:17

antes que busca en profundidad el y cría

play21:22

una floresta con como pasemos para crear

play21:26

la floresta lo que vamos a hacer

play21:27

entonces llamar es y algoritmos varias

play21:31

veces para los vértices que aínda son

play21:34

blancos aunque falso decir 6 visite el y

play21:37

visita un vértice y todos los usos

play21:42

adyacentes para todos sus usuarios

play21:44

alcanzables a partir de él y voy a crear

play21:47

más árboles con país en un es en ese

play21:51

caso

play21:53

entonces aquí tenemos un algoritmo que

play21:55

se llama ese algoritmo decir sense visit

play21:59

este algoritmo va a recibir un conjunto

play22:02

de vértices conjunto de aristas y un

play22:05

primero que vais a hacer a partir de

play22:07

inicialización y después a llamada a ese

play22:10

algoritmo que visita un vértice no es un

play22:13

apache de inicialización que son esas

play22:16

líneas de aquí ser tocadas vértice del

play22:19

primero y colorido de blanco no sabemos

play22:22

qué en kuwait son colocamos su país todo

play22:24

el mundo y guagua new un tiempo comencé

play22:26

en cero tiempo de visita que hoy en

play22:28

tchité para marcar de puestos de uefa y

play22:32

después para cada vértice que existe en

play22:34

un grafo que vamos preguntar y vértice

play22:37

hay blancos y el blanco visitamos cl

play22:41

y entonces el llamado ese algoritmo de

play22:44

aquí que va a visitar todos sus vértices

play22:46

que son atendibles a partir de v

play22:50

se detuvo parece que aquí un árbol y

play22:53

aquí una verdad si fueses criada más

play22:56

floresta ese algoritmo de búsqueda

play22:59

profundidad si también tengo un consumo

play23:01

de tiempo de odio de maíz

play23:05

igual que el algoritmo de busca en

play23:07

largura con eso terminamos entonces

play23:11

a presentar son los dos algoritmos

play23:13

básicos de busca buscar en algoritmos

play23:15

que en profundidad y en grafos espero

play23:17

que nos estén y han gustado y teatros

play23:20

[Música]

play23:38

2

play23:40

[Música]

play23:49

[Música]

play23:55

play23:58

[Música]

play24:01

ah

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
Graph AlgorithmsSearch TechniquesBreadth-First SearchDepth-First SearchSystematic ExplorationProblem SolvingData StructuresAlgorithm AnalysisComputer ScienceEducational Content
¿Necesitas un resumen en inglés?