09.05.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!