Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORMADA
O
HEURÍSTICA
BÚSQUEDA PRIMERO EL MEJOR
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 la lista de
prioridad.
f(n) = g(n)+h(n)
FUNCIÓN DE EVALUACIÓN
Calcula un coste estimado.
Selecciona nodo con menor coste.
Si hay empate, el más nuevo.
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)
Alternativa: suma ponderada f(n) = w g(n)+w h(n)
Que son las heurísticas?
“Son criterios, métodos, o principios para decidir cuál entre
múltiples alternativas de líneas de acción promete ser la más
efectiva para alcanzar una meta. Representan un balance entre
dos requerimientos: la necesidad de hacer los criterios simples y
al mismo tiempo, el deseo de que discriminen correctamente
entre elecciones buenas y malas”. Judea Pearl
"Un proceso que puede resolver un problema dado, pero
que no ofrece ninguna garantía de que lo hará, se llama
una heurística para ese problema". Newell, Shaw y Simón,
1963
Ejemplos de algunas funciones heurísticas:
Basada en la distancia Manhattan permite movimientos
horizontal y vertical
(c-a) + (d-b)
b) Basada en la distancia euclidiana la distancia entre dos
puntos es la recta
√(c-a)2+(d-b)2.
c) Para llegar de un punto de la ciudad a otro nos puede servir como heurística la
información de una brújula
d) En el caso anterior nos vendría mejor la información que nos proporciona un
GPS
CARACTERÍSTICAS
No garantizan que se encuentre una solución, aunque esta
exista
Si encuentran una solución, no necesariamente esta es la
óptima
En algunas ocasiones encontraran una solución en un
tiempo razonable
En general los métodos heurísticos son mejores a los
métodos no informados en la aplicación de problemas
complejos.
FUNCIONES HEURISTICAS
f(n)=g(n)+h(n)
4 1 3 G(n) = 1
H(B) = Heuristica Distancia Manhatan EXPANDIDOS: A,B,E,F,I
2 5
A H(C) = F(N) = G(N)+H(N)
7 8 6 H(D) =
H(E) = H(F) = H(G) =
1 3 4 1 3 4 1 3
4 2 5 7 2 5 2 5
7 8 6 8 6 7 8 6
1 2 1 2 3 4 1 3 4 1 3 1 3 4 1 3 4 1 3
4 5 3 4 5 6 7 2 5 2 5 4 2 5 7 2 5 2 5
7 8 6 7 8 8 6 7 8 6 7 8 6 8 6 7 8 6
4 1 3 1 3 1 3 1 2 3 1 2 3 1 2 3
2 5 4 2 5 4 2 5 4 5 4 5 4 5 6
7 8 6 7 8 6 7 8 6 7 8 6 7 8 6 7 8
1 2 3
A) B E F I L
4 5 6
7 8 9
MEDIDAS DE RENDIMIENTO
COMPLETO: Si, si existe la solución la encuentra
ÓPTIMO: Si. En árboles, si la heurística es admisible y el grafo es
consistente.
f(n)<C*; f(n)=C* donde C* Coste del camino óptimo
COMPLEJIDAD:
Tiempo
O(bd) con una buena heurística puede llegar a ser polinómico
Espaci0
O(bd)
ANÁLISIS
VENTAJAS
Admite costes variables de acciones
Evita caminos inútiles (poda)
Reduce complejidad con buena heurística
Es completo y óptimamente eficiente
DESVENTAJAS
- Tiene complejidad exponencial, sobre todo en el espacio
BÚSQUEDA GREEDY, AVARA
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]
funcion BUSQUEDA-VORAZ(problema) devuelve solución a fallo
nodo-raíz CREAR-NODO-RAIZ(problema)
frontera CREAR-PRIORIDAD()
fronteraAGREGAR(nodo-raíz)
exploradaCREAR-CONJUNTO()
repetir
si frontera.ESTA-VACIA() entonces devuelve fallo
nodofrontera.POP()
si problema.ES-OBJETIVO(nodo.ESTADO) entonces devolver nodo
explorada.AGREGAR(nodo)
por cada acción en problema.ACCIONES(nodo.ESTADO) hacer
hijo CREAR-NODO-HIJO(problema, nodo, acción)
si hijo.ESTADO no esta en explorada y
hijo.ESTADO no esta en frontera.ESTADOS() entonces
frontera.AGREGAR(hijo)
sino
nodo-frontera frontera.BUSCAR(hijo.ESTADO)
si hijo.VALOR nodo-frontera.VALOR entonces
nodo-fronterahijo
MEDIDAS DE RENDIMIENTO
COMPLETO:
No, puede caer en callejones sin salida y 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:
Tiempo O(bd)
Espacio O(b*d) (va a depender de la heurística)
ANÁLISIS
VENTAJAS
Admite costes variables de acciones
Reduce complejidad con buena heurística
Evita visitar demasiados caminos inútiles
DESVENTAJAS
No es completo, ni óptimo
No tiene en cuenta los costes de las acciones
BUSQUEDA IDA*
• El algoritmo IDA* es una combinación del los algoritmos
búsqueda en profundidad y A*
• Ordena los nodos según el valor de f(n) = g(n) + h(n), pero al
expandir un nodo excluye como sucesores a aquellos nodos
cuyo coste supere una cota prefijada.
• Fase de reiteración: Si todos los candidatos a sucesores han
superado la cota, toma como nueva cota el coste del nodo
menos trangresor y relanza de nuevo el algoritmo.
función BÚSQUEDA-RECURSIVA-PRIMERO-MEJOR(problema) devuelve una solución, o fallo
BRPM(problema, HACER-NODO(ESTADO-INICIAL[problema]),∞)
función BRPM(problema,nodo,f_límite) devuelve una solución, o fallo y un nuevo límite f-costo
si TEST-OBJETIVO[problema](estado) entonces devolver nodo
sucesores ← EXPANDIR(nodo,problema)
si sucesores está vacío entonces devolver fallo, ∞
para cada s en sucesores hacer
f [s] ← max(g(s) h(s), f [nodo])
repetir
mejor ← nodo con f-valor más pequeño de sucesores
si f [mejor] > f_límite entonces devolver fallo, f [mejor]
alternativa ← nodo con el segundo f-valor más pequeño entre los sucesores
resultado,f [mejor] ← BRPM(problema,mejor,min( f_límite,alternativa))
si resultado fallo entonces devolver resultado
MEDIDAS DE RENDIMIENTO
COMPLETO:
Si
ÓPTIMO:
Encuentra la solución óptima
COMPLEJIDAD:
Tiempo O(bd)
Espacio O(b*d)
ANÁLISIS
VENTAJAS
Es completo
Es óptimo
Reduce el espacio de memoria
DESVENTAJAS
Tiene complejidad exponencial con respecto al tiempo
https://qiao.github.io/PathFinding.js/visual/
A partir del grafo del problema de las provincias del departamento i:
Aplicar los siguientes métodos:
Búsqueda en anchura
Búsqueda en profundidad
Búsqueda Costo uniforme
Búsqueda voraz
Búsqueda A*
Búsqueda IDA*
Dando el estado inicial y el estado final