Page 1

BĂşsqueda Busquen primeramente el reino de Dios y su justicia porque el resto viene como ipegĂźe. Jesucristo 1


Por qué buscar? • Idea principal: La búsqueda permite explorar alternativas • • • •

Antecedentes Informada (heurística) vs. No informada (ciega) Cualquier camino vs. El camino óptimo Implementación y desempeño 2


Árboles y grafos raíz Árbol

A B

Conector Nodo (vértice)

C Terminal (hoja)

3


Árboles y grafos raíz Árbol

B es padre de C C es hijo de B A es ancestro de C C es descendiente d A

A B

Conector Nodo (vértice)

C Terminal (hoja)

4


Árboles y grafos raíz Árbol

B es padre de C C es hijo de B A es ancestro de C C es descendiente d A

A B

Conector Nodo (vértice)

C Terminal (hoja)

Grafo dirigido (calles de una vía)

5


Árboles y grafos raíz Árbol

B es padre de C C es hijo de B A es ancestro de C C es descendiente d A

A B

Conector

C

Nodo (vértice)

Grafo dirigido (calles de una vía)

Terminal (hoja) Grafo no dirigido

6


Ejemplos de grafos M茅xico Tegucigalpa

Rutas de avi贸n

Guatemala Managua San Salvador

7


Ejemplos de grafos M茅xico Tegucigalpa

Rutas de avi贸n

Guatemala Managua San Salvador

Poner C en A

Planeando acciones (grafo de posibles estados del mundo)

A

B

C A B

Poner C en A

C Poner C en B

Poner B en C

A

C B

Poner A en C

B C A A C B 8


Paradigma para resolver problemas •

¿Que son los estados(los aspectos relevantes del problema)? • Organización de piezas ( un plan de montaje) • Ubicación de camiones(plan de distribución de paquetes) • Ciudad(plan de un viaje) • Conjunto de datos (ej. Para probar un teorema de geometría)

9


Paradigma para resolver problemas •

¿Que son los estados(los aspectos relevantes del problema)? • Organización de piezas ( un plan de montaje) • Ubicación de camiones(plan de distribución de paquetes) • Ciudad(plan de un viaje) • Conjunto de datos (ej. Para probar un teorema de geometría)

¿Cuales son las acciones(operadores)?(determinístico y discreto • • • •

)

Montar dos piezas Mover un camión a una nueva posición Volar a una nueva ciudad Aplicar el teorema 10


Paradigma para resolver problemas • ¿Que son los estados(los aspectos relevantes del problema)? • • • • •

Organización de piezas ( un plan de montaje) Ubicación de camiones(plan de distribución de paquetes) Ciudad(plan de un viaje) Conjunto de datos (ej. Para probar un teorema de geometría)

)

