SlideShare una empresa de Scribd logo
1 de 47
Búsquedas Arboles y Grafos Modificado y Adaptado:  Leonardo Bernal Zamora Asignatura Inteligencia Artificial Universidad de Boyacá.
Definición de Árbol ,[object Object]
Representación de un Árbol. ,[object Object],[object Object],[object Object],[object Object],a b c d e f a c d b e f
Conceptos Básicos  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conceptos Básicos (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Conceptos Básicos (cont.) ,[object Object],[object Object],[object Object],[object Object]
Conceptos Básicos Raíz hijo Hermano Padre hoja Subárbol Nivel de profundidad  = 7 Grado de un nodo = 3 Grado del árbol = 3
[object Object],[object Object],[object Object],Recorridos por árboles: 
A B E K F D H  J N O
 
Realice el recorrido para el siguiente Árbol 30 15 47 10 44 51 40 46 13
Recorridos de un árbol de Búsqueda Binaria (ABB) Preorden =   30  15 10 13 47 44 40 46 51 Inorden  =  10 13 15 30 40 44 46 47 51 Postorden =  13 10 15 40 46 44 51 47 30  30 15 47 10 44 51 40 46 13
Reconstrucción de un árbol binario a partir de sus recorridos ,[object Object]
[object Object],[object Object]
Repetir los pasos 1 y 2 con cada uno de los subárboles encontrados
Método de resolución de problemas ,[object Object],[object Object],[object Object],[object Object]
Método de resolución de problemas... ,[object Object],[object Object],[object Object],[object Object]
Método de resolución de problemas... ,[object Object],[object Object],[object Object]
DFS (Depth Firts Search ) ,[object Object],[object Object],[object Object]
Búsqueda DEPTH FIRST ... ,[object Object],[object Object]
 
Database Vuelo(symbol,symbol,integer) Clauses vuelo(santiago,la_serena,474). vuelo(santiago,antofagasta,1361). vuelo(santiago,arica,2062). vuelo(santiago,calama,1574). vuelo(santiago,copiapó,801). vuelo(la_serena,copiapó,333). vuelo(la_serena,chañaral,497). vuelo(chañaral,copiapó,167). vuelo(copiapó,el_salvador,282). vuelo(antofagasta,tocopilla,188). vuelo(arica,iquique,316). vuelo(arica,calama,614). vuelo(arica,copiapó1261).
%Ejemplo de Búsqueda en Profundidad Clauses  encuentra_ruta:- write(" Desde : "),readln(A), write(" con Destino a: "),  readln(B), hay_vuelo (A,B,D), write("La distancia es:  ",D),nl,not(muestra_ruta).  %  Ver si hay  conexió n entre dos   ciudades    con ruta  directa  hay_vuelo(C1,C2,D): -v uelo(C1,C2,D),agrega_a_ruta(C1).  %   Búsqueda  en Profundidad       hay_vuelo(C1,C2,D):-  vuelo(C1,X,D2), agrega_a_ruta(C1), hay_vuelo(X,C2,D3), D=D2+D3.  %  Indica si  llegó  a punto sin destino       hay_vuelo(C1,_,D):-write(" Punto muerto en ",C1),nl,D=0,fail.       agrega_a_ruta(C):-not(visitada(C)),assert(visitada(C)),!.      agrega_a_ruta(_).       muestra_ruta:- write(" La ruta es "),nl, visitada(A),write(A),nl,fail,!.
BFS (Bread First Search) ,[object Object],[object Object],[object Object]
Búsqueda BREADTH FIRST  Este árbol es recorrido de la siguiente forma :   A,B,C,D,G,F,E
% Ejemplo de Búsqueda en Anchura % Ruta directa hay_vuelo(C1,C2,D):- v uelo(C1,C2,D),   agrega_a_ruta(C1).  %  hacer primero en anchura  hay_vuelo(C,C2,D):- vuelo(C,X,D2),   vuelo(X,C2,D3), agrega_a_ruta(C),                          agrega_a_ruta(X),  D= D2+D3.  hay_vuelo(C,C2,D):- vuelo(C,X,D2), X<>C2,  agrega_a_ruta(C), hay_vuelo(X,C2,D3), D=D2+D3.  hay_vuelo(C1,_,D):- write(&quot;Punto muerto en &quot;,C1),  nl,D=0,fail.
Búsqueda Heurística ,[object Object],[object Object],[object Object]
Búsqueda Heurística... ,[object Object]
% Ejemplo de Búsqueda Heurística Remonte de Colina hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T).  %  hacer primero en anchura hay_vuelo(T,T2,D):- encontrar _m a s_grande(T,X), agrega_a_ruta(T),vuelo(T,X,D2), hay _vuelo(X,T2,D3), D=D2+D3.   hay_vuelo(T,T2,D):- vuelo(T,X,D2), X<>T2, agrega_a_ruta( T ),hay_vuelo(X, T 2,D3),  D=D2+D3.  hay_vuelo(C1,_,D):- write(&quot; Punto muerto en &quot;,C1), nl,D=0,fail.  encontrar_mas_grande( A , B ):- vuelo(A,X,D), vuelo(A,Y,D2),X<>Y, D2>D, B=Y.
% Ejemplo de Búsqueda Heurística Menor Coste hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T).  %  hacer primero en anchura hay_vuelo(T,T2,D):-  encontra r _m a s_corta(T,X), agrega_a_ruta(T),vuelo(T,X,D2),   hay _vuelo(X,T2,D3), D=D2+D3.   hay_vuelo(T,T2,D):- vuelo(T,X,D2), X<>T2,   agrega_a_ruta( T ),hay_vuelo(X, T 2,D3),   D=D2+D3.  hay_vuelo(C1,_,D):- write(&quot; Punto muerto en&quot;,C1),     nl,D=0,fail.  encontrar_mas_ corta ( A , B ):-vuelo(A,X,D), vuelo(A,Y,D2), X<>Y, D>D2, B=Y.
Recorridos sobre grafos. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],  .. Tema 4. Grafos.
Recorridos sobre grafos. Búsqueda primero en profundidad.
Búsqueda primero en profundidad. Muchos algoritmos de grafos necesitan visitar de un modo sistemático todos los vértices de un grafo. En la búsqueda en profundidad se avanza de vértice en vértice, marcando cada vértice visitado. La búsqueda siempre avanza hacia un vértice no marcado, internándose “profundamente” en el grafo sin repetir ningún vértice. Cuando se alcanza un vértice cuyos vecinos han sido marcados, se retrocede al anterior vértice visitado y se avanza desde éste.
Búsqueda primero en profundidad.   .. Tema 4. Grafos. operación  bpp (v: nodo) marca[v]:= visitado para cada  nodo w adyacente a v  hacer   si  marca[w] == noVisitado  entonces bpp(w) finpara operación  BúsquedaPrimeroEnProfundidad BorraMarcas para  v:= 1, ..., n  hacer   si  marca[v] == noVisitado  entonces bpp(v) finpara
Búsqueda primero en profundidad.   .. Tema 4. Grafos. ,[object Object],[object Object],[object Object],[object Object],1 2 3 6 8 7 4 9 5
Búsqueda primero en profundidad.   .. Tema 4. Grafos. ,[object Object],[object Object],1 2 3 6 8 7 4 9 5 1º 2º 4º 3º 6º 5º 8º 7º 9º Arcos del árbol Arcos no del árbol
Ejemplo. Grafo no dirigido Búsqueda primero en profundidad: Equivalente al recorrido en preorden de un árbol.
Búsqueda primero en profundidad. ,[object Object],[object Object],[object Object],  .. Tema 4. Grafos. Bosque de expansión 1º 2º 4º 3º 5º Arco de avance Arco de retroceso Arco de cruce ,[object Object],a b c e d b c e d a
Recorridos sobre grafos. Búsqueda primero en Anchura o Amplitud.
[object Object],Búsqueda primero en anchura (o amplitud).
Búsqueda primero en anchura (o amplitud). ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],  .. Tema 4. Grafos.
Búsqueda primero en anchura (o amplitud). ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],  .. Tema 4. Grafos.
Búsqueda primero en anchura (o amplitud).   .. Tema 4. Grafos. ,[object Object],[object Object],1 2 3 7 8 6 4 9 5 Arcos de cruce 1º 2º 4º 3º 6º 5º 8º 7º 9º + 1 2 3 7 8 6 4 9 5
[object Object],Búsqueda primero en anchura: Equivalente al recorrido de un árbol por niveles
Búsqueda primero en anchura (o amplitud). ,[object Object],[object Object],[object Object],  .. Tema 4. Grafos. Bosque de expansión ,[object Object],1º 2º 4º 3º 5º a b c e d b c e d a
Recorridos sobre grafos. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],  .. Tema 4. Grafos.
Webgrafia ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Inversa de una matriz
Inversa de una matrizInversa de una matriz
Inversa de una matrizalgebra
 
