unidad_01

103
Inteligencia Artificial II Unidad 01 Busqueda no Informada Luis Nibaldo Oyarz´ un ´ Alava IngenieroElectr´onico [email protected] [email protected] Universidad T´ ecnica de Manab´ ı Facultad de Ciencias Inform´ aticas 8 de junio de 2015 Luis Oyarz´ un ´ Alava (UTM) Unidad01 8 de junio de 2015 1 / 84

Upload: jose-sornoza

Post on 11-Apr-2016

7 views

Category:

Documents


0 download

DESCRIPTION

En ciencias de la computación, un árbol binario es una estructura de datos en la cual cada nodo puede tener un hijo izquierdo y un hijo derecho. No pueden tener más de dos hijos (de ahí el nombre "binario"). Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno. Usos comunes de los árboles binarios son los árboles binarios de búsqueda, los montículos binarios y Codificación de Huffman.

TRANSCRIPT

Page 1: Unidad_01

Inteligencia Artificial IIUnidad 01

Busqueda no Informada

Luis Nibaldo Oyarzun AlavaIngeniero Electronico

[email protected]@utm.edu.ec

Universidad Tecnica de ManabıFacultad de Ciencias Informaticas

8 de junio de 2015

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 1 / 84

Page 2: Unidad_01

Tabla de Contentenidos

1 Busqueda No InformadaBusqueda

Arboles y GrafosBusqueda en AmplitudBusqueda en Profundidad

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 2 / 84

Page 3: Unidad_01

Reglas

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 3 / 84

Page 4: Unidad_01

Busquedas

En esta unidad vamos a tratar las busquedas, en especial las Busquedasno Informadas porque estas no presentan ninguna ayuda al momento debuscar una solucion rapida.La UNICA ayuda que presentan son las planteadas en el problema.Por su parte si la durante la busqueda hay ayudas o informacion relevanteestamos en el caso de Busquedas Informadas

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 4 / 84

Page 5: Unidad_01

Busquedas

Un ejemplo de “Busqueda Informada”serıa el siguiente:

Me interesa encontrar al menos una persona que le guste verAnime genero Mechas en el curso de “Inteligencia Artificial”.

El problema no da mayor informacion, salvo que es en el curso de“Inteligencia Artificial”. Por lo tanto se debera preguntar a cadaestudiante si le gusta el Anime genero Mechas o no.La busqueda que se realiza de manera informada tambien se llama“Busqueda a Ciegas”.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 5 / 84

Page 6: Unidad_01

Busquedas

Un ejemplo de “Busqueda Informada”serıa el siguiente:

Me interesa encontrar al menos una persona que le guste verAnime genero Mechas en el curso de “Inteligencia Artificial”.

El problema no da mayor informacion, salvo que es en el curso de“Inteligencia Artificial”. Por lo tanto se debera preguntar a cadaestudiante si le gusta el Anime genero Mechas o no.La busqueda que se realiza de manera informada tambien se llama“Busqueda a Ciegas”.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 5 / 84

Page 7: Unidad_01

Busquedas

Empecemos con un juego de ninos:El juego de bloques para construir

Este juego consiste en agrupar los bloques uno sobre otro (verticalmente)u ordenando estos en lınea de forma distinta (horizontalmente), es decir:ACB, ,CAB, BAC, BCA, CBA, etc. Con la unica limitante de poder moversolo un bloque a la vez.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 6 / 84

Page 8: Unidad_01

Busquedas

Empecemos con un juego de ninos:El juego de bloques para construir

Este juego consiste en agrupar los bloques uno sobre otro (verticalmente)u ordenando estos en lınea de forma distinta (horizontalmente), es decir:ACB, ,CAB, BAC, BCA, CBA, etc. Con la unica limitante de poder moversolo un bloque a la vez.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 6 / 84

Page 9: Unidad_01

Busquedas

Antes de comenzar a buscar soluciones se deben plantear algunaspreguntas:

1 ¿Cual es el espacio de estados del problema?

2 ¿Cual es el estado inicial y el final (objetivo)?

3 ¿Que operacion nos permite pasar de un estado a otro?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 7 / 84

Page 10: Unidad_01

Busquedas

Antes de comenzar a buscar soluciones se deben plantear algunaspreguntas:

1 ¿Cual es el espacio de estados del problema?

2 ¿Cual es el estado inicial y el final (objetivo)?

