Tema 3: Contenidos. Búsqueda heurística. Introducción. - dccia
Tema 3: Contenidos. Búsqueda heurística. Introducción. - dccia
Tema 3: Contenidos. Búsqueda heurística. Introducción. - dccia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
<strong>Tema</strong> 3: <strong>Contenidos</strong>.<br />
• <strong>Búsqueda</strong> <strong>heurística</strong>. <strong>Introducción</strong>.<br />
• <strong>Búsqueda</strong> A * . <strong>Búsqueda</strong> óptima.<br />
• Propiedades formales.<br />
• Terminación.<br />
• Admisibilidad.<br />
• Nivel de información heurístico.<br />
• Ejemplos de <strong>heurística</strong>s.<br />
• Relajación de la restricción de<br />
optimalidad.<br />
• Ajuste de pesos<br />
• Admisibilidad-∈<br />
• Técnicas de medida basicas.<br />
• Problemas.<br />
1<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
<strong>Búsqueda</strong> <strong>heurística</strong>.<br />
<strong>Introducción</strong>.<br />
• Completitud<br />
• Admisibilidad<br />
• Dominación<br />
• Un algoritmo A 1 es dominante sobre A 2 si<br />
cada nodo expandido por A 1 es también<br />
expandido por A 2 .<br />
• Optimalidad<br />
• Un algoritmo es el óptimo de un conjunto de<br />
algoritmos si es el dominante sobre todos los<br />
algoritmos del conjunto.<br />
• La solución del problema vendrá dada<br />
por el camino de menor coste entre el<br />
estado inicial s y cualquier estado<br />
objetivo.<br />
2
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
<strong>Búsqueda</strong> A * . <strong>Búsqueda</strong><br />
óptima.<br />
• g * (n) = c(s, n)<br />
– Coste del camino de coste mínimo desde el<br />
nodo inicial s al nodo n.<br />
– Estimada por g(n)<br />
• h * (n)<br />
– Coste del camino de coste mínimo de todos<br />
los caminos desde el nodo n a cualquier<br />
estado solución t j<br />
– h * (n) = min k(n, t j).<br />
• f * (n)<br />
• C *<br />
– Esta función va a ser estimada por h(n).<br />
– Coste del camino de coste mínimo desde el<br />
nodo inicial hasta un nodo solución<br />
condicionado a pasar por n.<br />
– Definimos f * (n) = g * (n) + h * (n).<br />
– Esta función va a estar estimada por f(n).<br />
– Coste del camino de coste mínimo desde el<br />
nodo inicial a un nodo solución.<br />
– Coincide con h * (s).<br />
3<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
<strong>Búsqueda</strong> A * . <strong>Búsqueda</strong><br />
óptima.<br />
• g(n) ≥ g * (n).<br />
• Si tenemos una función h(n) = 0 y el<br />
coste de cada regla es unitario, estamos<br />
realizando una exploración en anchura.<br />
• f * (s) = h * (s) = g * (t j ) = f * (t j ) = C * ∀t j ∈Γ<br />
• Si el nodo n * se encuentra en un camino<br />
óptimo desde el nodo inicial s hasta un<br />
nodo solución t j , entonces se satisface<br />
que f * (n * ) = C * .<br />
4
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
<strong>Búsqueda</strong> A * . <strong>Búsqueda</strong><br />
óptima.<br />
• Una función <strong>heurística</strong> h(n) se dice que<br />
es admisible cuando se cumple:<br />
h(n) ≤ h * (n) ∀n<br />
• Una función que es admisible garantiza<br />
la obtención de un camino de coste<br />
mínimo hasta un objetivo.<br />
• Decimos entonces que un algoritmo A<br />
que utiliza una función <strong>heurística</strong><br />
admisible es un algoritmo A* .<br />
• Cuanto más correctamente estimemos<br />
h(n) menos nodos de búsqueda<br />
generaremos. Pero se nos presenta un<br />
problema: si nuestra función <strong>heurística</strong><br />
nos devuelve un valor superior a para<br />
algún nodo, no se puede garantizar<br />
que encontremos la solución óptima.<br />
5<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
<strong>Búsqueda</strong> A * . <strong>Búsqueda</strong><br />
óptima.<br />
• Infraestimación de la función <strong>heurística</strong><br />
• Sobreestimación de la función<br />
<strong>heurística</strong>.<br />
6
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Propiedades formales.<br />
Admisibilidad y optimalidad<br />
• Demostración de terminación.<br />
A*siempre termina para cualquier<br />
grafo.<br />
• A* termina para grafos finitos.<br />
• Si un estado meta es alcanzable desde el<br />
estado inicial, A* termina incluso para<br />
grafos infinitos.<br />
• Demostración de admisibilidad<br />
• Lema 1. En cualquier momento antes de que<br />
A* termine, existe en la lista de frontera un<br />
nodo m que está en un camino óptimo desde<br />
el estado inicial hasta un estado solución,<br />
para el que se cumple que f(m) ≤ C * .<br />
– El nodo m debe existir en la lista de frontera,<br />
puesto que todos los caminos son<br />
desarrollados. Ahora, por pertenecer a un<br />
camino óptimo se tiene que cumplir que<br />
g(m) = g * (m). Como además h * (m) ≥ h(m)<br />
tenemos:<br />
» f(m) = g(m)+h(m) = g * (m)+h(m) ≤ g * (m) +<br />
h * (m) = f * (m)<br />
= C *<br />
7<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Propiedades formales.<br />
Admisibilidad y optimalidad<br />
• A* es admisible.<br />
– por reducción al absurdo.<br />
– Supongamos que termina devolviendo un<br />
nodo de frontera t cuya función de<br />
evaluación sea f(t) = g(t) > C * .<br />
– únicamente comprueba las condiciones de<br />
terminación una vez que éste ha sido<br />
seleccionado para expandir (recordad ciclo de<br />
control). Cuando t fue seleccionado para<br />
expandir satisfacía la condición:<br />
» f(t) ≤ f(n) ∀n ∈ LF<br />
– Consecuencia de la Ecuación condicion es<br />
que inmediatamente antes de comprobar la<br />
condición de terminación todos los nodos de<br />
la lista de frontera satisfacían la condición:<br />
» f(n) > C * ∀n ∈ LF<br />
– lo que presenta una contradicción con<br />
el lema1, por lo que la suposición inicial es<br />
incorrecta y A* es admisible.<br />
• Cualquier nodo n seleccionado A*para<br />
su expansión por cumple: f(n) ≤ C * .<br />
8
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Nivel de información heurístico<br />
• Una función <strong>heurística</strong> h 2 estará más<br />
informada que otra h 1 si ambas son<br />
admisibles y h 2 (n) > h 1 (n) ∀n.<br />
• Similarmente un algoritmo A*que<br />
utilice la <strong>heurística</strong> h 2 estará más<br />
informado que otro que utilice h 1 .<br />
• Si A 1 y A 2 son dos versiones de A* tales<br />
que A 2 está mejor informado que A 1 , al<br />
terminar sus exploraciones sobre un<br />
grafo que posea un camino desde el<br />
nodo inicial hasta uno objetivo, todo<br />
nodo expandido por A 2 ha sido<br />
también expandido por A 1 (A 1<br />
expande, al menos, tantos nodos como<br />
A 2 ).<br />
9<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Nivel de información heurístico<br />
• Dem. por reducción al absurdo<br />
suponiendo que existe un nodo m que<br />
se genera en A 2 y no se genera en A 1 .<br />
• Sea p el padre que genera el nodo m.<br />
Cuando A 2 selecciona el nodo p para<br />
expandir se cumple que f 2 (p) ≤ C * .<br />
Como hemos supuesto que A 1 no<br />
selecciona el nodo p también se tiene<br />
que cumplir que f 1 (p) ≥ C * por lo que:<br />
→ f2 (p) ≤ C * ≤ f1 (p)<br />
→ f2 (p) ≤ f1 (p)<br />
→ Pero por definición:<br />
→ f 2 (p) = g(p) + h 2 (p) > g(p) + h 1 (p) = f 1 (p)<br />
→ f 2 (p) > f 1 (p)<br />
• Lo que es un absurdo y por lo tanto<br />
todo nodo generado por A 2 ha sido<br />
generado también por A 1 .<br />
10
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Nivel de información heurístico<br />
• En general el nivel de información de<br />
las <strong>heurística</strong>s permite encontrar antes<br />
la solución, pero tiene la desventaja de<br />
requerir un mayor coste computacional<br />
para su cálculo. La figura muestra los<br />
límites de la admisibilidad en los<br />
algoritmos tipo A:<br />
• h(n) = 0<br />
• h(n) ≤ h * (n)<br />
• h(n) > h * (n)<br />
11<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Problemas de camino mínimo<br />
• Problemas de los denominados de<br />
camino mínimo.<br />
→ El problema de encontrar un camino<br />
mínimo no implica trabajar necesariamente<br />
con distancias.<br />
• <strong>Búsqueda</strong> del camino más corto dentro<br />
de una rejilla regular Este problema es<br />
el más sencillo: Estamos situados en las<br />
coordenadas (0, 0) y tenemos que llegar<br />
a las coordenadas (m, n).<br />
12
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Problemas de camino mínimo<br />
• Coste actual óptimo<br />
→ g * ((x, y)) = |x| + |y|<br />
• Heurística admisible<br />
→ h 1 ((x,y)) = √[((m-x) 2 + (n-y) 2 )]<br />
• Heurística óptima<br />
→ h * ((x,y)) = |m-x| + |n-y|<br />
13<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Problemas de camino mínimo<br />
• <strong>Búsqueda</strong> con obstátulos<br />
14
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• El mantenimiento de la admisibilidad fuerza<br />
al algoritmo a consumir mucho tiempo en<br />
discriminar caminos cuyos costes no varían<br />
muy significativamente<br />
• Cuestiones cuando abordamos un problema<br />
de búsqueda:<br />
– Puede ser más interesante minimizar el coste<br />
de búsqueda que el coste de la solución. ¿Es<br />
entonces f = g + h una función de evaluación<br />
apta para tal fin?.<br />
– Aún cuando el valor de la solución es<br />
importante, las características<br />
combinatoriales del problema hacen que la<br />
aplicación de sea inviable. ¿Es posible<br />
aumentar la velocidad del algoritmo a costa<br />
de una pérdida acotada de calidad?.<br />
– Es muy difícil encontrar una <strong>heurística</strong> muy<br />
informada que además sea admisible. ¿Cómo<br />
se ve afectada la búsqueda por el uso de una<br />
<strong>heurística</strong> no admisible?.<br />
15<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Técnica de ajuste de pesos<br />
El objetivo de esta técnica es definir una<br />
función f() ponderada, fw (), como<br />
alternativa a la utilizada en A*<br />
fw (n) = (1-w)g(n)+w h(n)<br />
• donde:<br />
• g(n)<br />
» Proporciona la componente en anchura de la<br />
búsqueda.<br />
• h(n)<br />
» Nos indica la proximidad al objetivo.<br />
Variando de forma continua w dentro del<br />
rango 0 ≤ w ≤ 1 obtenemos estrategias<br />
mixtas intermedias.<br />
• Si h(n) es admisible tenemos que:<br />
• En el rango 0 ≤ w ≤ 1/2, A * con f w (n)<br />
también es admisible.<br />
• Dependiendo de la diferencia existente entre<br />
h(n) y h * (n), A * con f w (n) puede perder la<br />
admisibilidad en el rango 1/2 < w ≤ 1<br />
16
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Técnica de la admisibilidad-ε<br />
• El objetivo que buscamos al aplicar estas<br />
técnicas es aumentar la velocidad de<br />
búsqueda a costa de obtener una solución<br />
subóptima.<br />
• Un algoritmo es admisible-ε cuando para<br />
cualquier grafo termina siempre dando<br />
como resultado una solución cuyo coste no<br />
excede del coste óptimo, C * , por un factor<br />
1+ε:<br />
f(sol) ≤ (1+ε)C *<br />
17<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Técnica de ponderación dinámica o<br />
APD<br />
f(n) = g(n)+h(n)+ε[ 1- d(n)/N ] h(n)<br />
• donde d(n) es la profundidad del nodo n y<br />
N nos proporciona la profundidad de un<br />
nodo solución (se supone conocida).<br />
18
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Demostración de la admisibilidad-ε del<br />
APD:<br />
• debemos demostrar que esta técnica<br />
consigue un camino con coste f(sol) ≤<br />
(1+ε)C *<br />
• Ya hemos demostrado que en cualquier<br />
momento en la lista de frontera tenemos un<br />
nodo n′ perteneciente a un camino óptimo.<br />
Con esta premisa tenemos que,<br />
– f(n′) ≤ g * (n′) + h * (n′) + ε[ 1- d(n′)/N ] h * (n′)<br />
≤ C * + εh * (n′)<br />
≤ (1+ε)C *<br />
• Por lo tanto, el algoritmo no puede acabar<br />
conun estado solución cuyo coste supere<br />
(1+ε)C * , puesto que se selecciona siempre el<br />
estado con menor coste.<br />
19<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Algoritmo de estimación de coste de<br />
búsqueda A ε * .<br />
Utiliza una lista adicional denominada<br />
Lista_focal (L f ). Esta lista es una sublista de<br />
Lista_Frontera (LF) que contiene<br />
únicamente aquellos nodos cuya f(n) no<br />
excede del mejor valor de cualquier f(n)<br />
dentro de la Lista_Frontera por un factor<br />
(1+ε):<br />
• L f = {n: f(n) ≤ (1+ε) min(f(m))}<br />
m ∈ LF<br />
A * ε opera de forma idéntica al algoritmo A *<br />
salvo que selecciona aquel nodo de<br />
Lista_focal con menor valor de H f (n), una<br />
segunda <strong>heurística</strong>, además de h(n), que<br />
estima el coste computacional requerido<br />
para completar la búsqueda a partir del<br />
nodo n.<br />
20
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Cuando ε = 0 este algoritmo se reduce a A * .<br />
• Generalmente H f (n) puede contener<br />
información relativa a la estructura del grafo<br />
de búsqueda que parte de n (longitud, grado<br />
de ramificación aproximado, etc.).<br />
• H f (n) puede sobreestimar el coste de<br />
computación necesario sin comprometer la<br />
admisibilidad-ε de A * ε .<br />
• A ε * es admisible-ε.<br />
• n 0 , nodo en LF con menor valor de f.<br />
• t, nodo solución (elegido para expansión y<br />
que cumple las condiciones de terminación).<br />
• n 1 , nodo en LF dentro de un camino óptimo.<br />
• C(t) = f(t) = g(t), coste de la solución<br />
encontrada.<br />
– Entonces tenemos:<br />
– f(n 1 ) ≤ C * porque h es admisible.<br />
– f(n 0 ) ≤ f(n 1 ) porque LF está ordenada con<br />
respecto a f.<br />
– f(t) ≤ f(n 0 )(1+ε) porque t es elegido de L f .<br />
– Queda: C(t) = f(t) ≤ f(n 1 )(1+ε) ≤ C * (1+ε)<br />
21<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Relajación de la restricción de<br />
optimalidad<br />
• Comparación de algoritmos<br />
• El algoritmo de ponderación dinámica es<br />
más sencillo, pero únicamente es aplicable a<br />
problemas donde se conoce la profundidad<br />
en la cual nos va a aparecer la solución, o<br />
disponemos de una cota superior de dicha<br />
profundidad. Sólo en estos casos se<br />
garantiza la admisibilidad-ε.<br />
• En cuanto al algoritmo A ε * la separación en<br />
dos <strong>heurística</strong>s permite incorporar<br />
estimaciones de coste no capturables con las<br />
funciones g(n) y h(n) (por ejemplo,<br />
proximidad a la solución).<br />
22
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Técnicas de medida básicas<br />
• El esfuerzo de computación global se<br />
define como la suma del coste de<br />
búsqueda o de aplicación de las reglas<br />
(número de nodos generados) y del<br />
coste de control o de selección de<br />
reglas (función de evaluación y<br />
cálculos auxiliares).<br />
• El coste óptimo se obtiene en el punto<br />
de equilibrio de ambos costes<br />
23<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Técnicas de medida básicas<br />
• Penetrabilidad<br />
• Se define como la relación entre la longitud<br />
de avance en profundidad y la longitud de<br />
avance en otras direcciones:<br />
P = L/T<br />
• L =Longitud del camino desde el estado<br />
inicial al objetivo.<br />
• T =Número total de nodos generados<br />
durante la exploración.<br />
• P
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Técnicas de medida básicas<br />
• Factor de ramificación efectivo B<br />
• Se define como el número constante de<br />
sucesores que debería tener cada uno de los<br />
T nodos de un árbol de profundidad L.<br />
• La relación de B con L, T y P viene dada por:<br />
T = B+B 2 +…+B L = B(B L -1)/(B-1)<br />
P = L(B-1)/B(B L -1)<br />
• Con B
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Técnicas de medida básicas<br />
• Representación de P frente a L para<br />
valores de B<br />
27<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Viajante de comercio<br />
• Trata de encontrar el camino de coste<br />
mínimo que recorre una serie de ciudades<br />
(puntos en el espacio), pasando un sola vez<br />
por cada ciudad.<br />
• Asociado a cada par de ciudades tenemos<br />
un coste, que en algunos casos puede ser<br />
infinito.<br />
• Una restricción adicional es que debemos<br />
partir de una ciudad determinada, que es en<br />
la que se encuentra el viajante y la<br />
etiquetaremos con V0 28
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Sistema de producción<br />
• Espacio de estados. Tenemos dos alternativas<br />
en la representación del espacio de estados.<br />
Éstas son:<br />
– Cada estado es una lista de ciudades. En esta<br />
opción cada estado simboliza un recorrido<br />
parcial del problema.<br />
– Cada estado se corresponde con una ciudad.<br />
Es equivalente a la anterior pero debe<br />
incorporar información de control para que<br />
no se produzcan ciclos.<br />
• Vamos a optar por la primera opción. El<br />
espacio inicial es el que contiene únicamente<br />
la ciudad etiquetada con v 0 . Los estados<br />
finales son aquellos que contengan todas las<br />
ciudades y la ciudad de partida, v 0 , al<br />
principio y al final. El número total de<br />
posibles soluciones viene dado por: S = {(v 0 ,<br />
Π, v 0 )|Π= permutación de V - {v 0 }}. En<br />
nuestro caso 3! = 6 soluciones posibles.<br />
• La pregunta que se nos plantea ahora es:<br />
¿cuál es la solución óptima?, es decir, ¿cuál<br />
de estos caminos tiene una función de<br />
evaluación menor?.<br />
29<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Sea N = número de vértices-1, vamos a<br />
definir la función objetivo que va a ser la<br />
que proporcione el coste del camino<br />
Hamiltoniano:<br />
N-1<br />
f(v 0 , i 1 , i 2 , …, i N , v 0 ) = c[v 0 , i 1 ] +∑ c[i j , i j+1 ] + c[i N , v 0 ]<br />
j=1<br />
donde i k ∈ V-{v 0 } k = 1, 2, …, N-1.<br />
• El camino de menor coste se obtiene<br />
encontrando aquél que tenga menor f.<br />
• sol = arg min f(s)<br />
s ∈ S<br />
• donde S es el conjunto de todos los posibles<br />
caminos.<br />
30
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Los nodos interiores nos van a representar<br />
soluciones parciales. Por ejemplo<br />
η = (a0 , a1 , …, ak ) k ≤ N<br />
• expresa que hemos recorrido k ciudades, o<br />
lo que es lo mismo<br />
η = (a0 , a1 , …, ak, xk+1 , …, xN , a0 )<br />
\xj ∈ V - {a0 , a1 , …, ak }, k+1 ≤ j ≤ N<br />
El espacio de estados total viene dado por:<br />
En nuestro ejemplo:<br />
31<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Reglas de producción<br />
Rkl:vk → vl Si vl no es la ciudad de partida, es decir, vl ≠ v0,<br />
incorporamos la nueva ciudad al recorrido (visitamos esa ciudad).<br />
Precondición: vk = ak (última ciudad visitada) y vl no alcanzado (no<br />
se tiene que encontrar en la lista de ciudades visitadas del estado).<br />
Postcondición: Insertar vl como última ciudad visitada en el<br />
conjunto de ciudades visitadas del estado.<br />
Rk0:vk → v0 Vamos a la ciudad inicial. Todas las ciudades se han<br />
tenido que visitar.<br />
Precondición: vk = ak (última ciudad visitada) y v0, v1, …, vn todas<br />
visitadas.<br />
Postcondición: Insertar v0 como última ciudad visitada en el<br />
conjunto de ciudades visitadas del estado.<br />
• En la Figura se puede observar todo el<br />
espacio de estados desarrollado:<br />
32
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Para realizar la búsqueda vamos a utilizar<br />
una estrategia de control tipo primero el mejor<br />
haciendo uso del algoritmo A*.<br />
• Vamos a mostrar el resultado de aplicar una<br />
búsqueda en anchura y comparar este<br />
resultado con el proporcionado al<br />
incorporar dos nuevas <strong>heurística</strong>s.<br />
• Demostraremos la admisibilidad de las<br />
<strong>heurística</strong>s y demostraremos que una de<br />
ellas se aproxima más a que la otra a h*(n).<br />
• Podemos observar que siempre habrán dos<br />
caminos óptimos, correspondientes a<br />
realizar el recorrido en un sentido y en el<br />
contrario. Por ejemplo, si el camino óptimo<br />
fuera (v0 , v1 , v2 , v3 , v0 ) también el camino<br />
(v0 ,v3 , v2 , v1 , v0 ) es óptimo.<br />
• La función c[ai , aj ] nos proporciona el coste<br />
de ir de la ciudad ai a la ciudad aj .<br />
33<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Aplicación de <strong>heurística</strong>s<br />
• Vamos a realizar una consideración<br />
adicional: ante igualdad de valor de f(n) el<br />
algoritmo selecciona el nodo más profundo<br />
y entre los de la misma profundidad escoge<br />
aquél antes generado.<br />
• Calcular equivale a resolver el problema, es<br />
decir, es tan costoso calcular como encontrar<br />
la solución. nos proporciona el coste del<br />
camino mínimo hasta el objetivo<br />
34
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Otra consideración que vamos a realizar es<br />
que comprobaremos las condiciones de<br />
terminación cuando generemos los estados y<br />
no cuando se seleccionen.<br />
• <strong>Búsqueda</strong> de coste uniforme<br />
• Primero vamos a comprobar como se<br />
realizaría la búsqueda dentro del espacio de<br />
estados del problema sin utilizar ninguna<br />
<strong>heurística</strong>: h(n) = 0.<br />
f(n) = g(n)=∑c[ai ,ai+1 ]<br />
35<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Primera <strong>heurística</strong><br />
h 1 (n) = ∑ c[a, m(a)]<br />
a ∈ V-{a 0 , …,a k }<br />
• donde m(a) significa la ciudad más cercana a<br />
a. Esta <strong>heurística</strong> proporciona la suma de las<br />
distancias de los nodos aún no alcanzados a<br />
sus vecinos más cercanos. Nótese que m(a)<br />
puede pertenecer o no al conjunto de<br />
ciudades visitadas.<br />
• La demostración formal de la admisibilidad<br />
– Tenemos la <strong>heurística</strong> h 1 (n). También<br />
tenemos la definición h*(n). Sabemos que<br />
c[x i , x i+1 ] ≥ c[x i , m(x i )].<br />
36
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Resultado de aplicar la <strong>heurística</strong> h 1 (n)<br />
• Segunda <strong>heurística</strong><br />
h 2 (n) = spanning(V-{a 0 , …,a k-1 })+min c[a, a 0 ]<br />
a ∈ V-{a 0 , …,a k-1 }<br />
– La función spanning(), devuelve el coste de<br />
conectar de forma óptima un conjunto de<br />
nodos.<br />
37<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
– Comparación del camino formado por<br />
spanning<br />
→ Demostración formal de la admisibilidad<br />
de h 2 (n):<br />
N-1<br />
min (c[a k ,x k+1 ] + ∑ c[x i , x i+1 ])<br />
x k+1 , …,x n<br />
i = k+1<br />
≥<br />
spanning(V-{a 0 , …,a k-1 })<br />
También:<br />
min c[a, a 0 ] ≤ c[x n , a 0 ], ∀x n ∈ V-{a 0 , …,a k }<br />
a ∈ V-{a 0 , …,a k-1 }<br />
38
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
Por último:<br />
→ Resultado de aplicar la <strong>heurística</strong> h 2 (n)<br />
39<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Potencia <strong>heurística</strong><br />
h1 (n) ≤ h * (n), h2 (n) ≤ h * (n) (ya dem.)<br />
Además: h2 (n) ≥ h1 (n)<br />
– La explicación es que el más cercano a una<br />
ciudad puede pertenecer al conjunto de<br />
ciudades ya visitadas mientras que en el caso<br />
del spanning no, salvo ak . La necesidad de<br />
conectividad que requiere el spanning<br />
implica un coste mayor. Con el spanning<br />
calculamos el mínimo de lo que queda por<br />
recorrer.<br />
– figura la <strong>heurística</strong> en ambos casos se aplica<br />
al estado (v0 , v1 ):<br />
40
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
Por otro lado:<br />
min c[a, a0 ] ≥ c[a0 , m(a0 )]<br />
a ∈ V-{a 0 , …,a k-1 }<br />
Y:<br />
∑ c[a, m(a)] = ∑ c[a, m(a)] + c[ak , m(ak )]<br />
a ∈ V-{a 0 , …,a k-1 } a ∈ V-{a 0 , …,a k }<br />
h 2 (n) ≥ ∑ c[a, m(a)] + min c[a, a 0 ]<br />
a ∈ V-{a 0 , …,a k-1 } a ∈ V-{a 0 , …,a k-1 }<br />
≥ ∑ c[a, m(a)] + min c[a 0 , m(a 0 )]<br />
a ∈ V-{a 0 , …,a k-1 }<br />
≥ ∑ c[a, m(a)] = h 1 (n)<br />
a ∈ V-{a 0 , …,a k }<br />
41<br />
Fundamentos IA 3. <strong>Búsqueda</strong> Heurística<br />
@DCCIA<br />
Desarrollo de un problema<br />
completo<br />
• Evaluación de las <strong>heurística</strong>s<br />
Heurística h(n) = 0 h(n) = h1(n) h(n) = h2(n)<br />
Nodos generados 13 10 7<br />
P 0.25 0.3 0.43<br />
B 1.8 1.72 1.56<br />
Nivel de información 3 2 1<br />
Coste computacional ∅ O(n 2 ) O (nlogn)<br />
42