Sistemas de ecuaciones
Sistemas de ecuacionesSistemas de ecuaciones
Sistemas de ecuacionesujgh
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Sistemas de ecuaciones homogéneas por el método de Gauss Jordan
Sistemas de ecuaciones homogéneas por el método de Gauss JordanSistemas de ecuaciones homogéneas por el método de Gauss Jordan
Sistemas de ecuaciones homogéneas por el método de Gauss JordanDaniel Orozco
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda BinariaITCV
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
Solución Numérica de Ecuaciones no Lineales:Métodos cerrados
Solución Numérica de Ecuaciones no Lineales:Métodos cerradosSolución Numérica de Ecuaciones no Lineales:Métodos cerrados
Solución Numérica de Ecuaciones no Lineales:Métodos cerradosPervys Rengifo
 

La actualidad más candente (20)

Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Tercera practica
Tercera practicaTercera practica
Tercera practica
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Inversa de una matriz
Inversa de una matrizInversa de una matriz
Inversa de una matriz
 
REGLAS DE CODD
REGLAS DE CODDREGLAS DE CODD
REGLAS DE CODD
 
Sistemas de ecuaciones
Sistemas de ecuacionesSistemas de ecuaciones
Sistemas de ecuaciones
 
Arboles
ArbolesArboles
Arboles
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Sistemas de ecuaciones homogéneas por el método de Gauss Jordan
Sistemas de ecuaciones homogéneas por el método de Gauss JordanSistemas de ecuaciones homogéneas por el método de Gauss Jordan
Sistemas de ecuaciones homogéneas por el método de Gauss Jordan
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Grafos resueltos
Grafos  resueltosGrafos  resueltos
Grafos resueltos
 
