Você está na página 1de 45

Resolucin de

problemas mediante
Bsqueda
CAPITULO 4
Bsqueda informada

28 de Marzo 2012

(c) Facundo Bromberg

Repaso (cont.)
Agente

racional: aquel que hace lo correcto.


Medida de rendimiento: determina el xito
del agente, es decir, le permite hacer lo
correcto.

Un
Un agente
agente racional
racional es
es aquel
aquel que,
que,
basado
basado en
en su
su historial
historial de
de percepciones,
percepciones,
emprende
emprende aquella
aquella accin
accin que
que maximiza
maximiza
su
su medida
medida de
de rendimiento.
rendimiento.
28 de Marzo 2012

(c) Facundo Bromberg

Agentes resolvedores de
problemas
Los

agentes resolvedores de problemas son


una clase de agentes basados en objetivos.

Tarea:

encontrar secuencia de acciones que


alcanza algn estado objetivo.

28 de Marzo 2012

(c) Facundo Bromberg

<formular,buscar,ejecutar>

28 de Marzo 2012

(c) Facundo Bromberg

Formulacin del problema (KE)

Estado inicial

Acciones

Funcin sucesor
Espacio de estados

Test objetivo

Costo de camino.

Solucin: camino desde estado inicial al objetivo.


28 de Marzo 2012
(c) Facundo Bromberg
5
Solucin
ptima: Tiene
costo de camino mnimo.

28 de Marzo 2012

(c) Facundo Bromberg

Espacio de estados de
Vacaciones en Rumania
Estado
inicial
Funcin sucesor
desde En(Sibiu)

Estado objetivo

Una
Solucin
28 de Marzo 2012

(c) Facundo Bromberg

Bsqueda

Nodo: <estado, nodo-padre, accin, costo de camino, profundidad

NODO-PADRE
ACCIN = derecha
NODO

En(Arad)

28 de Marzo 2012

(c) Facundo Bromberg

PROFUNDIDAD = 6
COSTO DEL CAMINO = g(NODO) = 6

Arbol de bsqueda. Ejemplo

28 de Marzo 2012

(c) Facundo Bromberg

Arbol de bsqueda. Ejemplo

28 de Marzo 2012

(c) Facundo Bromberg

10

Arbol de bsqueda. Ejemplo

28 de Marzo 2012

(c) Facundo Bromberg

11

Algoritmo de bsqueda en
arboles.

uncin BUSQUEDA-ARBOLES(problema,frontera) devuelve una


