2 Búsqueda

Post on 08-Mar-2016

226 views 1 download

description

Busquen primeramente el reino de Dios y su justicia porque el resto viene como ipegüe. Jesucristo 1 •Antecedentes •Informada (heurística) vs. No informada (ciega) •Cualquier camino vs. El camino óptimo •Implementación y desempeño •Idea principal: La búsqueda permite explorar alternativas 2 raíz A Árbol Terminal (hoja) Nodo (vértice) Conector 3 Árbol B es padre de C C es hijo de B A es ancestro de C C es descendiente d A Terminal (hoja) Nodo (vértice) Conector 4

Transcript of 2 Búsqueda

1

Búsqueda

Busquen primeramente el reino de Dios y su justicia porque el resto viene como ipegüe.

Jesucristo

2

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

3

Árboles y grafos

Árbolraíz

A

B

C

Terminal (hoja)

Conector

Nodo (vértice)

4

Árboles y grafos

Árbolraíz

A

B

C

B es padre de CC es hijo de BA es ancestro de CC es descendiente d A

Terminal (hoja)

Conector

Nodo (vértice)

5

Árboles y grafos

Árbolraíz

A

B

C

B es padre de CC es hijo de BA es ancestro de CC es descendiente d A

Terminal (hoja)

Conector

Nodo (vértice)

Grafo dirigido(calles de una vía)

6

Árboles y grafos

Árbolraíz

A

B

C

B es padre de CC es hijo de BA es ancestro de CC es descendiente d A

Terminal (hoja)

Conector

Nodo (vértice)

Grafo no dirigidoGrafo dirigido

(calles de una vía)

7

Ejemplos de grafos

Rutas de avión

Managua

Tegucigalpa

San Salvador

México

Guatemala

8

Ejemplos de grafos

Rutas de avión

Managua

Tegucigalpa

San Salvador

México

Guatemala

A B

B

B

B

B

C

C

C

C

C

A

A

A

A

Planeando acciones

(grafo de posibles estados del mundo)

PonerC en A

PonerC en B

PonerB en C

PonerA en C

Poner C en 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)

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

11

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• Derivar datos finales

12

Búsqueda en grafo como búsqueda en árbol

• Los árboles son grafos dirigidos sin ciclos y con nodos que tienen <= 1 padre.

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

A

B

CG

D

14

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

A

B

CG

D

SA

CB

D

C

D

G

G

GC

15

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.

16

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 de búsqueda, ellos tienen un único nodo ancestro.

17

Clases de Búsqueda• Clase Nombre Operación

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

18

Clases de Búsqueda • Clase Nombre Operación

Cualquier camino Primero en profundidad Exploración sistemática de No informado Primero en anchura todo el árbol hasta que la

meta sea encontrada

Cualquier camino Primero el mejor Usa mediciones heurísticas en informado cada estado ej: distancia

estimada al objetivo

19

Clases de Búsqueda • Clase Nombre Operación

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

Cualquier camino Primero el mejor Usa mediciones heurísticas en cada informado estado ej: distancia estimada al objetivo.

Optimo Costo Uniforme Usa” medidas” del camino. No informado Encuentra el camino “ mas corto”

20

Clases de Búsqueda• Clase Nombre Operación

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

Cualquier camino Primero el mejor Usa mediciones heurísticas en cada Informado estado ej: distancia estimada al objetivo

Optimo Costo Uniforme Usa medidas del camino. Encuentra el No informado camino “ mas corto” sumando los pesos.

Optimo A* Usa mediciones de longitud del caminoInformado y heurística. Encuentra el camino más corto

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

22

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 Qpaso 6: agregue extensiones de N a Q

23

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

24

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.

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.

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.

27

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.

28

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.

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”.

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 que calcula un valor, el cual puede ser muy útil para guiar la búsqueda y puede disminuir el tiempo de búsqueda.

31

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.

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

33

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”)

34

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.

35

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 = 1

d = 0

d = 2

b=2

d es la profundidadb es el factor de ramificaciónbd < (b d +1 –1) /( b- 1) < b d+1

Estados en el árbol

36

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 = 1

d = 0

d = 2

b=2

d es la profundidadb es el factor de ramificaciónbd < (b d +1 –1) /( b- 1) < bd+1

Estados en el árbol

37

Espacio de memoria en el peor caso

VisitadosExpandidos

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

Tamaño Max Q= #Visitados - #Expandidos

38

Espacio de memoria en el peor caso

VisitadosExpandidos

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

Tamaño Max Q= #Visitados - #Expandidos

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

39

Primero en profundidad• Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

• Se muestra el camino en orden inverso.

Q Visitados1 (s) s2345

S

A

B

D

C

G

1

40

Primero en profundidad• Tome el primer elemento de Q. Agregue los caminos extendidos al

frente de Q.

• Se muestra el camino en orden inverso.

Q Visitados1 (s) s2 (AS)(BS) A,B,S

345

S

A

B

D

C

G

1

2

41

Primero en profundidad• Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

• Se muestra el camino en orden inverso.

Q Visitados1 (s) s2 (AS)(BS) A,B,S

3 (CAS)(DAS)(BS) C,D,B,A,S

45

S

A

B

D

C

G

1

2

3

42

Primero en profundidad• Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

• Se muestra el camino en orden inverso.

