2.2 búsqueda

Page 1

Últimos tópicos sobre búsqueda

Busquemos primeramente a Dios y su justicia, porque el resto viene por añadidura. 1


Estados vs. caminos

¿Se puede usar algo que mantenga el peor caso de una búsqueda; proporcional al numero de estados en el grafo, en vez del numero de caminos no cíclicos? 2


Principio de optimización en la programación dinámica y la lista de expandidos 

Dados que la longitud del camino es aditiva, el camino más corto de S a G vía estado X esta dado por el camino mas corto de S a X y el camino mas corto de X a G. Este es el principio de optimización dinámica. S X G

3


Principio de optimización en la programación dinámica y la lista de expandidos 

Dados que la longitud del camino es aditiva, el camino más corto de S a G vía estado X esta dado por el camino mas corto de S a X y el camino mas corto de X a G. Este es el principio de optimización dinámica.

Esto significa que solamente necesitamos mantener el único mejor camino de S a algún estado X; si encontramos un nuevo camino a un nodo que ya esta en Q , descartamos el mayor de ellos.

4


Principio de optimización en la programación dinámica y la lista de expandidos 

Dados que la longitud del camino es aditiva, el camino más corto de S a G vía estado X esta dado por el camino mas corto de S a X y el camino mas corto de X a G. Este es el principio de optimización dinámica.

Esto significa que solamente necesitamos mantener el único mejor camino de S a algún estado X; si encontramos un nuevo camino a un nodo que ya esta en Q , descartamos el mayor de ellos.

Observe que la primera vez CU sacó un nodo de Q cuyo estado es X, este camino es el más corto de S a X. Esto nos lleva al hecho de que CU expande nodos de acuerdo a la longitud del camino actual.

5


Principio de optimización en la programación dinámica y la lista de expandidos 

Dados que la longitud del camino es aditiva, el camino más corto de S a G vía estado X esta dado por el camino mas corto de S a X y el camino mas corto de X a G. Este es el principio de optimización dinámica.

Esto significa que solamente necesitamos mantener el único mejor camino de S a algún estado X; si encontramos un nuevo camino ahora en Q , descartamos el mayor de ellos. Observe que la primera vez CU sacó un nodo de Q cuyo estado es X, este camino es el más corto de S a X. Esto nos lleva al hecho de que CU expande nodos de acuerdo a la longitud del camino actual.

Así, una vez que nosotros expandimos un camino al estado X, no necesitamos considerar (expandir) ningún otro camino a X. Podemos mantener una lista de estos estados, llamándolos Expandidos. Si el estado en el nodo de búsqueda que sacamos de Q está en la lista de expandidos, descartamos el nodo. Cuando usamos la lista de expandidos de esta forma le llamamos estricta. 6


Principio de optimización en la programación dinámica y la lista de expandidos 

Dados que la longitud del camino es aditiva, el camino más corto de S a G vía estado X esta dado por el camino mas corto de S a X y el camino mas corto de X a G. Este es el principio de optimización dinámica.

Esto significa que solamente necesitamos mantener el único mejor camino de S a algún estado X; si encontramos un nuevo camino ahora en Q , descartamos el mayor de ellos. Observe que la primera vez CU sacó un nodo de Q cuyo estado es X, este camino es el más corto de S a X. Esto nos lleva al hecho de que CU expande nodos de acuerdo a la longitud del camino actual.

Así, una vez que nosotros expandimos un camino al estado X, no necesitamos considerar (expandir) ningún otro camino a X. Podemos mantener una lista de estos estados, llamándolos Expandidos. Si el estado en el nodo de búsqueda que sacamos de Q está en la lista de expandidos, descartamos el nodo. Cuando usamos la lista de expandidos de esta forma le llamamos estricta.

Observe que CU sin esto es aún correcta, pero ineficiente para buscar en grafos.

7


Algoritmo de búsqueda optimizada simple costo uniforme

   

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

1.- Inicialice Q con el nodo de búsqueda (s) como única entrada; 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.6.- Encuentre todos los hijos del estado (N) y cree todos las extensiones de un paso de N a cada descendiente. 7.- Agregue todos los caminos expandidos a Q, 8.- Vaya al paso 2 Decisiones críticas: paso 2: tome N de Q paso 6: agregue extensiones de N a Q

8


Algoritmo de búsqueda optimizada simple costo uniforme +lista expandida estricta    

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