Problema 8 puzzle
Problema 8 puzzleProblema 8 puzzle
Problema 8 puzzle
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Solución Numérica de Ecuaciones no Lineales:Métodos cerrados
Solución Numérica de Ecuaciones no Lineales:Métodos cerradosSolución Numérica de Ecuaciones no Lineales:Métodos cerrados
Solución Numérica de Ecuaciones no Lineales:Métodos cerrados
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Transacciones
TransaccionesTransacciones
Transacciones
 

Similar a Busquedas en arboles

Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arbolesrafyel2000
 
Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parteSergio Ormeño
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructurasVana Cigarroa
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructurasVana Cigarroa
 
Metodos De Busquedas Ia
Metodos De Busquedas IaMetodos De Busquedas Ia
Metodos De Busquedas Iaguestff1816
 
Metodos De Busquedas
Metodos De BusquedasMetodos De Busquedas
Metodos De Busquedasdploorz
 
Exposicion de estructuras discretas
Exposicion de estructuras discretasExposicion de estructuras discretas
Exposicion de estructuras discretasjcdlcs
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzadaMaestros Online
 
Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parteJohnfornerod
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datosnukeeHE
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
Unidad 4 diana karina pech may
Unidad 4  diana karina pech mayUnidad 4  diana karina pech may
Unidad 4 diana karina pech mayKarina1602
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia ArtificialAndres
 

Similar a Busquedas en arboles (20)

6 prob busquinte
6 prob busquinte6 prob busquinte
6 prob busquinte
 
Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
 
Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parte
 
Arbol
ArbolArbol
Arbol
 
Arbol
ArbolArbol
Arbol
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Metodos De Busquedas Ia
Metodos De Busquedas IaMetodos De Busquedas Ia
Metodos De Busquedas Ia
 
Metodos De Busquedas
Metodos De BusquedasMetodos De Busquedas
Metodos De Busquedas
 
Exposicion de estructuras discretas
Exposicion de estructuras discretasExposicion de estructuras discretas
Exposicion de estructuras discretas
 
