Sunteți pe pagina 1din 32

Estrategias de Busqueda

Inform ada
Ivan Sanchez V.
IA 2016 - U PSE

O bjetivos de Aprendizaje
Entender las diferentes
estrategias para encontrar
soluciones a problemas
mediante la bsqueda
informada (usa informacin
especifica del problema).
Utilizar tcnicas heursticas
para intentar encontrar una
solucin de forma mas
optima.

Estrategias de Bsqueda Inform ada


Son estrategias que usan informacin especifica del problema, mas alla de la definicin
del problema.
Permiten encontrar soluciones de manera mas eficiente que la bsqueda no informada.
Se basa en el enfoque general Bsqueda Preferente (Bsqueda de la mejor opcin, Bestfirst Search).
La bsqueda Preferente es una instancia de la bsqueda general Tree-Search (bsqueda
en rbol) y Graph-Search (bsqueda en grafo).
El siguiente nodo a expandir se escoge con una funcin de evaluacin f(n). (Que bacan).
La funcin de evaluacin es construida como una estimacin de algn coste, asi el nodo
con el valor mas bajo es expandido primero.
Similar a la bsqueda de costo uniforme, pero con el uso de f para ordenar la cola de
prioridades.

La funcin de Evaluacin
La eleccin de la funcin de Evaluacin f, determina la estrategia de bsqueda
(o viceversa).
La mayora de algoritmos de bsqueda preferente incluyen una funcin
heurstica h(n) como parte de f.
H(n): El costo estimado del camino mas corto del estado en el nodo n hasta el nodo
meta.
H(n) toma un nodo como input y depende solo de este nodo. (Como por ejemplo,
para ir de Arad a Bucharest calculara tan solo la distancia en linea recta entre estos
nodos, sin tomar en cuenta los otros).

Funciones Heursticas son la manera mas comn de agregar conocimiento


adicional del problema al algoritmo de bsqueda.
Estudiaremos mas de Heurstica luego, por ahora consideraremos h(n) como
un valor arbitrario no negativo. La nica condicin es que si n es un estado
meta, h(n) = 0.

H eurstica
Del griego descubrir o encontrar.
Mtodo Heurstico: Cualquier enfoque de resolucin de problema,
descubrimiento o aprendizaje que emplea un mtodo practico que no
se garantiza optimo o perfecto, pero que es suficientemente bueno
para alcanzar metas inmediatas.
Cuando encontrar soluciones optimas es imposible, imprctico o muy
costos recurrimos a los mtodos heursticos para encontrar
soluciones satisfactorias en menor tiempo (o a menor coste).
En ciencias de la computacion, heurstica es cualquier tecnica que
permita resolver problemas mas rpido (o aproximar una solucin) en
comparacin a los metodos clsicos.
Normalmente sacrifica completitud, optimalidad o precisin por velocidad.

Sacrifi
cios de la H eurstica
Optimalidad: Cuando existen varias soluciones para un problema
dado, la heurstica garantiza encontrar la mejor solucin? Es
absolutamente necesario encontrar la mejor solucin?
Completitud: Cuando varias soluciones existen para un problema,
puede la heurstica encontrarlas todas? Necesitamos todas las
soluciones? Muchas tcnicas heursticas convergen a una sola
solucin.
Precisin: Puede la heurstica proveen un intervalo de confianza para
la solucin ofrecida? Que tan grande es el error de aproximacin?
Tiempo de ejecucin: Es esta la mejor tcnica heurstica conocida
para resolver este problema? Es la mas rpida? Que tanto mas
rpido converge la heurstica que el mtodo clsico? (algunas
heursticas son solo marginalmente mas rpidas).

Bsqueda Voraz (G olosa)


G reedy-Search
O bjetivos de Aprendizaje:
Aprender que a veces ser codicioso puede traer benefi
cios, en
especialcuando hablam os de busqueda.

Tecnica G olosa o Codiciosa


La tcnica golosa intenta expandir el nodo que este mas cercano a
la meta, basada en la premisa que es probable que converja pronto
a una solucin.
En esta tcnica, la funcin de evaluacin esta compuesta
solamente de la funcin heurstica.
F(n) = h(n)

Por ejemplo, en el problema de Rumania, podemos calcular como


heurstica la distancia en lnea recta a Bucarest, llamaremos a esta
heurstica hsld.
Para esto necesitamos conocer las distancias en lnea recta a Bucarest.
Podemos calcularlas con alguna tcnica, pero aqu las tenemos en una tabla.

hsld (Arad) = 366.


Ntese que estos valores no se pueden deducir de la descripcin del
problema.

Rum ania: D e Arad a Bucarest, H eurstica


