Professional Documents
Culture Documents
Introduccin
La bsqueda informada utiliza el conocimiento especfico del problema. Puede encontrar soluciones de una manera ms eficiente. Una funcin heurstica, h(n), mide el coste estimado ms barato desde el nodo n a un nodo objetivo. h(n) se utiliza para guiar el proceso haciendo que en cada momento se seleccione el estado o las operaciones ms prometedores.
2
G F E D H A h1 = ? h2 = ? C B
h1 = 6 h2 = -21
G F E D H A h1 = ? h2 = ? C B
h1 = 6 h2 = -21
h1 = 4 h2 = -15
G F E D H A h1 = ? h2 = ? C B
h1 = 6 h2 = -21
h1 = 4 h2 = -15
G F E D H A C B
h1 = 4 h2 = -16
Evala los nodos utilizando solamente la funcin heurstica, que, en general, se minimiza, porque se refiere a un coste:
f(n) = h(n)
10
Algoritmos de clase A
La funcin de evaluacin tiene dos componentes:
1) coste mnimo para ir desde el (un) inicio al nodo actual (g) 2) coste mnimo (estimado) para ir desde el nodo actual a una solucin (h)
13
Algoritmos de clase A
f es un valor estimado del coste total. h (funcin heurstica) es un valor estimado del coste de alcanzar el objetivo. g es un coste real: lo gastado por el camino ms corto conocido. Preferencia: siempre al nodo con menor f. En caso de empate: preferencia al nodo con una menor h. 14
Algoritmos de clase A*
Cuanto ms h se aproxime al verdadero coste, mejor. Si h(n) nunca sobrestima el coste real, es decir n: h(n) h(n), se puede demostrar que el algoritmo encontrar (de haberlo) un camino ptimo. Se habla en este caso de algoritmos A*.
15
Algoritmo A*
Algoritmo A*
La prioridad la marca la funcin de estimacin f(n)=g(n)+h(n). En cada iteracin se escoge el mejor camino estimado (el primero de la cola). A* es una instancia de la clase de algoritmos de bsqueda primero el mejor. A* es completo cuando el factor de ramificacin es finito y cada operador tiene un coste positivo fijo.
Tratamiento de repetidos
Si es un repetido que est en la estructura de abiertos:
Si su nuevo coste (g) es menor substituimos el coste por el nuevo; esto podr variar su posicin en la estructura de abiertos. Si su nuevo coste (g) es igual o mayor nos olvidamos del nodo.
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Ejemplo de bsqueda
* A
Optimizacin de A*
Un algoritmo A, dependiendo de la funcin heurstica, encontrar o no una solucin ptima. Si la funcin heurstica es consistente, la optimizacin est asegurada.
38
k(ni, nj) = 4
nj h(ni) = 10 h(nj) = 8
40
En la practica, las heursticas admisibles que se usan suelen cumplir la propiedad de consistencia. Si h(n) es consistente, entonces los valores de f(n), a lo largo de cualquier camino, no disminuyen.
41
Admisibilidad de A*
Una funcin heurstica es admisible si se cumple la siguiente propiedad: para todo n: 0 <= h(n) <= h(n) Por lo tanto, h(n) ha de ser un estimador optimista, nunca ha de sobreestimar h(n). Usar una funcin heurstica admisible garantiza que un nodo en el camino ptimo no pueda parecer tan malo como para no considerarlo nunca.
42
Ejemplo de no admisibilidad
A (h=3) /\ / \ B (h=2) C (h=4) | | | | D (h=1) E (h=1) | | | | F (h=1) G (solucin) | | L (h=1) | | M (solucin) coste operacin = 1
h en la solucin = 0
43
Algoritmos ms informados
A1* ms informado que A2*
Algoritmos ms informados
Compromisos a veces necesarios:
Tiempo de clculo
h1(n) requiere ms tiempo de clculo que h2(n) !
Nmero de reexpansiones
A1* puede que re-expanda ms nodos que A2* !
Si A1* es consistente seguro que no Si se trabaja con rboles (y no grafos) seguro que no
Perdida de admisibilidad
Puede interesar trabajar con heursticas no admisibles para ganar rapidez.
46
Rompecabezas de 8 piezas
(coste operaciones = 1)
1 8 7 6 3 2 4 5 1 8 7 6 2 3 4 5
Rompecabezas de 8 piezas
h2(n) = 7i [1,8]di
di = distancia entre posicin de la pieza i y su posicin final (suponiendo camino libre) distancia = nmero mnimo de movimientos para llevar la pieza de una posicin a otra A2* es admisible. Estadsticamente se comprueba que A2* es mejor que A1*, pero no se puede decir que sea ms informado.
Rompecabezas de 8 piezas
h3(n) = 7i[1,8]di + 3 S(n) S(n) = 7i[1,8]si
si=
0 si pieza i no en el centro y sucesora correcta 1 si pieza i en el centro 2 si pieza i no en el centro y sucesora incorrecta
1 8 7 2 6
3 4 5
h3(n)= ? h(n) = ?
A3* admisible ?
Rompecabezas de 8 piezas
h3(n) = 7i[1,8]di + 3 S(n) S(n) = 7i[1,8]si
si=
0 si pieza i no en el centro y sucesora correcta 1 si pieza i en el centro 2 si pieza i no en el centro y sucesora incorrecta
1 8 7 2 6
3 4 5
h3(n)=1+3(2+1) = 10 h(n) = 1
A3*no admisible
A3* no se puede comparar con A1* o A2* pero va ms rpido (aunque la h a calcular requiera ms tiempo).
A*PI
A* en profundidad iterativa es similar a PI
Iteracin de bsqueda en profundidad con un lmite en la bsqueda.
En PI el lmite lo daba una cota mxima en la profundidad. En A*PI el lmite lo da una cota mxima sobre el valor de la funcin f. Ojo! La bsqueda es una BPP normal y corriente, el heurstico f slo se utiliza para 52 podar.
A*PI
Se empieza con un valor de corte = f inicial. Orden de expansin = f = g + h
0+2 1+1 2+1 3+1 4+1 5+0 Objetivo 1+2 2+1 3+1 4+0 Objetivo
A*PI
Algoritmo A*PI
La funcin generar_sucesores slo genera aquellos con una f menor o igual a la del limite de la iteracin.
Algoritmo A*PI
La estructura de abiertos es ahora una pila (bsqueda en profundidad). Tener en cuenta que si se tratan los nodos repetidos el ahorro en espacio es nulo. Slo se guarda en memoria el camino (la rama del rbol) actual.
56
58
59
60