12. Arboles.ppt
12. Arboles.ppt12. Arboles.ppt
12. Arboles.ppt
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parte
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles02
Arboles02Arboles02
Arboles02
 
Arboles
ArbolesArboles
Arboles
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Unidad 4 diana karina pech may
Unidad 4  diana karina pech mayUnidad 4  diana karina pech may
Unidad 4 diana karina pech may
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 

Más de Leonardo Bernal Zamora: Docente, Internauta y convencido de la educación para todos

Más de Leonardo Bernal Zamora: Docente, Internauta y convencido de la educación para todos (20)

Conceptos y operaciones básicas
Conceptos y operaciones básicasConceptos y operaciones básicas
Conceptos y operaciones básicas
 
Operaciones lenguajes
Operaciones lenguajesOperaciones lenguajes
Operaciones lenguajes
 
Operaciones cadenas
Operaciones cadenasOperaciones cadenas
Operaciones cadenas
 
Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013
 
Rea actividad 2
Rea actividad 2Rea actividad 2
Rea actividad 2
 
Rea
ReaRea
Rea
 
Busquedas en internet
Busquedas en internetBusquedas en internet
Busquedas en internet
 
Proyecto java
Proyecto javaProyecto java
Proyecto java
 
Clase 2 POO
Clase 2 POOClase 2 POO
Clase 2 POO
 
Clase5 POO
Clase5 POOClase5 POO
Clase5 POO
 
Clase 41
Clase 41Clase 41
Clase 41
 
Clase 4
Clase 4Clase 4
Clase 4
 
2 elementos pseudocodigo
2 elementos pseudocodigo2 elementos pseudocodigo
2 elementos pseudocodigo
 
Clase 23
Clase 23Clase 23
Clase 23
 
Clase 22
Clase 22Clase 22
Clase 22
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Unidad 4 docentes colombianos
Unidad 4 docentes colombianosUnidad 4 docentes colombianos
Unidad 4 docentes colombianos
 
Prolog file
Prolog fileProlog file
Prolog file
 
Prolog 2011 2
Prolog 2011 2Prolog 2011 2
Prolog 2011 2
 
Practicas prolog2011 listas
Practicas prolog2011 listasPracticas prolog2011 listas
Practicas prolog2011 listas
 