Q Visitados1 (s) s2 (AS)(BS) A,B,S

3 (CAS)(DAS)(BS) C,D,B,A,S

4 (DAS) (BS) C,D,B,A,S

5

S

A

B

D

C

G

1

2

3

4

43

Primero en profundidad• Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

• Se muestra el camino en orden inverso.

Q Visitados1 (s) s2 (AS)(BS) A,B,S

3 (CAS)(DAS)(BS) C,D,B,A,S

4 (DAS) (BS) C,D,B,A,S

5 (GDAS)(BS) G,C,D,B,A,S

S

A

B

D

C

G

1

2

3

4

5

44

Primero en profundidad• Tome el primer elemento de Q. Agregue los caminos extendidos al frente de Q.

• Se muestra el camino en orden inverso.

Q Visitados1 (s) s2 (AS)(BS) A,B,S

3 (CAS)(DAS)(BS) C,D,B,A,S

4 (DAS) (BS) C,D,B,A,S

5 (GDAS)(BS) G,C,D,B,A,S

S

A

B

D

C

G

1

2

3

4

5

45

Primero en profundidadTome el primer elemento de Q. Agréguelo al frente de Q.

» Otra forma (mas fácil) de verlo.

SA B

S

A

B

1

1

El número indica el orden en que son sacados de Q (expandidos)

Relleno en rojo= visitado y expandidoRelleno en anaranjado = visitado

SB

S

D

1

1

22

3

SB

S

C

G

1

1

46

Primero en profundidadTome el primer elemento de Q. Agréguelo al frente de Q.

» Otra forma (mas fácil) de verlo.

SB

S

B

D

C

G

1

El numero indica el orden en que son sacados de Q (expandidos)

Relleno en rojo= visitado y expandidoRelleno en anaranjado = visitado

SB

D

C

1

22

A

1

22

3A

1

DC

22

1

47

Primero en profundidadTome el primer elemento de Q. Agréguelo al frente de Q.

» Otra forma (mas fácil) de verlo.

SB

S

B

D

C

G

1

El numero indica el orden en que son sacados de Q (expandidos)

Relleno en rojo= visitado y expandidoRelleno en anaranjado = visitado

SB

D

1

22

A

1

22A

1

DC

22

1

3

3

48

Primero en profundidadTome el primer elemento de Q. Agréguelo al frente de Q.

» Otra forma (mas fácil) de verlo.

El número indica el orden en que son sacados de Q (expandidos)

Relleno en rojo= visitado y expandidoRelleno en anaranjado = visitado

1

3

3

S

B

D

C

G

1

D

1

2A

1

22

14

SB

SB

22A

DC

2

C GC no es visitado

4

49

Primero en profundidad(backtracking)

5

SA B

S

A

B

D

C

G

1

DC

22

3

3

GC

4 4

15

El numero indica el orden en que son sacados de Q (expandidos)

Relleno en rojo= visitado y expandidoRelleno en anaranjado = visitado

50

Primero en profundidad (sin visitados)

Q1 (s)2 (AS)(BS)

3 (CAS)(DAS)(BS)

4 (DAS) (BS)

5 (CDAS)(GDAS)(BS)

6 (GDAS) (BS)

S

A

B

D

C

G

Mostramos los caminos en orden reverso.No extendemos un camino a un estado si el camino resultante producirá un bucle.

51

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

Q Visitados1 (s) s23

45

S

A

B

D

C

G

Mostramos los caminos en orden reverso.

52

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

Q Visitados1 (s) s2 (AS) (BS) A,B,S

3

45

S

A

B

D

C

G

Mostramos los caminos en orden reverso.

53

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

Q Visitados1 (s) s2 (AS) (BS) A,B,S

3 (BS)(CAS)(DAS) C,D,B,A,S

45

S

A

B

D

C

G

Mostramos los caminos en orden reverso.

54

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

Q Visitados1 (s) s2 (AS) (BS) A,B,S

3 (BS)(CAS)(DAS) C,D,B,A,S

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

56

S

A

B

D

C

G

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

55

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

Q Visitados1 (s) s2 (AS) (BS) A,B,S

3 (BS)(CAS)(DAS) C,D,B,A,S

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

5 (DAS)(GBS) G,C,D,B,A,S

6

S

A

B

D

C

G

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

56

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

Q Visitados1 (s) s2 (AS) (BS) A,B,S

3 (BS)(CAS)(DAS) C,D,B,A,S

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

5 (DAS)(GBS) G,C,D,B,A,S

6 (GBS) G,C,D,B,A,S

S

A

B

D

C

G

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

57

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

Q Visitados1 (s) s2 (AS) (BS) A,B,S

3 (BS)(CAS)(DAS) C,D,B,A,S

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

5 (DAS)(GBS) G,C,D,B,A,S

6 (GBS) G,C,D,B,A,S

S

A

B

D

C

G

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

58

Primero en anchuraOtra forma de verlo (mas fácil?)

S

A

B

D

C

G

SB

SB

22A

DC

2

DG

1

3

4 5

D no es visitado de nuevo

1

2

3

4

566

59

Primero en anchura (sin lista de visitados)

Q1 (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)

S

A

B

D

C

G

1

2

3

4

56

7

60

Tomado del

www.owc.mit.edu6.034 Artificial Intelligence 2004

Archivo: ch2-search1.pdf