3 ¿Que operacion nos permite pasar de un estado a otro?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 7 / 84

Page 11: Unidad_01

Busquedas

Antes de comenzar a buscar soluciones se deben plantear algunaspreguntas:

1 ¿Cual es el espacio de estados del problema?

2 ¿Cual es el estado inicial y el final (objetivo)?

3 ¿Que operacion nos permite pasar de un estado a otro?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 7 / 84

Page 12: Unidad_01

Busquedas

Antes de comenzar a buscar soluciones se deben plantear algunaspreguntas:

1 ¿Cual es el espacio de estados del problema?

2 ¿Cual es el estado inicial y el final (objetivo)?

3 ¿Que operacion nos permite pasar de un estado a otro?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 7 / 84

Page 13: Unidad_01

Busquedas

Suponiendo que el estado inicial sea cualquier posicion de las piezas y elestado final sea las piezas ordenadas verticalmente.De igual forma para saber el numero de posibles ESPACIOS de ESTADOSprevios hay que aplicar las formulas de combinaciones, variaciones ypermutaciones, CON y SIN repeticion segun el caso.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 8 / 84

Page 14: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 15: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 16: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 17: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 18: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 19: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 20: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 21: Unidad_01

Busquedas

Para determinar las operaciones debemos definirlas en funcion de losestados que me permita explorar el sistema.De ahı que puedo definir las operaciones como:

Intercambios desde los extremos (E).

Intercambios Derecha-Centro (D).

Intercambios Izquierda-Centro (I).

Mover del Piso sobre un Bloque (PB).

Mover de Sobre un Bloque al Piso (BP).

Mover de un Bloque a otro Bloque (BB).

Teniendo en cuenta que solo puedo utilizar estas operaciones y sus estadosinicial y objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 9 / 84

Page 22: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 23: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 24: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 25: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 26: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 27: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 28: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 29: Unidad_01

Arboles y Grafos

Conocidos los antecedentes hay que determinar:¿Como se debe representar el problema planteado para que este pueda serentendido por el computador?¿Como representar sus estados?¿Podrıa ser un vector o una lista? =⇒ [B,C,A]¿Podrıa ser una matriz o una matriz esparsa?¿Cuales serıan las limitantes de cada una?Podrıan ser validos, ¿Pero es la forma correcta para organizarlos?

¿Cual es el costo computacional de estos metodos?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 10 / 84

Page 30: Unidad_01

Arboles y Grafos

Una forma de representar los estados y sus resultados al aplicar unoperador es a traves de un Arbol que muestra como evolucionarıan losestados al ir aplicando las respectivas operaciones:

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 11 / 84

Page 31: Unidad_01

Arboles y Grafos

De acuerdo a la nomenclatura utilizada en arboles, llamaremos Nodos acada uno de los estados clasificandolos en:

A cada uno de los resultantes (Nodo Hijo)

Al nodo que genero un hijo se le llama (Nodo Padre)

Si varios nodos pertenecen a un mismo padre se llaman (NodosHermanos)

Solo el nodo superior no tiene un padre y se le llama (Nodo Raız)

Cuando un nodo no tiene hijos se le llama (Nodo Hoja)

Si un nodo tiene padre y al menos un hijo lo llamaremos (Rama)

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 12 / 84

Page 32: Unidad_01

Arboles y Grafos

El numero de operaciones que se pueden realizar a un nodo, es el numerode hijos que este puede tener.Al numero de hijos que un nodo puede tener se le llama “Factor deRamificacion”.En el caso de expandir un nodo a traves de las operaciones posibles se diceque este ha descendido un Nivel de jerarquıa.

NOTA: En un arbol pueden existir estados repetidos de acuerdo a laoperacion aplicada, por ejemplo si al Nodo Raız aplico una operacion (E) yluego la al nodo resultante se vuelve a aplicar, en nuevo nodo sera igualque el nodo raız.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 13 / 84

Page 33: Unidad_01

Arboles y Grafos

Para evitar este tipo de problemas podemos organizar la informacion enGrafos, que es una estructura similar al arbol, que permite unir los nodosa traves de ciclos.Los Grafos se representan uniendo los nodos a traves de aristas quepueden ser lıneas o flechas curvas.Donde si el estado actual permite regresar a su estado anterior se utilizauna lınea, caso contrario se utiliza una flecha indicando que el sentidoUNICO del recorrido.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 14 / 84