El primer nodo a expandir desde
Arad ser Sibiu, porque esta mas
cerca de Bucarest que Zerind o
Timisoara.
Sigue Fagaras.
Fagaras produce Bucarest, meta!.
Sin embargo no es optimo, esta ruta
es 32 km mas larga que la que pasa
por Rimnicu Vilcea y Pitesti.

El algoritmo Goloso puede ser tambin incompleto en


rbol. En grafo solo es incompleto en espacios infinitos.
Consideremos ir de Iasi a Fagaras.
El algoritmo decidir ir por Neamt, pero este es un callejn
sin salida.

Bsqueda A*
M inim izar elcosto totalestim ado de la solucin

A*
IDEA: EVITAR expandir caminos que son costosos (suponemos).
Evala los siguientes nodos a elegir mediante una combinacin de:
G(n): el costo de alcanzar el nodo n (Desde el nodo inicial)
H(n): el costo de llegar desde el nodo evaluado a la meta

Entonces:
F(n) = g(n) + h(n). Es el costo estimado de la solucin mas barata a
travs de n.

La opcin mas razonable es probar que nodo tiene el menor valor


de f(n).
Si h(n) satisface ciertas condiciones, la bsqueda A* es COMPLETA y
OPTIMA.

D istancias a Bucarest H (n)

O ptim alidad en A*
Condicin 1: h(n) debe ser una heurstica admisible.
Heurstica Admisible: aquella que nunca sobrestima el costo de alcanzar una
meta.
Son optimistas, asumen que el costo de resolver el problema es menor de lo que en
realidad es.

Condicin 2: Consistencia o monotonicidad. Se usa en los algoritmos de


bsqueda A* en Grafos.
Consistente: h(n) es consistente si para cada nodo n y cada sucesor n de n
generador por cualquier accin a, el costo estimado de alcanzar la meta desde n no
sea mayor que el costo de dar el paso hacia n mas el costo de llegar de n a la
meta.
h(n)<= c(n, a, n) + h(n)
Bsicamente la inequidad triangular (triangle inequality): cada lado del triangulo no
puede ser mas largo que la suma de los otros 2 lados.

O ptim alidad en A*

La
A*
La
A*

versin de rbol de la bsqueda


es optima si h(n) es admisible
versin de grafo de la bsqueda
es optima si h(n) es consistente.

Consistencia

Contornos
Dado que los costos son
monotonicos (no
decrecientes) en todos los
caminos, entonces
podemos dibujar
contornos, donde todos los
nodos alcanzables dentro
de esa parte del grafo
estarn a una distancia
menor a un valor dado
como etiqueta.
Mapa de Rumania mostrando los
contornos f = 380, f = 400 y f = 420,
con Arad como estado inicial.
Tomado de AIMA, Russell y Norvig
(2013)

A*
Si C* es el costo de ruta de la solucin optima, entonces:
A* expande todos los nodos con f(n) < C*.
A* puede expandir algunos de los nodos justos en el contorno de la
meta (donde f(n) = C*) antes de seleccionar el nodo meta.

Ntese que A* no expande nodos con f(n) > C*. E.g.: Timisoara en
la figura anterior no es expandido a pesar de ser un nodo hijo
directo de a raz.
Entonces decimos que el rbol esta podado.
Podar, es quitar los ramales u opciones que no son prometedores,
sin siquiera examinarlos en detalle. Este concepto es poderoso y lo
usaremos a futuro.

Propiedades de la Bsqueda A*
Hasta ahora hemos visto que la bsqueda A* es:
Completa
Optima

Sin embargo A* no es la solucin a todos los problemas del


universo.
Esto porque, para muchos problemas, el numero de nmeros dentro
de los contornos es aun muy grande y deben ser evaluados.

Com plejidad
La complejidad depende mucho en las consideraciones que se tengan sobre el
espacio de estados.
Con una sola meta, el modelo queda como un rbol.
En este caso la complejidad de A* es exponencial al error absoluto mximo, O(b ed),
donde d es la profundidad de la solucin y e es el error absoluto (e=(h*-h)/h*).

Si el problema tiene muchos posibles estados meta, la situacin se complica.


La ruta se puede desviar del camino optimo, y hay un costo adicional proporcional al
numero de metas.
En grafos, la situacin es mas difcil.

La complejidad de A*, hace imprctico insistir en encontrar soluciones optimas.


Podemos usar variaciones de A* que lleven a soluciones suboptimas de
manera rpida.

D esventajas de A*
La mayor desventaja no es el tiempo de computo, sino al memoria.
Al mantener todos los nodos generados en memoria (como todos
los algoritmos basados en grafos), A* se queda sin memoria
rpidamente.
A* no es practico para problemas de gran escala.

