Está en la página 1de 36

Titulo del material

Búsqueda Informada

Insertar imagen
según el tema
Temario

1. Tema

2. Tema
- Subtemas
Búsqueda Informada

-----
Búsqueda informada
Subtema

• La Búsqueda Informada:
– Puede encontrar soluciones más eficientemente que la
búsqueda a ciegas.
– Saben si un estado no objetivo es “más prometedor” que
otro.
– Utiliza conocimiento especifico del problema.
Búsqueda informada
Búsqueda Primero el Mejor

• Búsquedas Primero el Mejor: (Best-First Search)


• basadas en búsqueda de coste uniforme, selecciona el
siguiente nodo a expandir mediante una función de
evaluación f(n) que se implementa dentro de la lista de
prioridad.
Búsqueda informada
Función de Evaluación

• Calcula un coste estimado.


• Selecciona nodo con menor costo.
• Si hay empate?
• Compuesta de una combinación de:
– Función Coste: g(n) (no negativo)
– Función Heurística: h(n)
• Normalmente, Suma: f(n)=g(n)+h(n)
Búsqueda informada
Función heurística

• Devuelve una estimación del coste del camino más corto


que queda por recorrer desde el nodo actual hasta el
nodo solución.
• Debe cumplir 2 condiciones:
• Ser Admisible.
• Ser Consistente (Monótona)
Búsqueda informada
Heurística - admisible

• La función heurística no debe sobrestimar el coste real,


es decir, siempre debe dar un valor inferior al real.
• Ejemplos:
• Distancia en línea recta (euclídea).
• Distancia de Manhattan.
Búsqueda informada
Heurística - Consistente

• No Decreciente: h(n) ≤ c(n, a, n') + h(n')