Page 34: Unidad_01

Arboles y Grafos

Cuando en el desarrollo del arbol se encuentran ciclos, como nos hapasado en este caso, la busqueda de la solucion podrıa no encontrarsenunca, ya que el programa podrıa quedar indefinidamente en esos ciclos,por lo que tendremos que evitarlos.Una forma habitual de hacerlo es “recordar”que nodos hemos visitadoalmacenandolos en memoria y cada vez que lleguemos a un nuevo nodo,comprobar que no lo hemos visitado ya con anterioridad.Encontrar una solucion a un problema consistira en hacer una busqueda enel arbol de estados o en un grafo para encontrar un nodo que contenga unestado objetivo.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 15 / 84

Page 35: Unidad_01

Arboles y Grafos

Busqueda en el ArbolEn general, el recorrido de un arbol (o grafo) se compone de los siguientespasos:

1 Seleccionamos el nodo raız y lo almacenamos en una lista quecontendra aquellos nodos que estan pendientes de visitar. A esta listala llamaremos frontera (tambien se conoce como lista abierta).

2 Cogemos un nodo de la lista de nodos frontera y comprobamos si esun nodo objetivo. Si lo es, hemos terminado.

3 Generamos todos los hijos del nodo seleccionado en el paso 2aplicando los operadores que hemos definido. Esto es lo que se llamaexpandir un nodo. Anadimos los nuevos nodos hijo a la lista de nodosfrontera.

4 Volvemos al paso 2 hasta que la lista de nodos frontera este vacıa.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 16 / 84

Page 36: Unidad_01

Arboles y Grafos

Busqueda en el GrafoSi en lugar de un arbol estamos trabajando con un grafo, el procesocambia ligeramente:

1 Seleccionamos el nodo raız y lo almacenamos en la lista de nodosfrontera.

2 Cogemos un nodo de la lista de nodos frontera y comprobamos si esun nodo objetivo. Si lo es, hemos terminado. Ademas, almacenamosel nodo en una lista llamada visitados, que contiene todos los nodosvisitados hasta el momento.

3 Generamos todos los hijos del nodo seleccionado en el paso 2aplicando los operadores que hemos definido. Para cada hijocomprobamos que no esta en la lista de nodos visitados, y si no esta,la anadimos a la lista de nodos frontera.

4 Volvemos al paso 2 hasta que la lista de nodos frontera este vacıa.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 17 / 84

Page 37: Unidad_01

Arboles y Grafos

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 18 / 84

Page 38: Unidad_01

Arboles y Grafos

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 19 / 84

Page 39: Unidad_01

Arboles y Grafos

Busqueda de CaminosLa busqueda de un camino (pathfinding) es un problema que se encuentraen la mayorıa de las aplicaciones desarrolladas en este campo. El problemase lo puede plantear de la siguiente manera:En un grado que representa es espacio de estados a traves de sus nodos yaristas, se necesita calcular la serie de nodos y aristas que se dan entre dosnodos.A cada camino se puede asignar un coste (numero de aristas recorridas,suma de longitudes de las aristas, etc.).El camino con menor coste sera el camino mınimo entre esos dos puntos.No siempre sera necesario buscar el camino mınimo, solamente conencontrar uno optimo es suficiente y ası se podra ahorrar recursos y en unjuego por ejemplo evitar que el jugador prevea los futuros pasos o jugadas.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 20 / 84

Page 40: Unidad_01

Arboles y Grafos

Busqueda de CaminosA partir de la representacion del mundo que se esta estudiado en elmodulo se puede generar un grid o un grafo que represente todos loscaminos por los que puede moverse un elemento.En un determinado momento, se puede necesitar saber el camino que deberecorrer un elemento para ir de un punto A a un punto B. Los algoritmosmas utilizados son:

Recorrido en profundidad

Recorrido en amplitud

Coste Uniforme

Dijkstra

A*, etc...

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 21 / 84

Page 41: Unidad_01

Busqueda en Amplitud

El recorrido en amplitud (Breadth First Search BFS) es uno de losalgoritmos mas sencillos existentes para la busdqueda de un camino en ungrafo.La BFS consiste en visitar TODOS los nodos posibles a partir del nodoinicial o raız, visitando seguidamente sus hijos (los Nodos Hermanos) en elsegundo nivel antes que los nodos hijos. Es decir que el algoritmo, permitevisitar TODOS los nodos de un nivel y luego sigue con el otro, hasta llegaral Nodo Objetivo o al ultimo nivel.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 22 / 84