Busquedas en arboles

  • 1. Búsquedas Arboles y Grafos Modificado y Adaptado: Leonardo Bernal Zamora Asignatura Inteligencia Artificial Universidad de Boyacá.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Conceptos Básicos Raíz hijo Hermano Padre hoja Subárbol Nivel de profundidad = 7 Grado de un nodo = 3 Grado del árbol = 3
  • 8.
  • 9. A B E K F D H J N O
  • 10.  
  • 11. Realice el recorrido para el siguiente Árbol 30 15 47 10 44 51 40 46 13
  • 12. Recorridos de un árbol de Búsqueda Binaria (ABB) Preorden = 30 15 10 13 47 44 40 46 51 Inorden = 10 13 15 30 40 44 46 47 51 Postorden = 13 10 15 40 46 44 51 47 30 30 15 47 10 44 51 40 46 13
  • 13.
  • 14.
  • 15. Repetir los pasos 1 y 2 con cada uno de los subárboles encontrados
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.  
  • 22. Database Vuelo(symbol,symbol,integer) Clauses vuelo(santiago,la_serena,474). vuelo(santiago,antofagasta,1361). vuelo(santiago,arica,2062). vuelo(santiago,calama,1574). vuelo(santiago,copiapó,801). vuelo(la_serena,copiapó,333). vuelo(la_serena,chañaral,497). vuelo(chañaral,copiapó,167). vuelo(copiapó,el_salvador,282). vuelo(antofagasta,tocopilla,188). vuelo(arica,iquique,316). vuelo(arica,calama,614). vuelo(arica,copiapó1261).
  • 23. %Ejemplo de Búsqueda en Profundidad Clauses encuentra_ruta:- write(&quot; Desde : &quot;),readln(A), write(&quot; con Destino a: &quot;), readln(B), hay_vuelo (A,B,D), write(&quot;La distancia es: &quot;,D),nl,not(muestra_ruta). % Ver si hay conexió n entre dos ciudades    con ruta directa hay_vuelo(C1,C2,D): -v uelo(C1,C2,D),agrega_a_ruta(C1). % Búsqueda en Profundidad     hay_vuelo(C1,C2,D):- vuelo(C1,X,D2), agrega_a_ruta(C1), hay_vuelo(X,C2,D3), D=D2+D3. % Indica si llegó a punto sin destino     hay_vuelo(C1,_,D):-write(&quot; Punto muerto en &quot;,C1),nl,D=0,fail.     agrega_a_ruta(C):-not(visitada(C)),assert(visitada(C)),!.     agrega_a_ruta(_).     muestra_ruta:- write(&quot; La ruta es &quot;),nl, visitada(A),write(A),nl,fail,!.
  • 24.
  • 25. Búsqueda BREADTH FIRST Este árbol es recorrido de la siguiente forma : A,B,C,D,G,F,E
  • 26. % Ejemplo de Búsqueda en Anchura % Ruta directa hay_vuelo(C1,C2,D):- v uelo(C1,C2,D), agrega_a_ruta(C1). % hacer primero en anchura hay_vuelo(C,C2,D):- vuelo(C,X,D2), vuelo(X,C2,D3), agrega_a_ruta(C),                         agrega_a_ruta(X), D= D2+D3. hay_vuelo(C,C2,D):- vuelo(C,X,D2), X<>C2, agrega_a_ruta(C), hay_vuelo(X,C2,D3), D=D2+D3. hay_vuelo(C1,_,D):- write(&quot;Punto muerto en &quot;,C1), nl,D=0,fail.
  • 27.
  • 28.
  • 29. % Ejemplo de Búsqueda Heurística Remonte de Colina hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T). % hacer primero en anchura hay_vuelo(T,T2,D):- encontrar _m a s_grande(T,X), agrega_a_ruta(T),vuelo(T,X,D2), hay _vuelo(X,T2,D3), D=D2+D3. hay_vuelo(T,T2,D):- vuelo(T,X,D2), X<>T2, agrega_a_ruta( T ),hay_vuelo(X, T 2,D3), D=D2+D3. hay_vuelo(C1,_,D):- write(&quot; Punto muerto en &quot;,C1), nl,D=0,fail. encontrar_mas_grande( A , B ):- vuelo(A,X,D), vuelo(A,Y,D2),X<>Y, D2>D, B=Y.
  • 30. % Ejemplo de Búsqueda Heurística Menor Coste hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T). % hacer primero en anchura hay_vuelo(T,T2,D):- encontra r _m a s_corta(T,X), agrega_a_ruta(T),vuelo(T,X,D2), hay _vuelo(X,T2,D3), D=D2+D3. hay_vuelo(T,T2,D):- vuelo(T,X,D2), X<>T2, agrega_a_ruta( T ),hay_vuelo(X, T 2,D3), D=D2+D3. hay_vuelo(C1,_,D):- write(&quot; Punto muerto en&quot;,C1),  nl,D=0,fail. encontrar_mas_ corta ( A , B ):-vuelo(A,X,D), vuelo(A,Y,D2), X<>Y, D>D2, B=Y.
  • 31.
  • 32. Recorridos sobre grafos. Búsqueda primero en profundidad.
  • 33. Búsqueda primero en profundidad. Muchos algoritmos de grafos necesitan visitar de un modo sistemático todos los vértices de un grafo. En la búsqueda en profundidad se avanza de vértice en vértice, marcando cada vértice visitado. La búsqueda siempre avanza hacia un vértice no marcado, internándose “profundamente” en el grafo sin repetir ningún vértice. Cuando se alcanza un vértice cuyos vecinos han sido marcados, se retrocede al anterior vértice visitado y se avanza desde éste.
  • 34. Búsqueda primero en profundidad. .. Tema 4. Grafos. operación bpp (v: nodo) marca[v]:= visitado para cada nodo w adyacente a v hacer si marca[w] == noVisitado entonces bpp(w) finpara operación BúsquedaPrimeroEnProfundidad BorraMarcas para v:= 1, ..., n hacer si marca[v] == noVisitado entonces bpp(v) finpara
  • 35.
  • 36.
  • 37. Ejemplo. Grafo no dirigido Búsqueda primero en profundidad: Equivalente al recorrido en preorden de un árbol.
  • 38.
  • 39. Recorridos sobre grafos. Búsqueda primero en Anchura o Amplitud.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.