¿Cuales son las acciones(operadores)?(determinístico y discreto • Montar dos piezas • Mover un camión a una nueva posición • Volar a una nueva ciudad • Aplicar el teorema ¿Cual es la prueba de meta?(condiciones para el éxito) • Todas las piezas en su lugar • Todos los paquetes enviados • Alcanzar la ciudad de destino 11 • Derivar datos finales


Búsqueda en grafo como búsqueda en árbol • Los árboles son grafos dirigidos sin ciclos y con nodos que tienen <= 1 padre.

12


Búsqueda en grafo como búsqueda en árbol • Los árboles son grafos dirigidos sin ciclos y con nodos que tienen <= 1 padre. • Podemos cambiar el problema de la búsqueda en grafo por el problema de la búsqueda en árbol: • Reemplazando los enlaces sin dirección por 2 enlaces dirigidos • Evitando ciclos en el camino(mantener un registro de los nodos visitados) C

A

G D

S B

13


Búsqueda en grafo como búsqueda en árbol • Los árboles son grafos dirigidos sin ciclos y con nodos que tienen <= 1 padre. • Podemos cambiar el problema de la búsqueda en grafo por el problema de la búsqueda en árbol: • Reemplazando los enlaces sin dirección por 2 enlaces dirigidos • Evitando ciclos en el camino(mantener un registro de los nodos visitados) S C

A

A

G

D

D

S B

C

B C

G

G

D C

G 14


Términos importantes •

Estado: Usado para referirnos a los vértices de un grafo de búsqueda, o sea, estados en el dominio del problema, ejemplo, una ciudad, un arreglo de bloques o el arreglo de partes de un rompecabezas. Podemos alcanzar los mismos estados del mundo real por diferentes rutas.

15


Términos importantes • Estado: Usado para referirse a los vértices de un grafo de búsqueda. Son estados “reales” en el dominio de un problema en el cual podemos buscar. • Podemos alcanzar los mismos estados del mundo real por diferentes rutas. • Nodo de búsqueda:Se refiere a los vértices del árbol de búsqueda los cuales están siendo generados por el algoritmo de búsqueda. Cada nodo se refiere a un estado del mundo, muchos nodos pueden referirse al mismo estado. Muy importante, es que un nodo implícitamente representa un camino(del estado inicial de la búsqueda al estado asociado con el nodo), por ser una estructura de datos que se construye mientras se busca. Debido a que los nodos de búsqueda son parte de un árbol 16 de búsqueda, ellos tienen un único nodo ancestro.


Clases de Búsqueda • Clase Cualquier camino No informado

Nombre Primero en profundidad Primero en anchura

Operación Exploración sistemática de todo el árbol hasta que la meta sea encontrada

17


Clases de Búsqueda • Clase Cualquier camino No informado

Cualquier camino informado

Nombre Primero en profundidad Primero en anchura

Primero el mejor

Operación Exploración sistemática de todo el árbol hasta que la meta sea encontrada

Usa mediciones heurísticas en cada estado ej: distancia estimada al objetivo

18


Clases de Búsqueda • Clase

Nombre

Operación

Cualquier camino Primero en profundidad todo el no informado Primero en anchura meta sea encontrada

Cualquier camino informado

Optimo No informado

Exploración sistemática de árbol hasta que la

Primero el mejorUsa mediciones heurísticas en cada estado ej: distancia estimada al objetivo. Costo Uniforme

Usa” medidas” del camino. Encuentra el camino “ mas corto” 19


Clases de Búsqueda • Clase Cualquier camino No informado

Nombre

Operación

Primero en profundidad Exploración sistemática de todo el Primero en anchura árbol hasta que la meta sea encontrada

Cualquier camino Informado Optimo No informado Optimo Informado

Primero el mejor

Costo Uniforme

Usa mediciones heurísticas en cada estado ej: distancia estimada al objetivo Usa medidas del camino. Encuentra el camino “ mas corto” sumando los pesos.

A*

Usa mediciones de longitud del camino y heurística. Encuentra el camino más corto 20


Algoritmo para una búsqueda sencilla • • • •

Un nodo de búsqueda es un camino desde algún estado X al estado inicial, ej: (XBAS) El estado de un nodo de búsqueda es el mas reciente estado del camino, ej: X Sea Q una lista de nodos de búsqueda ej. ((X B A S), (C B A S)...) Se nombra S como el estado inicial

1.- Inicialice Q con el nodo de búsqueda (s) como única entrada; haga visitado = (s) 2.- Si Q está vacío, falla, de lo contrario tome algún nodo de búsqueda N de Q. 3.- Si el estado (N) es una meta, retorne N (se ha alcanzado la meta). 4.- (de lo contrario) borre N de Q. 5.- Encuentre todos los hijos del estado (N) que No están en visitado y cree todos las extensiones de un paso de N a cada descendiente. 6.- Agregue los caminos expandidos a Q, agregue los hijos del estado (N) a Visitados. 7.- Vaya al paso 2 21


Algoritmo para una búsqueda sencilla • • •

Un nodo de búsqueda es un camino desde algún estado X al estado inicial, ej: (XBAS) El estado de un nodo de búsqueda es el mas reciente estado del camino, ej: X Sea Q una lista de nodos de búsqueda ej. ((X B A S), (C B A S)...)

Se nombra S como el estado inicial

1.- Inicialice Q con el nodo de búsqueda (s) como única entrada; haga visitado = (s) 2.- Si Q está vacío, falla, de lo contrario tome algún nodo de búsqueda N de Q. 3.- Si el estado (N) es una meta, retorne N (se ha alcanzado la meta). 4.- (de lo contrario) borre N de Q. 5.- Encuentre todos los hijos del estado (N) que No están en visitado y cree todos las extensiones de un paso de N a cada descendiente. 6.- Agregue los caminos expandidos a Q, agregue los hijos del estado (N) a visitados. 7.- Vaya al paso 2 Decisiones críticas: paso 2: tome N de Q paso 6: agregue extensiones de N a Q

22


Implementando las estrategias de búsqueda • Primero en profundidad • Tome el primer elemento de Q • Agregue las extensiones del camino al frente de Q

• Primero en anchura • Tome el primer elemento de Q • Agregue las extensiones del camino al final de Q

23


Evaluación de la meta •

El algoritmo se detiene en el paso 2, cuando el estado(N) = G, en general, cuando el estado (N) satisface la meta.

Podríamos realizar la evaluación en el paso 6 cuando cada camino es expandido y agregado a Q. Esto podría llevarnos a una finalización mas temprano y ser correcto para las búsquedas que hemos visto al inicio.

Pero, hacer la evaluación en el paso 6 será incorrecto para una búsqueda óptima. Hemos escogido poner la evaluación en el paso 3 para mantener la uniformidad con las próximas búsquedas.

24


Otros términos • Visitados – un estado M es visitado cuando un camino a M se agrega a Q. En general, un estado se dice que ha sido visitado, si ha sido colocado en un nodo de búsqueda en Q. La intuición es que lo hemos “visitado” brevemente para ubicarlos en Q, pero aun no le haya examinado cuidadosamente.

25


Otros términos • Visitados –un estado M es visitado cuando un camino a M se agrega a Q. En general, un estado se dice que ha sido visitado, si ha sido

colocado en un nodo de búsqueda en Q. La intuición es que lo hemos “visitado” brevemente para ubicarlos en Q, pero aun no le haya examinado cuidadosamente.

• Expandido – un estado M será expandido cuando sea

el estado de un nodo de búsqueda que es sacado de Q. En este punto, los descendientes de M son visitados (si los hay) y el camino a M es expandido para elegir el descendiente.En principio, un estado puede ser expandido múltiples veces. Algunas veces nos referiremos, como siendo expandido, al nodo de búsqueda que lleva a M (en vez de solo M) . De todos modos, una vez que un nodo ha sido expandido, no necesitaremos expandirlo de nuevo. De hecho lo descartaremos de Q. 26


Otros términos • Visitados –un estado M es visitado cuando un camino a M se agrega a Q. En general, un estado se dice que ha sido visitado, si ha sido

colocado en un nodo de búsqueda en Q. La intuición es que lo hemos “visitado” brevemente para ubicarlos en Q, pero aun no le haya examinado cuidadosamente.

• Expandido – un estado M será expandido cuando sea

el estado de un nodo de búsqueda que es sacado de Q. En este punto, los descendientes de M son visitados (si los hay) y el camino a M es expandido para elegir el descendiente.En principio, un estado puede ser expandido múltiples veces. Algunas veces nos referiremos, como siendo expandido, al nodo de búsqueda que lleva a M (en vez de solo M) . De todos modos, una vez que un nodo ha sido expandido, no necesitaremos expandirlo de nuevo. De hecho lo descartaremos de Q.

Esta distinción es clave en nuestra discusión sobre los diferentes algoritmos de búsqueda; estúdielo cuidadosamente.

27


Estados Visitados • Mantener la traza de los estados visitados generalmente incrementa la eficiencia del tiempo cuando se busca en grafos. Observe que requiere un espacio adicional sustancial para mantener esta traza.

• Aunque se habla de lista de Visitados, esta no es la implementación preferida debido al tiempo de búsqueda, es mejor una tabla hash.

28


Otros términos • Heurística- La palabra generalmente se refiere a algo que puede ser útil en algunos casos pero no siempre. Generalmente se usa como contraste con “garantizado” u “optimo”.

29


Otros términos • Heurística- La palabra generalmente se refiere a algo que puede ser útil en algunos casos pero no siempre. Generalmente se usa como contraste con “garantizado” u “optimo”.

• Función heurística- Una función que calcula un valor, el cual puede ser muy útil para guiar la búsqueda y puede disminuir el tiempo de búsqueda.

30


Otros términos • Heurística- La palabra generalmente se refiere a algo que puede ser útil en algunos casos pero no siempre. Generalmente se usa como contraste con “garantizado” u “optimo”.

• Función heurística- Una función definida sobre un estado-nodo que puede ser útil en guiar la búsqueda pero la cual no garantiza obtener el resultado deseado. Usar ésta función puede ayudarnos a encontrar, en promedio, la meta en menor tiempo.

31


Implementando las estrategias de búsqueda • Primero en profundidad

• Tome el primer elemento de Q • Agréguelo al frente de Q

• Primero en anchura

• Tome el primer elemento de Q • Agréguelo al final de Q

32


Implementando las estrategias de búsqueda • Primero en profundidad

• Tome el primer elemento de Q • Agréguelo al frente de Q

• Primero en anchura

• Tome el primer elemento de Q • Agréguelo al final de Q

• Primero el mejor

• Tome “el mejor” (medido por el valor heurístico del estado) elemento de Q • Agregue las extensiones del camino en cualquier lugar de Q(puede ser más eficiente mantener ordenada Q de alguna forma para que resulte mas fácil encontrar el “mejor”) 33


Formas de implementación: Encontrando el mejor modo

• Hay varias formas posibles de encontrar el “mejor” en Q. • Ordenando Q y tomar el primer elemento • Mantener Q ordenada y hacer una inserción “ordenada” • Examinar Q para encontrar el elemento con el valor menor.

– ¿Cuál de todos es mejor? – Dependerá de cuantos nodos hijos tengan en promedio. Esto se verá con más detalle.

34


Tiempo de corrida del peor caso •

El número de estados en el espacio de búsqueda puede ser exponencial basado en algún “parámetro” de profundidad;

ejemplo. Número de acciones en un plan, número de movimientos en un juego.

d=0

b=2

d=1 d=2

d es la profundidad b es el factor de ramificación bd < (b d +1 –1) /( b- 1) < b d+1 Estados en el árbol 35


Tiempo de corrida del peor caso •

El numero de estados en el espacio de búsqueda puede ser exponencial basado en algún parámetro de profundidad; ej. Número de acciones en un plan, número de movimientos en un juego.

Todas las búsquedas, con o sin lista de visitados, pueden tener que visitar todos los estado al menos una vez, en el peor de los casos.

Así, todas las búsquedas tendrán el peor caso en el tiempo de corrida que será al menos proporcional al número total de estados y por tanto exponencial con respecto al parámetro profundidad.

d=0

b=2

d=1 d=2

d es la profundidad b es el factor de ramificación bd < (b d +1 –1) /( b- 1) < bd+1 Estados en el árbol

36


Espacio de memoria en el peor caso Tamaño Max Q= #Visitados - #Expandidos

Visitados Expandidos

En Primero en profundidad el tamaño máximo de Q será (b-1)d≈bd

37


Espacio de memoria en el peor caso Tamaño Max Q= #Visitados - #Expandidos

Visitados Expandidos

En Primero en profundidad el tamaño máximo de Q será ≈ bd

Para búsqueda en anchura el tamaño máximo de Q es bd

38


Primero en profundidad â&#x20AC;˘

Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

Q 1 (s) 2 3 4 5 â&#x20AC;˘

Visitados s

C A D 1

G

S B

Se muestra el camino en orden inverso. 39


Primero en profundidad â&#x20AC;˘ Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

Q 1 (s) 2 (AS)(BS) 3 4 5

Visitados s

C

2 A

A,B,S

D 1

G

S B

â&#x20AC;˘ Se muestra el camino en orden inverso. 40


Primero en profundidad â&#x20AC;˘

Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

3

Q 1 (s) 2 (AS)(BS) 3 (CAS)(DAS)(BS) 4 5 â&#x20AC;˘

Visitados s

A

A,B,S C,D,B,A,S

C

2

D 1

G

S B

Se muestra el camino en orden inverso. 41


Primero en profundidad â&#x20AC;˘

Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

3

Q 1 (s) 2 (AS)(BS) 3 (CAS)(DAS)(BS) 4 (DAS) (BS) 5 â&#x20AC;˘

Visitados s

A

A,B,S C,D,B,A,S C,D,B,A,S

C

2

1

4 D

G

S B

Se muestra el camino en orden inverso. 42


Primero en profundidad •

Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

3

Q 1 (s) 2 (AS)(BS) 3 (CAS)(DAS)(BS) 4 (DAS) (BS) 5 (GDAS)(BS) •

Visitados s

A

A,B,S C,D,B,A,S C,D,B,A,S G,C,D,B,A,S

C

2

1

4 D

5 G

S B

Se muestra el camino en orden inverso. 43


Primero en profundidad •

Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

3

Q 1 (s) 2 (AS)(BS) 3 (CAS)(DAS)(BS) 4 (DAS) (BS) 5 (GDAS)(BS) •

Visitados s

A

A,B,S C,D,B,A,S C,D,B,A,S G,C,D,B,A,S

C

2

1

4 D

5 G

S B

Se muestra el camino en orden inverso. 44


Primero en profundidad Tome el primer elemento de Q. Agréguelo al frente de Q. » Otra forma (mas fácil) de verlo. 11

SS

2 3

A

C

2

BB

A D 111

G

SS B

El número indica el orden en que son sacados de Q (expandidos) Relleno en rojo= visitado y expandido Relleno en anaranjado = visitado

45


Primero en profundidad Tome el primer elemento de Q. Agréguelo al frente de Q. » Otra forma (mas fácil) de verlo. 1

222 3

C

S

222

B

A

C A D

D 111

G

S B

El numero indica el orden en que son sacados de Q (expandidos) Relleno en rojo= visitado y expandido Relleno en anaranjado = visitado

46


Primero en profundidad Tome el primer elemento de Q. Agréguelo al frente de Q. » Otra forma (mas fácil) de verlo. 3

1

222 3

C

S

222

B

A

C A D

D 111

G

S B

El numero indica el orden en que son sacados de Q (expandidos) Relleno en rojo= visitado y expandido Relleno en anaranjado = visitado

47


Primero en profundidad Tome el primer elemento de Q. Agréguelo al frente de Q. » Otra forma (mas fácil) de verlo. 3

1

222 3

S B

A

C

222

D

C A

4

D D

G

4 C no es visitado

C

G

111

S B

El número indica el orden en que son sacados de Q (expandidos) Relleno en rojo= visitado y expandido Relleno en anaranjado = visitado

48


Primero en profundidad (backtracking) 3

1

S

2

A

3 C

2

B

4

A

D C

C 5

4

D G

5

1

G

S B

El numero indica el orden en que son sacados de Q (expandidos) Relleno en rojo= visitado y expandido Relleno en anaranjado = visitado

49


Primero en profundidad (sin visitados)

Q 1 (s) 2 (AS)(BS) 3 (CAS)(DAS)(BS) 4 (DAS) (BS) 5 (CDAS)(GDAS)(BS) 6 (GDAS) (BS)

C A D

G

S B Mostramos los caminos en orden reverso. No extendemos un camino a un estado si50el camino resultante producirรก un bucle.


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 3 4 5

Visitados C

s

A D

G

S B Mostramos los caminos en orden reverso. 51


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 (AS) (BS) 3 4 5

Visitados C

s

A

A,B,S

D

G

S B Mostramos los caminos en orden reverso. 52


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 (AS) (BS) 3 (BS)(CAS)(DAS) 4 5

Visitados C

s

A

A,B,S

D

C,D,B,A,S

G

S B Mostramos los caminos en orden reverso. 53


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 (AS) (BS) 3 (BS)(CAS)(DAS) 4 5 6

Visitados C

s

A

A,B,S

D

C,D,B,A,S

(CAS)(DAS)(GBS)* G,C,D,B,A,S

G

S B

Mostramos los caminos en orden reverso. *PodrĂ­amos habernos detenido aquĂ­, cuando el 54 primer camino a la meta fue generado.


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 (AS) (BS) 3 (BS)(CAS)(DAS) 4 5 6

Visitados C

s

D

C,D,B,A,S

(CAS)(DAS)(GBS)* G,C,D,B,A,S (DAS)(GBS)

A

A,B,S

G,C,D,B,A,S

G

S B

Mostramos los caminos en orden reverso. *PodrĂ­amos habernos detenido aquĂ­, cuando el 55 primer camino a la meta fue generado.


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 (AS) (BS) 3 (BS)(CAS)(DAS) 4 5 6

Visitados C

s

A

A,B,S

D

C,D,B,A,S

(CAS)(DAS)(GBS)* G,C,D,B,A,S (DAS)(GBS)

G,C,D,B,A,S

(GBS)

G,C,D,B,A,S

G

S B

Mostramos los caminos en orden reverso. *PodrĂ­amos habernos detenido aquĂ­, cuando el 56 primer camino a la meta fue generado.


Primero en anchura Tome el primer elemento de Q. Agregue el camino expandido al final de Q

Q 1 (s) 2 (AS) (BS) 3 (BS)(CAS)(DAS) 4 5 6

Visitados C

s

A

A,B,S

D

C,D,B,A,S

(CAS)(DAS)(GBS)* G,C,D,B,A,S (DAS)(GBS)

G,C,D,B,A,S

(GBS)

G,C,D,B,A,S

G

S B

Mostramos los caminos en orden reverso. *PodrĂ­amos habernos detenido aquĂ­, cuando el 57 primer camino a la meta fue generado.


Primero en anchura Otra forma de verlo (mas fรกcil?) 1 222

4

C

4

S B

A D

5

3

D

2

G

6

D no es visitado de nuevo

C A

6 5

D

G

1

S B 3

58


Primero en anchura (sin lista de visitados) Q 1

(S)

2

(AS)(BS)

3

(BS)(CAS)(DAS)

4

(CAS)(DAS)(DBS)(GBS)

5

(DAS)(DBS)(GBS)

6

(DBS)(GBS)(CDAS)(GDAS)

7

(GBS)(CDAS)(GDAS)(CDBS)(GDBS)

4 C

2 A 1

6 5 D

7 G

S B 3

59


Tomado del

www.owc.mit.edu 6.034 Artificial Intelligence 2004 Archivo: ch2-search1.pdf 60

2 Búsqueda  

Busquen primeramente el reino de Dios y su justicia porque el resto viene como ipegüe. Jesucristo 1 •Antecedentes •Informada (heurística) vs...