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

Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
Frank Doria
 
Heap sort
Heap sortHeap sort
Heap sort
Wili Cjuro
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
leidy2220
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
rehoscript
 

La actualidad más candente (20)

332 presentacion grafos
332 presentacion grafos332 presentacion grafos
332 presentacion grafos
 
Árboles Binarios
Árboles BinariosÁrboles Binarios
Árboles Binarios
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 
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
 
Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de Grafos
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Recorrido de anchura
Recorrido de anchuraRecorrido de anchura
Recorrido de anchura
 
Lecture 12 Heuristic Searches
Lecture 12 Heuristic SearchesLecture 12 Heuristic Searches
Lecture 12 Heuristic Searches
 
Criterios de Busqueda en I.A
Criterios de Busqueda en I.ACriterios de Busqueda en I.A
Criterios de Busqueda en I.A
 
Heap sort
Heap sortHeap sort
Heap sort
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 

Similar a Busquedas en arboles

Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
rafyel2000
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
Vana Cigarroa
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
Vana Cigarroa
 
Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parte
Johnfornerod
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
ale8819
 
Unidad 4 diana karina pech may
Unidad 4  diana karina pech mayUnidad 4  diana karina pech may
Unidad 4 diana karina pech may
Karina1602
 

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.