solucin o fallo
frontera INSERTA(HACER-NODO(ESTADO-INICIAL[problema],frontera)

cle

si VACIA?(frontera) entonces devolver fallo


nodo BORRAR-PRIMERO(frontera)
si TEST-OBJETIVO[problema] aplicado a ESTADO[nodo] es cierto
entonces devolver SOLUCION(nodo)
frontera INSERTAR-TODOS(EXPANDIR(nodo, problema), frontera)
fin bucle
Operaciones de la cola:
INSERTA, VACIA?, BORRAR-PRIMERO, INSERTAR-TODOS
28 de Marzo 2012

(c) Facundo Bromberg

12

Y la estrategia?
frontera INSERTAR-TODOS(EXPANDIR(nodo, problema), frontera)

Estrategias de bsqueda a ciegas Estrategias de bsqueda informada


Bsqueda primero en anchura
Bsqueda primero en profundidad
Bsqueda de costo uniforme
Bsqueda de profundidad limitada
Bsqueda primero en profundidad
con profundidad iterativa
Bsqueda bi-direccional

28 de Marzo 2012

Bsqueda primero el mejor

Bsqueda voraz
Bsqueda A*.
IDA*

(c) Facundo Bromberg

13

Bsqueda a ciegas vs
informada
Algoritmos

ciegos utilizan solamente la


informacin disponible en la definicin del
problema

Estrategias

que saben si un estado (no


objetivo) es mas prometedor que otro se
llaman informadas.

28 de Marzo 2012

(c) Facundo Bromberg

14

Bsqueda primero en anchura


FRONTERA implementada como cola FIFO

Bsqueda de costo uniforme


FRONTERA ordenada por costo de camino g(n)

Bsqueda primero en profundidad


FRONTERA implementada como cola LIFO (o pila)
28 de Marzo 2012

(c) Facundo Bromberg

15

Rendimiento de algoritmos
resolvedores de problemas.

El rendimiento de un resolvedor de problemas se mide de cuatro


maneras:

Completitud: Encuentra siempre una solucin si esta existe?


Optimalidad: Encuentra siempre la solucin de menor costo de camino?
Complejidad en tiempo: Nmero de nodos generados/expandidos.
Complejidad en espacio: Nmero de nodos almacenados en memoria
durante la bsqueda.

La complejidad en tiempo y espacio se miden con respecto a:

b factor de ramificacin, o mximo nmero de sucesores de cualquier


nodo.
d profundidad del nodo objetivo mas superficial.
m mxima profundidad del espacio de estados (puede ser )

NOTA: No confundir con redimiento del agente, medido por costo-camino(solucin),


osea, optimalidad.

28 de Marzo 2012

(c) Facundo Bromberg

16

Comparacin de estrategias de
bsqueda a ciegas
Criterio

Completo?

Primero
en anchura

Costouniforme

Primero en
profundidad

Profundidad
-limitada

Produndidad
iterativa

SI*

SI*

NO

SI,
si l d

SI

Bidireccional

SI*

Si b finita

Si b es finita
Si g(x,a,y) > 0

Tiempo

bd+1

bC*/e

bm

bl

bd

bd/2

Espacio

bd+1

bC*/e

bm

bl

bd

bd/2

Optimo?

SI*

SI

NO

NO

SI

SI

si costos son
iguales

si costos son
iguales y usa
BPA

si costos son
iguales

28 de Marzo 2012

(c) Facundo Bromberg

Si b finita
Si usa BPA

17

Bsqueda informada

28 de Marzo 2012

(c) Facundo Bromberg

18

Bsqueda informada
Introduccin
Mtodos no informados
Generan sistematicamente nuevos estados
Los testean con el estado objetivo.

Terriblemente ineficiente:
Espacio de bsqueda es exponencial:
Aguja (objetivo) en un pajar (espacio de estados)

Como podemos mejorar? Heursticas


Conociendo aquellos caminos mas probables de
llevarnos al objetivo.
En el mejor de los casos, tan solo expandiramos aquellos
nodos que se encuentran en el camino solucin.
28 de Marzo 2012

(c) Facundo Bromberg

19

Funcin heuristica h(n)


Del diccionario: Una regla aproximada, una simplifacin,
o estimacin justificada que reduce o limita la bsqueda de
soluciones en dominios dificiles o poco comprendidos.
h(n) = estima costo del camino mas corto desde el nodo n
hasta el objetivo
Si n es el objetivo, entonces h(n) = 0

28 de Marzo 2012

(c) Facundo Bromberg

20

Algoritmo de bsqueda en
arboles.

uncion BUSQUEDA-ARBOLES(problema,frontera) return solucin o fallo


frontera INSERTA(HACER-NODO(ESTADO-INICIAL[problema],frontera)

op

if VACIA?(frontera) then returnfallo


nodo BORRAR-PRIMERO(frontera)
if TEST-OBJETIVO[problema] aplicado a ESTADO[nodo] es cierto
then return SOLUCION(nodo)
frontera INSERTAR-TODOS(EXPANDIR(nodo, problema), frontera)
end loop

Recordemos: las estrategias se definen seleccionando el orden de expansin.


28 de Marzo 2012

(c) Facundo Bromberg

21

Bsqueda primero el mejor


Orden de expansin de los nodos n en la frontera es
determinado por una funcin de evaluacin f(n).
f(n) estima la distancia estado-inicial al objetivo,
pasando por n.
Elige nodo que aparentemente es el mejor.

Implementacin:
frontera = cola de prioridad determinada por f(n).

28 de Marzo 2012

(c) Facundo Bromberg

22

Comparacin algoritmos de
bsqueda
Algoritmo

Estrategia
(orden de expansin)

A ciegas

Bsqueda primero en anchura

FIFO

Bsqueda primero en profundidad

LIFO

Bsqueda de costo uniforme

g(n)

Informada

Bsqueda voraz

f(n) = h(n)

Bsqueda A*

f(n) = g(n) + h(n)

28 de Marzo 2012

(c) Facundo Bromberg

23

Heurstica para vacaciones en


Rumania: hDLR
hDLR(n)=distancia en linea
recta desde n a Bucarest.

NOTA: hDLR no puede


computarse solamente con
descripcin del problema.
Porque?
28 de Marzo 2012

(c) Facundo Bromberg

24

Ejemplo:
Vacaciones en Rumania
Vorz f(n)=h(n)

Porque fallo Vorz?


h(Fagaras) = 176 < 193 = h(Rimincu Vilcea)
g(Fagaras) = 239 > 220 = g(Rimincu Vilcea)

f(Fagaras) = 415 > 413 = f(Rimincu Vilcea)

A* encontrara camino optimo!


hDLR
A* f(n)=g(n)+h(n)

28 de Marzo 2012

(c) Facundo Bromberg

25

Bsqueda Vorz
Evaluacin
Completitud: NO (estados repetidos)
Complejidad en tiempo: O b m
Complejidad en espacio: O b m
Optimalidad? NO
Al igual que primero en profundidad.

28 de Marzo 2012

(c) Facundo Bromberg

26

Bsqueda A*
Mejor variante de primero lo mejor
Idea: evitar expandir camino que ya son costosos
(g(n) grande).
Funcin de evaluacin: f(n) = g(n)+ h(n).
Costo total estimado del camino a travs de n.

28 de Marzo 2012

(c) Facundo Bromberg

27

Heursticas admisibles
Teorema: La bsqueda A* es optima solo si
utiliza heursticas admisibles.
Una heurstica es admisible si nunca sobreestima el costo
de alcanzar el objetivo.
Es decir, es optimista.

Formalmente:
h*(n) donde h*(n) es el verdadero costo desde n
2. h(n) 0 , asi que h(G)=0 para cualquier nodo objetivo G.
1. h(n)

e.g. hDLR(n) nunca sobreestima la distancia por rutas -> es admisible.


28 de Marzo 2012

(c) Facundo Bromberg

28

Optimalidad de A* (en arboles)


Demostracin. Supongamos un nodo objetivo G2
sub-ptimo en la frontera, y que el costo de la
solucin ptima es C*. Entonces, como G2 es subptimo y h(G2)=0 (cierto para todo nodo objetivo):
f(G2) = g(G2)+h(G2) = g(G2) > C*
Consideremos un nodo n sobre el camino ptimo:
f(n) = g(n)+h(n) =< C*
Dado que h(n) es admisible.
Entonces, f(n) =< C* < f(G2), y por lo tanto G2 no ser
n. Bromberg
28expandido
de Marzo 2012 antes(c)que
Facundo
29

Poda de A*
Un

importante beneficio de las heuristicas es la


poda.
De la demostracin anterior es facil ver que A* no
expandir ningn nodo n tal que f(n) > C*. (e.g.,
Timisoara).
Decimos que el sub-arbol de estos nodos esta
podado.

28 de Marzo 2012

(c) Facundo Bromberg

30

Estados repetidos:
Bsqueda en grafos

uncion BUSQUEDA-ARBOLES(problema,frontera) return solucin o fallo


cerrada {}
frontera INSERTA(HACER-NODO(ESTADO-INICIAL[problema],frontera)
loop
if VACIA?(frontera) then return fallo
nodo BORRAR-PRIMERO(frontera)
if TEST-OBJETIVO[problema] aplicado a ESTADO[nodo] es cierto
then return SOLUCION(nodo)
if ESTADO[nodo] no est en cerrado then
aadir ESTADO[nodo] a cerrado
frontera INSERTAR-TODOS(EXPANDIR(nodo, problema),frontera)
end loop
desecha ltimo camino repetido descubierto! Pero si es mejor?
28 de Marzo 2012

(c) Facundo Bromberg

31

Bsqueda en grafos
desecha ltimo camino repetido descubierto! Pero si es mejor?

Problema: el primer camino encontrado puede


ser sub-ptimo.
Recordemos que para bsqueda no informada:
-> PA y CU son OPTIMOS en grfos
En BPP y BPI es posible que encuentre primero el
camino sub-ptimo
-> NO OPTIMOS en grfos.

Para A* es facil ver que la demostracin de


ptimalidad se invalida si se desecha un estado
repetido que es mejor.
28 de Marzo 2012

(c) Facundo Bromberg

32

Optimalidad de A* (en grfos)


Dos

Comparar ambos y conservar el mejor:

alternativas:

Problema: descartamos todo un sub-arbol!.

Asegurar que siempre seguimos primero el camino


ptimo a cualquier estado (e.g. costo uniforme).

Para A*, esto se logra con nueva condicin para h(n):


consistencia.

28 de Marzo 2012

(c) Facundo Bromberg

33

Heuristicas consistentes
Una

heuristica h(n) es consistente, si para cada


nodo n, y cada sucesor n' de n (generado por
accin a):
h(n) =< g(n, a, n') + h(n')
n
n'

desigualdad
triangular

nodo
objetivo
28 de Marzo 2012

(c) Facundo Bromberg

34

Ejemplo: hDLR es consistente


hDLR es consistente si:
z =< x+y
z = x cos() + y cos ()
Pero como y =< 90o
=> cos () y cos () =< 1.
=> x cos() =< x, y cos () =< y
=> z = x cos() + y cos () =< x + y.
28 de Marzo 2012

(c) Facundo Bromberg

x
n'

z
y

35

Optimalidad de Bsqueda en Grafos


Lema: si h(n) es consistente, entonces los valores de f(n), a lo largo de cualquier camino, no disminuyen.
Demostracin: Supongamos que n' es un sucesor de n; entonces g(n')= g(n) + c(n,a,n') para alguna a, y
entonces
f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') g(n) + h(n) = f(n)

NOTA: modificado luego de grabar el audio.


Teorema: A* utilizando BUSQUEDA-GRAFOS y heuristica consistente es ptimo.
Demostracin: La demostracin procede demostrando que ante dos visitas a un estado, la primera es la
ptima. Sean N1 y N2 dos nodos del rbol que representan la visita a un mismo estado E. Supongamos
adems que g(N1 ) < g(N2), siendo que ambos representan al mismo estado, tenemos adems que h(N1 )
= h(N2), por lo tanto
f(N1) < f(N2)

(*)

Del Lemma, tenemos entonces que la relacin (*) debe cumplirse para todo antecesor n de N1 . De esto
se concluye que todo nodo del camino de la raz a N1 se v a extraer de la frontera antes que el nodo
N2. Es decir, se visita primero el camino ptimo al estado E.

28 de Marzo 2012

(c) Facundo Bromberg

36

Limitaciones de A*
A*

es completo
A* es ptimo,
Ningn algoritmo ptimo de bsqueda en rboles
garantiza expandir menos nodos que A*.
A* tiene dificultades (principalmente de memoria)
por ser ptimo, ya que para encontrar la solucin
ptima en muchos casos debe expandir un nmero
exponencial de nodos.
Condicin para crecimiento sub-exponencial:
|h(n) h*(n)| =< O(log h*(n))
el error es comunmente proporcional.
28 de Marzo 2012

(c) Facundo Bromberg

37

Alternativas a A*
Variantes

sub-ptimas de A*
Heuristicas no admisibles.
Bsqueda heurstica con memoria acotada (A*PI
(IDA* en ingls), BRPM, A*M, A*MS).

28 de Marzo 2012

(c) Facundo Bromberg

38

IDA*: Bsqueda A* de
profundidad iterativa
Adapta

la idea de BPI, utilizando como valor de


corte el f-coste (g+h). En cada iteracin, el valor del
corte es el f-coste mas pequeo de cualquier nodo
que excedi el corte de la iteracin anterior.
Ventaja: memoria lineal.
Nodos cuyo f-coste es mayor que corte no se
expanden: por lo tanto, tampoco se debe
mantener info de sus predecesores!.
Para problemas de costos enteros puede obviarse
el mantenimiento de una frontera ordenada.
28 de Marzo 2012

(c) Facundo Bromberg

39

Funciones heuristicas (8-puzzle)


Casos

al azar solucin
tiene 22 pasos.
Factor ramificacin ~ 3.
Bsqueda exhaustiva
visitara 322=3,1 x 1010 nodos.
Manteniendo info de estados repetidos se
puede reducir a approx 9!/2 = 181.440, tamao
del espacio de estados (para 15-puzzle esto es
inmanejable de todas maneras).
28 de Marzo 2012

(c) Facundo Bromberg

40

Funciones heuristicas (15-puzzle)


Para obtener A* ptimo buscamos heurstica admisible.

h1= nmero de piezas mal colocadas.

Ej., en la figura, todas piezas mal colocadas: h1=8.

Admisible: toda pieza mal colocada debe moverse al menos una vez.

h2= distancia de Manhattan. Suma de distancias horizontales y


verticales de pieza a su posicin objetivo.

Ej., h2= 3 + 1 + 2 + 2 + 2 + 3 + 3 + 2 = 18

Admisible: cuenta camino mas corto de cada pieza al objetivo.

Ninguna sobreestima el coste optimo que es 26.

28 de Marzo 2012

(c) Facundo Bromberg

41

Funciones heuristicas (15-puzzle)


Impacto de heuristicas en rendimiento se mide por
medio de factor de ramificacin efectivo b*.
Si para un problema en particular:

A* genero N nodos y la profundidad de la solucin es d,


entonces
b* es el factor de ramificacin que un rbol completo de
profundidad d deberia tener para obtener N+1 nodos, es
decir:

N+1 = 1 + b* + (b*) + ... + (b*)d => b*~ e(ln N)/d


para d=5, N=52 entonces b*=1.92
Que valor de b* es el ideal?
28 de Marzo 2012

(c) Facundo Bromberg

42

Funciones heuristicas (15-puzzle)


Experimentos

para comparar h1 y h2.

1200

estados iniciales aleatorios, con soluciones de


longitud 2 a 24 (100 para cada nro par).
Costo de la bsqueda
BPI

28 de Marzo 2012

Factor de ramificacin efectivo b*


BPI

(c) Facundo Bromberg

43

Inventar heuristicas admisibles


Es posible generar heuristicas admisibles automaticamente
(por una computadora, por ejemplo?)
h1 y h2 son soluciones exactas para problemas relajados
El costo de una solucin optima en un problema relajado es
una heurstica admisible para el problema original.
Formalmente, restricciones para acciones en n-puzzle:
Una ficha puede moverse del cuadrado A al cuadrado B si A es
horizontalmente o verticalmente adyacente a B y B es la vaca.
Conduce a 3 problemas relajados:
Una ficha puede moverse del cuadrado A al cuadrado B si A es
horizontalmente o verticalmente adyacente a B (h2)
Una ficha puede moverse del cuadrado A al cuadrado B si B es vaco.
Una ficha puede moverse del cuadrado A al cuadrado (h )
28 de Marzo 2012
(c) Facundo Bromberg
44 1

Conclusiones
Todos

los algoritmos de bsqueda no local


presentados siguen un nico algoritmo genrico:
BUSQUEDA-ARBOLES (o BUSQUEDA-GRAFOS
con pequeas modificaciones)

Difieren

tan solo en el orden de expansin.

Sin

duda, A* es el mejor de los presentados ya


que es completo, ptimo y su complejidad es
altamente reducida con buenas heuristicas.).

28 de Marzo 2012

(c) Facundo Bromberg

45

Você também pode gostar