1.- Inicialice Q con el nodo de búsqueda (s) como única entrada; haga expandidos = () 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.- Si el estado (N) esta en expandidos, vaya al paso 2; sino agregue (N) a expandidos 6.- Encuentre todos los hijos del estado (N) (que No están en expandidos) y cree todos las extensiones de un paso de N a cada descendiente. 7.- Agregue los caminos expandidos a Q, si algún estado descendiente ya están en Q, mantenga solamente el más corto a ese estado en Q. 8.- Vaya al paso 2 Decisiones críticas: paso 2: tome N de Q paso 6: agregue extensiones de N a Q

9


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q 1

Expandidos

(0S)

2

1 S

2

5

C

A

3 4 1

2

D 5

B

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

10

G


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q 1

(0S)

2

(2AS)(5BS)

Expandidos

S

1 S

2

5

2 2 C A 3 4 D 1

2 5

B

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

11

G


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q

Expandidos

1

(0S)

2

(2AS)(5BS)

S

3

(4CAS)(6DAS)(5BS)

S, A

1 S

2

5

3 C

2 2 A

3

4 1

2

D 5

B

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

12

G


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q

Expandidos

1

(0S)

2

(2AS)(5BS)

S

3

(4CAS)(6DAS)(5BS)

S, A

4

(6DAS)(5BS)

S, A, C

1 S

2

5

3 C

2 2 A

3

4 1

2

D 5

B 4

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

13

G


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q

Expandidos

1

(0S)

2

(2AS)(5BS)

S

3

(4CAS)(6DAS)(5BS)

S, A

4

(6DAS)(5BS)

S, A, C

5

(6DBS)(10GBS)(6DAS)

S, A, C, B

1 S

2

5

3 C

2 2 A

3

4 1

2

D 5 5

B 4

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

14

G


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q

Expandidos

1

(0S)

2

(2AS)(5BS)

S

3

(4CAS)(6DAS)(5BS)

S, A

4

(6DAS)(5BS)

S, A, C

5

(6DBS)(10GBS)(6DAS)

S, A, C, B

6

(8GDAS)(9CDAS)(10GBS)

S, A, C, B, D

1 S

2

5

2 A

3 C

2

3 4 1

2

D 5 5

B 4

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

15

6 G


Costo uniforme (con lista estricta de expandidos)

Tome el mejor(por la longitud del camino) de Q. Agregue las extensiones en cualquier lugar de Q. Q

Expandidos

1

(0S)

2

(2AS)(5BS)

S

3

(4CAS)(6DAS)(5BS)

S, A

4

(6DAS)(5BS)

S, A, C

5

(6DBS)(10GBS)(6DAS)

S, A, C, B

6

(8GDAS)(9CDAS)(10GBS)

S, A, C, B, D

1 S

2

5

2 A

3 C

2

3 4 1

2

D 5 5

B 4

Caminos agregados en azul. Caminos subrayados son los seleccionados para expandir. Mostramos los caminos en orden inverso.

16

6 G


A* (sin lista de expandidos) 

Asuma que g(N) es el costo del camino de n, donde n es un nodo del árbol de búsqueda, es decir, Un camino parcial.

17