Page 42: Unidad_01

Busqueda en Amplitud

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 23 / 84

Page 43: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [1]Resultado [1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 24 / 84

Page 44: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [1, 2, 3, 4]Resultado [1, 2, 3, 4]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 25 / 84

Page 45: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [2, 3, 4, 5, 6]Resultado [1, 2, 3, 4, 5, 6]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 26 / 84

Page 46: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [3, 4, 5, 6]Resultado [1, 2, 3, 4, 5, 6]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 27 / 84

Page 47: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [4, 5, 6, 7, 8]Resultado [1, 2, 3, 4, 5, 6, 7, 8]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 28 / 84

Page 48: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [5, 6, 7, 8, 9, 10]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 29 / 84

Page 49: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [6, 7, 8, 9, 10]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 30 / 84

Page 50: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [7, 8, 9, 10, 11, 12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 31 / 84

Page 51: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [8, 9, 10, 11, 12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 32 / 84

Page 52: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [9, 10, 11, 12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 33 / 84

Page 53: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [10, 11, 12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 34 / 84

Page 54: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [11, 12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 35 / 84

Page 55: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 36 / 84

Page 56: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [ ]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 37 / 84

Page 57: Unidad_01

Busqueda en Amplitud

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 38 / 84

Page 58: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [4]Resultado [4]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 39 / 84

Page 59: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [4, 3, 5, 6]Resultado [4, 3, 5, 6]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 40 / 84

Page 60: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [3, 5, 6, 2]Resultado [4, 3, 5, 6, 2]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 41 / 84

Page 61: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [5, 6, 2, 1]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 42 / 84

Page 62: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [6, 2, 1]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 43 / 84

Page 63: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [2, 1]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 44 / 84

Page 64: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [1]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 45 / 84

Page 65: Unidad_01

Busqueda en Amplitud

Pasos para hacer el recorrido:

Cola: [ ]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 46 / 84

Page 66: Unidad_01

Busqueda en Amplitud

Como un dato interesante la busqueda en amplitud utiliza una COLA(FIFO → Primero en Entrar, Primero en Salir) la cual almacena los nodosque se visitan y a continuacion los nodos hijos en el orden que van a servisitados.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 47 / 84

Page 67: Unidad_01

Busqueda en Amplitud

Pseudocodigo Inicialnodo inicial = estado inicialnodos frontera = Cola FIFOnodos visitados = Listaalmacenar nodo inicial en nodos fronteramientras nodos frontera no vacıo:

nodo actual = extraer un nodo de nodos fronterasi nodo actual == solucion:

salir con solucionintroducir nodo actual en nodos visitadospor cada operador:

nodo hijo = operador(nodo actual)si nodo hijo no en nodos visitados ni nodos frontera:

introducir nodo hijo en nodos frontera

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 48 / 84

Page 68: Unidad_01

Busqueda en Amplitud

Una desventaja de la BFS es que requiere generar y almacenar un arbolcuyo tamano es exponencial al llegar la final en el nodo meta. Algunaspreguntas de interes en este metodo serian:

¿La BSF encontrara una solucion?

¿Que tiempo demorara en llegar al nodo objetivo? → Cuando unalgoritmo cumple su cometido de inicio a fin, este es un algoritmoCOMPLETO y esta caracterıstica se llama Completitud.

¿Sera la solucion Optima? → Donde si el resultado de la ejecucion deun algoritmo es la optima, se dice que este algoritmo es optimo y estacaracterıstica se llama optimalidad

¿Es optima la busqueda en amplitud?

¿Cual es la Cota Superior Asintotica (Notacion O Grande)?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 49 / 84

Page 69: Unidad_01

Busqueda en Profundidad

El recorrido en profundidad (Depth First Search DFS) al igual que el casoanterior es uno de los algoritmos mas sencillos existentes para labusdqueda de un camino en un grafo.La DFS consiste en visitar TODOS los nodos posibles a partir del nodoinicial o raız, visitando (los Nodos Descendientes) hasta llegar al nivelmaximo de profundidad de una rama. Es decir que el algoritmo, permitevisitar TODOS los nodos de una rama y luego sigue con otra, hasta llegaral Nodo Objetivo o hasta llegar a ultimo nodo de la ultima rama.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 50 / 84

Page 70: Unidad_01

Busqueda en Profundidad

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 51 / 84

Page 71: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1]Resultado [1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 52 / 84

Page 72: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2]Resultado [1, 2]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 53 / 84

Page 73: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2, 3]Resultado [1, 2, 3]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 54 / 84

Page 74: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2, 3, 4]Resultado [1, 2, 3, 4]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 55 / 84

Page 75: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2, 3, 5]Resultado [1, 2, 3, 4, 5]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 56 / 84

Page 76: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2, 3]Resultado [1, 2, 3, 4, 5]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 57 / 84

Page 77: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2, 6]Resultado [1, 2, 3, 4, 5, 6]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 58 / 84