Taller
Hacer el ejercicio 3.29 del libro.

Bsqueda con
restricciones de M em oria
Com o reducir eluso de m em oria alrealizar bsqueda

A* de Profundidad Iterativa (ID A*)


Como reducir los requisitos de memoria de A*?
Adaptando la idea de profundidad iterativa a la bsqueda heurstica.

Nuevo Algoritmo se llama Bsqueda A* con Profundidad iterativa


(IDA*).
El criterio de corte es el costo-f(g+h) en lugar de la profundidad.
IDA* es practico para muchos problemas con costo unitario.

Recursive Best-First Search (RBFS)


Y si pudisemos usar BFS (Bsqueda Golosa) usando solo un espacio de
bsqueda linear.
La tcnica de Bsqueda golosa recursiva (RBFS desde ahora porque el
nombre en espaol esta terrible).
El algoritmo se parece un poco a DFS, pero en vez de continuar
indefinidamente hacia lo profundo, este algoritmo usa una variable f_limit
para guardar el valor de f de la mejor alternativa para dicho nodo desde
cualquiera de los ancestros.
Si el nodo actual excede f_limit, la recursin vuelve hacia el camino anterior.
Mientras se retorna en la recursin, RBFS reemplaza los valores de f-value de
cada nodo en el camino con una valor respaldado del mejor f-value de sus
hijos. As RBFS, recuerda el mejor camino en el subrbol olvidado, y con esto
puede decidir si vale la pena reexpandir el subrbol at

Algoritm o de RBFS

Etapas de una bsqueda RBFS para


la ruta mas corta hacia Bucarest.
Se muestra encima de cada nodo el
valor de La variable f-limit para
cada llamada recursiva.
Cada nodo tiene debajo su valor fcost.
a) El camino via Rimnicu Vilcea es
seguido hasta que el mejor
ramal actual (Pitesi) tiene un
valor que es peor que la mejor
alternativa (Fagaras).
b) La recursin regresa y el valor
del mejor subrbol olvidado
(417) es guardado hasta Rimnicu
Vilcea; luego Fagaras es
expandido, revelando el mejor
valor hoja (450)
c) La recursin retorno y el mejor
valor hoja del rbol olvidado
(450) es respaldado en Fagaras;
luego se expande Rinmicu
Vilcea. Esta vez, porque la mejor

Particularidades de RBFS
RBFS es mas eficiente que IDA* aunque aun sufre de excesiva
regeneracin de nodos.
Notemos que el algoritmo parece cambiar de parecer
frecuentemente. Esto es porque cada vez que el actual mejor
camino se expande, su f-value tiende a incrementarse. El valor de h
es usualmente menos optimista para nodos que se acercan a la
menta.
SI h(n) es admisible, entonces RBFS es optimo (pasa igual que con
A*).
La complejidad en el espacio es linear con respecto a la
profundidad de la solucin optima mas profunda.
La complejidad en el tiempo es difcil de describir, ya que depende
del la precisin de la funcin heurstica y de cuan frecuentemente
se cambie de camino.

M as Bsqueda con Restriccin de M em .


IDA* y RBFS sufren de usar muy poca memoria.
Como usan poca memoria, olvidan lo que ya se ha hecho (arboles
ya expandidos). Esto puede llevar a que se vuelvan a explorar
varias veces algunos estados (problema especialmente fatal en
grafos redundantes).
Incluso cuando existe memoria suficiente, IDA* y RBFS no la usaran
(con las consecuencias que esto conlleva).
Entonces parece lgico utilizar toda la memoria que sea permitida.
Existe un algoritmo que hace esto, se llama simplified memorybounded A* (SMA*).

D eber
Escribir un ensayo con un ejemplo de (SMA*)
Max 1 Pagina ensayo, 1 Pagina Ejercicio.
Explicar el algoritmo con sus propias palabras.
Detallar Ventajas y desventajas (si existiesen).

Refl
exin

Las limitaciones de memoria


pueden hacer que la solucin
a un problema sea
inalcanzables desde la
perspectiva del tiempo
computacional.

M as Funciones
H eursticas
Entender la naturaleza de las funciones heursticas en general

Referencias
Russell, S., & Norvig, P. (2009). Artificial Intelligence: A Modern
Approach. Prentice Hall.
Thomson, Tommy. AI & Games. YouTube.
https://www.youtube.com/channel/UCov_51F0betb6hJ6Gumxg3Q
https://en.wikipedia.org/wiki/Heuristic_(computer_science)

S-ar putea să vă placă și