• c() : coste de una acción.
• n : nodo actual.
• a: acción.
• n' : nodo resultado de acción.
• f(n')=g(n')+h(n')=g(n)+c(n,a,n')+h(n') g(n)+c(n,a,n')+h(n') ≥
g(n)+h(n)=f(n)

• Toda heurística consistente es admisible, pero puede ser


admisible y no consistente.
Búsqueda informada
Contorno

• Línea cerrada sobre el grafo que define un coste


estimado y que agrupa nodos, de forma que el coste
estimado de los nodos que queden dentro sea inferior al
establecido por el contorno, y el costo estimado de los
nodos que queden fuera sea superior al del contorno.
Búsqueda informada
Búsqueda Primero el Mejor

• Concentricos: h(n)=0 → f(n)=g(n)


• Ovalados: h(n)>0 → f(n)=g(n)+h(n)
Búsqueda informada
Infraestructura

• nodo.COSTE: función coste.


• nodo.HEURÍSTICA: función heurística.
• nodo.VALOR: coste + heurística.
• nodo.HIJOS: lista de hijos del nodo.
• nodo.HIJO-MENOR(n): devuelve el hijo que tenga el n-
esimo menor VALOR pero sin sacarlo de la lista.
Búsqueda Avara

-----
Búsqueda Avara
Subtema

• Búsqueda Voraz.
• Greedy Search en Inglés.
• No tiene en cuenta el coste del camino recorrido,
expande el nodo más cercano a la solución:
• f(n)=h(n) [g(n)=0]
Búsqueda Avara
Subtema

function BUSQUEDA-VORAZ(problema) returns solucion o fallo


nodo-raiz ← CREAR-NODO-RAIZ(problema)
frontera ← CREAR-PRIORIDAD()
frontera.AGREGAR(nodo-raíz)
explorada ← CREAR-CONJUNTO()
loop
if frontera.ESTA-VACIA() then return fallo
nodo ← frontera.POP()
if problema.ES-OBJETIVO(nodo.ESTADO) then return nodo
explorada.AGREGAR(nodo)
foreach accion in problema.ACCIONES(nodo.ESTADO) do
hijo ← CREAR-NODO-HIJO(problema, nodo, accion)
if (hijo.ESTADO not in explorada &&
hijo.ESTADO not in frontera.ESTADOS()) then
frontera.AGREGAR(hijo)
else
nodo-frontera ← frontera.BUSCAR(hijo.ESTADO)
if hijo.HEURISTICA < nodo-frontera.HEURISTICA then
nodo-frontera ← hijo
Búsqueda Avara
Subtema

• Si el objetivo es Bucarest, tendremos que conocer las


distancias en línea recta a Bucarest, que se muestran en
la siguiente tabla:

• Nótese que estos valores no pueden calcularse de la


descripción del problema en sí mismo.
Búsqueda Avara
Subtema
Búsqueda Avara
Subtema
Búsqueda Avara
Subtema
Búsqueda Avara
Subtema
Búsqueda Avara
Subtema
Búsqueda Avara
Subtema
Búsqueda Avara
Subtema

• Completo: no, puede caer en callejones sin salida y no


aportar solución.
• Óptimo: no, aunque encuentre solución puede no ser la
óptima ya que no tiene en cuenta los costes de las
acciones.
• Complejidad: O(bm) donde m es el máximo nivel del
espacio de búsqueda, aunque va a depender de la
heurística.
Búsqueda A*

-----
Búsqueda A*
Subtema

• Tiene en cuenta el costo del camino recorrido y el costo


de la heurística.
• El siguiente nodo a expandir es el que tenga menor
costo estimado por la función de evaluación:
• f(n)=g(n)+h(n)
Búsqueda A*
Subtema

function BUSQUEDA-A-ESTRELLA (problema) returns solucion o fallo


nodo-raiz ← CREAR-NODO-RAIZ(problema)
frontera ← CREAR-PRIORIDAD()
frontera.AGREGAR(nodo-raíz)
explorada ← CREAR-CONJUNTO()
loop
if frontera.ESTA-VACIA() then return fallo
nodo ← frontera.POP()
if problema.ES-OBJETIVO(nodo.ESTADO) then return nodo
explorada.AGREGAR(nodo)
foreach accion in problema.ACCIONES(nodo.ESTADO) do
hijo ← CREAR-NODO-HIJO(problema, nodo, accion)
if (hijo.ESTADO not in explorada &&
hijo.ESTADO not in frontera.ESTADOS()) then
frontera.AGREGAR(hijo)
else
nodo-frontera ← frontera.BUSCAR(hijo.ESTADO)
if hijo.VALOR < nodo-frontera.VALOR then
nodo-frontera ← hijo
Búsqueda A*
Subtema
Búsqueda A*
Subtema
Búsqueda A*
Subtema
Búsqueda A*
Subtema
Búsqueda A*
Subtema
Búsqueda A*
Subtema
Búsqueda A*
Subtema
Búsqueda A*
Medida de Rendimiento

• Completo: sí. Si existe solución, la encuentra.


• Óptimo: sí. En árboles, si la heurística es admisible y, en
grafos, si es consistente.
• Sea C* el costo del camino óptimo:
– Expande todos los nodos con f(n)<C*.
– Puede expandir algunos nodos con f(n)=C*.
– No expande ningún nodo con f(n)>C*.
• A* es óptimamente eficiente, es decir, ningún otro
algoritmo expande menos nodos que él.
• Complejidad de Tiempo: exponencial, O(bd), sobre todo
con costos de acción constantes, pero con una buena
heurística se puede reducir bastante (incluso
polinómico).
• Complejidad de Espacio: también exponencial.
Preguntas…
Si, luego del estudio de este material, tienes dudas sobre
alguno de los temas, ingresa al Aula Virtual y participa en el
foro de dudas académicas de la unidad.
Continúa con las actividades
propuestas en la sesión.

Material producido para la Universidad Peruana de Ciencias Aplicadas


Autor:
COPYRIGHT ©UPC 2017 – Todos los derechos reservados

También podría gustarte