Page 78: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 2]Resultado [1, 2, 3, 4, 5, 6]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 59 / 84

Page 79: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 7]Resultado [1, 2, 3, 4, 5, 6, 7]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 60 / 84

Page 80: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8]Resultado [1, 2, 3, 4, 5, 6, 7, 8]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 61 / 84

Page 81: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8, 9]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 62 / 84

Page 82: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8, 9, 10]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 63 / 84

Page 83: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8, 9, 11]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 64 / 84

Page 84: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8, 9]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 65 / 84

Page 85: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8, 12]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 66 / 84

Page 86: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1, 8]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 67 / 84

Page 87: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [1]Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 68 / 84

Page 88: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: []Resultado [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 69 / 84

Page 89: Unidad_01

Busqueda en Profundidad

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 70 / 84

Page 90: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4]Resultado [4]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 71 / 84

Page 91: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 6]Resultado [4, 6]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 72 / 84

Page 92: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3]Resultado [4, 6, 3]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 73 / 84

Page 93: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3, 2]Resultado [4, 6, 3, 2]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 74 / 84

Page 94: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3, 2, 5]Resultado [4, 6, 3, 2, 5]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 75 / 84

Page 95: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3, 2, 5, 1]Resultado [4, 6, 3, 2, 5, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 76 / 84

Page 96: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3, 2, 5]Resultado [4, 6, 3, 2, 5, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 77 / 84

Page 97: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3, 2]Resultado [4, 6, 3, 2, 5, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 78 / 84

Page 98: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4, 3]Resultado [4, 6, 3, 2, 5, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 79 / 84

Page 99: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [4]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 80 / 84

Page 100: Unidad_01

Busqueda en Profundidad

Pasos para hacer el recorrido:

Pila: [ ]Resultado [4, 3, 5, 6, 2, 1]

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 81 / 84

Page 101: Unidad_01

Busqueda en Profundidad

Como un dato interesante la busqueda en profundidad utiliza una PILA(LIFO → Ultimo en Entrar, Primero en Salir) la cual almacena los nodosque se visitan y a continuacion los nodos hijos en el orden que van a servisitados.

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 82 / 84

Page 102: Unidad_01

Busqueda en Profundidad

Pseudocodigo Inicialnodo inicial = estado inicialnodos frontera = Pila LIFOnodos visitados = Listaalmacenar nodo inicial en nodos fronteramientras nodos frontera no vacıo:

nodo actual = extraer un nodo de nodos fronterasi nodo actual == solucion:

salir con solucionintroducir nodo actual en nodos visitadospor cada operador:

nodo hijo = operador(nodo actual)si nodo hijo no en nodos visitados ni nodos frontera:

introducir nodo hijo en nodos frontera

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 83 / 84

Page 103: Unidad_01

Busqueda en Profundidad

Una desventaja de la DFS es que requiere generar y almacenar toda unarama del arbol cuyo tamano es n al llegar la final en el nodo meta.Algunas preguntas de interes en este metodo serian:

¿La DSF encontrara una solucion?

¿Que tiempo demorara en llegar al nodo objetivo? → Cuando unalgoritmo cumple su cometido de inicio a fin, este es un algoritmoCOMPLETO y esta caracterıstica se llama Completitud.

¿Sera la solucion Optima? → Donde si el resultado de la ejecucion deun algoritmo es la optima, se dice que este algoritmo es optimo y estacaracterıstica se llama optimalidad

¿Es optima la busqueda en profundidad?

¿Cual es la Cota Superior Asintotica (Notacion O Grande)?

Luis Oyarzun Alava (UTM) Unidad01 8 de junio de 2015 84 / 84