Sea h(N) ser el h(estado(N), la estimación heurística del camino remanente a la meta desde el estado (N). 

Sea f(N)=g(N) + h(estado(N)) el costo del camino estimado total de un nodo, es decir, el estimado de un camino a la meta que comienza con el camino dado por N.

A* toma el nodo con el valor f menor para expandir.

18


A* (sin lista de expandidos) 

Asuma que g(N) es el costo del camino de n, donde n es un nodo del árbol de búsqueda, es decir, Un camino parcial.

Sea h(N) ser el h(estado(N), la estimación heurística del camino remanente a la meta desde el estado (N).

Sea f(N)=g(N) + h(estado(N)) el costo del camino estimado total de un nodo, es decir, el estimado de un camino a la meta que comienza con el camino dado por N.

A* toma el nodo con el valor f menor para expandir.

A* (sin lista de expandidos) y con heurística admisible garantiza encontrar el camino óptimo –aquel con el mas pequeño costo del camino.

19


A* y la Lista estricta de Expandidos 

La lista estricta de Expandidos (también conocida como una lista Cerrada) es comúnmente usada en implementaciones de A* pero, para garantizar encontrar el camino optimo, esta implementación requiere una condición fuerte para una heurística que simplemente esta siendo una sub estimación.

20


A* y la lista estricta de Expandidos 

La lista estricta de Expandidos (también conocida como una lista Cerrada) es comúnmente usada en implementaciones de A* pero, para garantizar encontrar el camino optimo, esta implementación requiere una condición fuerte para una heurística que simplemente esta siendo una subestimación.

Aquí un contra ejemplo: Los valores heurísticas mostrados abajo son todos subestimados pero A* usando una lista Expandido no encontrará el camino optimo. La estimación errónea a B despista al algoritmo, C es expandido antes que el camino optimo sea encontrado.

A

1

S 2

1

C

2

G 100

B Valores Heurísticos A=100 C=90 S=0 B= 1 G=0

21


A* y la lista estricta de Expandidos 

La lista estricta de Expandidos (también conocida como una lista Cerrada) es comúnmente usada en implementaciones de A* pero, para garantizar encontrar el camino optimo, esta implementación requiere una condición fuerte para una heurística que simplemente esta siendo una subestimación.

Aquí un contra ejemplo: Los valores heurísticas mostrados abajo son todos subestimados pero A* usando una lista Expandido no encontrará el camino optimo. La estimación errónea a B despista al algoritmo, C es expandido antes que el camino optimo sea encontrado.

Q

Expandidos

1 (0S) 2 (3BS) (101 A S)

S

3 (94 C B S )(101 A S)

B, S

4 (101 A S) (104GCBS)

C, B, S

5

(104 G C B S)

A

1

A,C,B,S

S 2

1

C

2

G 100

B Valores Heurísticos A=100 C=90 S=0 B= 1 G=0

22


Consistencia 

Para la implementación de A* usando la lista Expandida estricta, H necesita satisfacer la siguiente condiciones de consistencia (también conocida como monotonicidad) 

h(si) = 0, si ni es la meta

h(si) – h(sj) * c(si, sj), para nj un hijo de ni

23


Consistencia Para

la implementación de A* usando la lista Expandida estricta, H necesita satisfacer la siguiente condiciones de consistencia (también conocida como monotonicidad) h(s ) = 0, s ni es la meta i i h(s )

– h(sj) * c(si, sj), para nj un hijo de ni O sea, el costo heurístico del movimiento de una entrada a la próxima no puede decrementarse por mas que el costo del arco entre las entradas. Este es una clase de triangulo desigual. Esta condición es una propiedad muy deseable de una función heurística y frecuentemente asumida. i

nj C(si, sj) ni

h(sj) meta

h(si)

24


Violación de consistencia  Un sencillo ejemplo de violación de consistencia. H(si) – h(sj) * c(si, sj) En el ejemplo 100 – 10 > 10 Si cree que la meta esta a 100 unidades de ni, entonces moviendo 10 unidades a nj no le llevara a una distancia de 10 a la meta.

C(Si, S j)=10

ni

nj

h(Sj)=10 meta

h(si)= 100

25


A* (sin lista de expandidos) 

Sea g(N) el costo de camino de n, donde n es un nodo del árbol de búsqueda, (p. E. un camino parcial).

Sea h(N) igual a h(estado((N)), la estimación heurística de la longitud del camino remanente a la meta desde el estado N.

Sea f(N) = g(N) + h(estado((N)) el costo total estimado de un nodo.i.e la estimación de un camino a una meta que inicia con el camino dado por n. A * toma el nodo con el menor valor para expandir.

A* (sin lista de expandidos) y con heurística admisible tiene garantizado encontrar caminos óptimos – aquellos con el costo de caminos menor.

Esto es verdad aunque la heurística NO sea consistente

26


A* (sin lista de expandidos) Observe que la heurística es admisible pero no consistente

Q 1

(90 S)

2

(3BS)(101AS)

3

(94CBS)(101AS)

4

(101AS)(104GCBS)

5

(92CAS)(104GCBS)

6

(102GCAS) (104GCBS)

1

A

S 2

1

100

C

2

B

Valores Heurísticos A=100 B=1

c=90 G=0

27

s=90

G


A* con lista estricta expandida  

Como la búsqueda Costo Uniforme. Cuando un nodo N es expandido, si el estado (N) esta en la lista de expandidos, descartar N, de lo contrario agregue el estado (N) a la lista de expandidos. Si algún nodo en Q tiene el mismo estado como algún descendiente de N, mantenga solo el nodo con el menor f, el cual también corresponderá al mas pequeño g. Para que A* (con la lista estricta de expandidos) tenga seguro encontrar el camino optimo, la heurística debe ser consistente.

28


A* (con lista estricta expandida) Observe que esta heurĂ­stica es admisible y consistente. Q

Expandid os

1 (90 S)

1

2 (90BS)(101 AS)

S

3 (101 AS)(104 CBS)

A, S

4 (102 CAS)(104 CBS)

C, A, S

5 (102 GCAS)

G, C, A, S

Se agregan los caminos en azul; los caminos subrayados son escogidos para extenderse

S 2

A 1

100

C

2

B

Valores HeurĂ­sticos A=100

c=100

B=88

G=0

29

s=90

G


Tratando con heurísticas inconsistentes 

Que podemos hacer si tenemos una heurística inconsistente pero aun así queremos caminos óptimos?

30


Tratando con heurísticas inconsistentes 

Que podemos hacer si tenemos una heurística inconsistente pero aun así queremos caminos óptimos?

Modifique A* de forma que detecte y corrija cuando la inconsistencia nos lleve por mal camino.

31


Tratando con heurísticas inconsistentes 

Que podemos hacer si tenemos una heurística inconsistente pero aun así queremos caminos óptimos?

Modifique A* de forma que detecte y corrija cuando la inconsistencia nos lleve por mal camino.

Asuma que estamos agregando nodo a Q y nodo esta presente en la lista Expandidos con el nodo1.estado = nodo2 estado.

32


Tratando con heurísticas inconsistentes 

Que podemos hacer si tenemos una heurística inconsistente pero aun así queremos caminos óptimos?

Modifique A* de forma que detecte y corrija cuando la inconsistencia nos lleve por mal camino.

Asuma que estamos agregando nodo a Q y nodo esta presente en la lista Expandidos

con el nodo1.estado = nodo2. estado.

Estricto – 

No agregue el nodo1 a Q

33


Tratando con heurísticas inconsistentes 

  

Que podemos hacer si tenemos una heurística inconsistente pero aun así queremos caminos óptimos? Modifique A* de forma que detecte y corrija cuando la inconsistencia nos lleve por mal camino. Asuma que estamos agregando nodo a Q y nodo esta presente en la lista Expandidos con el nodo nodo1estado = nodo2 estado. Estricto – 

No agregue el nodo1 a Q

Lista expandida-no Estricta

Si el nodo1.longitud_camino < nodo2.longitud_camino, entonces 

Borre nodo2 de la lista Expandidos

Agregue nodo1 a Q

34


Complejidad del peor caso 

El numero de estados en el espacio de búsqueda puede ser exponencial en algún parámetro de “profundidad”, es decir, el numero de acciones en un plan, numero de movimientos en un juego.

35


Complejidad del peor caso 

 

El numero de estados en el espacio de búsqueda puede ser exponencial en algún parámetro de “profundidad”, es decir, el numero de acciones en un plan, numero de movimientos en un juego. Todas las búsquedas, con o sin listas de visitados o expandidos, puede tener visitados (o expandidos) cada estado en el peor caso. Así, todas las búsquedas tendrán la complejidad del peor caso que son al menos proporcional al numero de estados y por tanto exponencial en el parámetro “profundidad”. Este es el ------costo irreductible del peor caso de las búsquedas sistemáticas.

36


Complejidad del peor caso 

 

 

El numero de estados en el espacio de búsqueda puede ser exponencial en algún parámetro de “profundidad”, es decir, el numero de acciones en un plan, numero de movimientos en un juego. Todas las búsquedas, con o sin listas de visitados o expandidos, puede tener visitados (o expandidos) cada estado en el peor caso. Así, todas las búsquedas tendrán la complejidad del peor caso que son al menos proporcional al numero de estados y por tanto exponencial en el parámetro “profundidad”. Este es el ------costo irreductible del peor caso de las búsquedas sistemáticas. Sin memoria de los estados han sido visitados (expandidos), busquedas pueden hacer(mucho) peor que -----

37


Complejidad del peor caso Un espacio de estado con N estados

38


Últimas ideas 

A* con la lista de expandidos requiere que las heurísticas sean subestimadas, de lo contrario no encontrara el camino óptimo ... un contraejemplo.

Análisis de heurísticas consistentes.

Dirección de la meta

¿por qué se estima la meta?

39


Tomado del

www.owc.mit.edu 6.034 Artificial Intelligence 2004 Archivo ch2-search3

40


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.