El documento describe el algoritmo de selección ordenada para ordenar un arreglo mediante intercambios de elementos. Luego, introduce conceptos básicos de búsqueda como estados, acciones, costos y heurísticas. Finalmente, discute sobre búsqueda en tiempo real, donde los estados no son completamente conocidos y se debe tomar una acción rápidamente, presentando el algoritmo RTAA* y la investigación del autor para mejorarlo.
1. B´squeda en Tiempo Real.
u
B´squeda en Tiempo Real.
u
Nicol´s Rivera
a
18 de Mayo de 2012
Pontificia Universidad Cat´lica de Chile
o
2. B´squeda en Tiempo Real.
u
Consideremos el problema de ordenar el arreglo A = [5, 2, 9, 7, 3]
donde lo unico que podemos hacer es intercambiar dos elementos
´
del arreglo.
5 2 9 7 3
3. B´squeda en Tiempo Real.
u
Consideremos el problema de ordenar el arreglo A = [5, 2, 9, 7, 3]
donde lo unico que podemos hacer es intercambiar dos elementos
´
del arreglo.
5 2 9 7 3
intercambiando A[0] con A[1];
2 5 9 7 3
4. B´squeda en Tiempo Real.
u
Consideremos el problema de ordenar el arreglo A = [5, 2, 9, 7, 3]
donde lo unico que podemos hacer es intercambiar dos elementos
´
del arreglo.
5 2 9 7 3
intercambiando A[0] con A[1];
2 5 9 7 3
intercambiando A[1] con A[4];
2 3 9 7 5
5. B´squeda en Tiempo Real.
u
Consideremos el problema de ordenar el arreglo A = [5, 2, 9, 7, 3]
donde lo unico que podemos hacer es intercambiar dos elementos
´
del arreglo.
5 2 9 7 3
intercambiando A[0] con A[1];
2 5 9 7 3
intercambiando A[1] con A[4];
2 3 9 7 5
intercambiando A[2] con A[4];
2 3 5 7 9
6. B´squeda en Tiempo Real.
u
Consideremos el problema de ordenar el arreglo A = [5, 2, 9, 7, 3]
donde lo unico que podemos hacer es intercambiar dos elementos
´
del arreglo.
5 2 9 7 3
intercambiando A[0] con A[1];
2 5 9 7 3
intercambiando A[1] con A[4];
2 3 9 7 5
intercambiando A[2] con A[4];
2 3 5 7 9
Finalmente, es necesario intercambiar A[3] con A[3] para chequear
que efectivamente el arreglo est´ ordenado.
a
7. B´squeda en Tiempo Real.
u
El problema anterior es un problema de b´squeda cl´sico y lo que
u a
hicimos para resolverlo fue aplicar el algoritmo de SelectionSort.
Hay otras formas de hacerlo!
8. B´squeda en Tiempo Real.
u
Soluci´n : sucesi´n acciones que llevan del estado inicial al final.
o o
Hay diferentes t´cnicas para encontrar soluciones como:
e
9. B´squeda en Tiempo Real.
u
Soluci´n : sucesi´n acciones que llevan del estado inicial al final.
o o
Hay diferentes t´cnicas para encontrar soluciones como:
e
Busqueda en Amplitud;
10. B´squeda en Tiempo Real.
u
Soluci´n : sucesi´n acciones que llevan del estado inicial al final.
o o
Hay diferentes t´cnicas para encontrar soluciones como:
e
Busqueda en Amplitud;
Busqueda en Profundidad;
11. B´squeda en Tiempo Real.
u
Soluci´n : sucesi´n acciones que llevan del estado inicial al final.
o o
Hay diferentes t´cnicas para encontrar soluciones como:
e
Busqueda en Amplitud;
Busqueda en Profundidad;
etc.
12. B´squeda en Tiempo Real.
u
Soluci´n : sucesi´n acciones que llevan del estado inicial al final.
o o
Hay diferentes t´cnicas para encontrar soluciones como:
e
Busqueda en Amplitud;
Busqueda en Profundidad;
etc.
13. B´squeda en Tiempo Real.
u
Si queremos encontrar la soluci´n de menor costo:
o
14. B´squeda en Tiempo Real.
u
Si queremos encontrar la soluci´n de menor costo:
o
A∗ .
15. B´squeda en Tiempo Real.
u
Recordemos de nuestro curso de inteligencia artificial que A∗
funciona con:
Lista de Close
Lista de Open
Una funci´n de ranking f = g + h que ordena Open.
o
23. B´squeda en Tiempo Real.
u
Tabla de Contenidos
1 Definiciones
2 Algoritmo B´sico para B´squeda en Tiempo Real
a u
24. B´squeda en Tiempo Real.
u
Tabla de Contenidos
1 Definiciones
2 Algoritmo B´sico para B´squeda en Tiempo Real
a u
3 Nuestra Investigaci´n
o
25. B´squeda en Tiempo Real.
u
Definiciones
Definici´n
o
Un problema de b´squeda es una tupla (S, A, c, s0 , G , C) donde:
u
S son los estados iniciales;
A es un conjunto de funciones a : S → S, parcialmente
definidas;
c : A → R+ , el costo de realizar la acci´n;
o
s0 ∈ S, es el estado inicial;
G , el conjunto de estados finales.
El objetivo es encontrar una sucesi´n a1 , .., an ∈ A tal que
o
an (...(a2 (a1 (s0 ))..) ∈ G tal que los estados a1 , ..., an cumplan
alguna condici´n C.o
En general la condici´n que pedimos al problema es m´
o ınimizar
n
i=1 c(ai ), es decir, minimizar el costo para ir de s0 a G .
26. B´squeda en Tiempo Real.
u
Definiciones
Ejemplo
Consideremos
S las permutaciones de {f1 < f2 < .. < fn };
A acciones de la forma aij que intercambian los elementos de
las posiciones i, j (puede tenerse i = j);
c(aij ) = 1 para todo aij ;
s0 un arreglo desordenado;
G = {(f1 , f2 , ..., fn )}, es decir, el arreglo ordenado.
SelectionSort encuentra una soluci´n de tama˜o n pero demora n
o n
en decidir que acci´n tomar. MergeSort encuentra una soluci´n de
o o
tama˜o O(nlog (n)) pero demora O(1) por cada decisi´n.
n o
27. B´squeda en Tiempo Real.
u
Definiciones
El buen funcionamiento de A∗ se basa en:
Definici´n
o
1 ıstica es una funci´n h : S → R+ .
Una heur´ o
2 Diremos que h es admisible tal que
h(s) ≤ c ∗ (s, G ) = ‘el costo ´ptimo de s al objetivo’,
o
3 Diremos que h es consistente si
h(x) ≤ c(a) + h(y ),
con x, y ∈ S tal que a(x) = y .
28. B´squeda en Tiempo Real.
u
Definiciones
Cuando el espacio de estados es conocido podemos pensar todo el
tiempo del mundo sin necesidad de ejecutar las acciones, pero...
29. B´squeda en Tiempo Real.
u
Definiciones
Cuando el espacio de estados es conocido podemos pensar todo el
tiempo del mundo sin necesidad de ejecutar las acciones, pero...
30. B´squeda en Tiempo Real.
u
Definiciones
Cuando el espacio de estados es conocido podemos pensar todo el
tiempo del mundo sin necesidad de ejecutar las acciones, pero...
¿Qu´ ocurre si el espacio de estados no es conocido en su
e
totalidad?
31. B´squeda en Tiempo Real.
u
Definiciones
Cuando el espacio de estados es conocido podemos pensar todo el
tiempo del mundo sin necesidad de ejecutar las acciones, pero...
¿Qu´ ocurre si el espacio de estados no es conocido en su
e
totalidad?
¿Qu´ ocurre si debemos elegir que acci´n realizar en un breve
e o
espacio de tiempo?
33. B´squeda en Tiempo Real.
u
Definiciones
Problema de Busqueda en Tiempo Real m´s simple:
a
34. B´squeda en Tiempo Real.
u
Definiciones
Problema de Busqueda en Tiempo Real m´s simple:
a
Un grafo conocido.
Un v´rtice inicial s y un v´rtice final g .
e e
Nuestras acciones son movernos entre v´rtices adyacentes a
e
un cierto costo.
35. B´squeda en Tiempo Real.
u
Definiciones
Problema de Busqueda en Tiempo Real m´s simple:
a
Un grafo conocido.
Un v´rtice inicial s y un v´rtice final g .
e e
Nuestras acciones son movernos entre v´rtices adyacentes a
e
un cierto costo.
Objetivo:
Encontrar camino de s a g .
36. B´squeda en Tiempo Real.
u
Definiciones
Problema de Busqueda en Tiempo Real m´s simple:
a
Un grafo conocido.
Un v´rtice inicial s y un v´rtice final g .
e e
Nuestras acciones son movernos entre v´rtices adyacentes a
e
un cierto costo.
Objetivo:
Encontrar camino de s a g .
Restricciones:
No todos los v´rtices pueden ser usados en un camino
e
(obstaculos), pero no sabemos cuales.
Debemos movernos en un intervalo breve de tiempo.
Solo podemos ver v´rtices que est´n cerca de nosotros (y ver
e a
si son accesibles o no).
37. B´squeda en Tiempo Real.
u
Algoritmo B´sico para B´squeda en Tiempo Real
a u
La forma m´s elemental de resolver un problema de B´squeda en
a u
Tiempo Real es
Tomar una heur´
ıstica h consistente,
Usar un algoritmo que base su movimiento en h,
Que el algoritmo aprenda mejores valores de h a medida que
avanza y la mantenga consistente.
38. B´squeda en Tiempo Real.
u
Algoritmo B´sico para B´squeda en Tiempo Real
a u
Teorema (Korf)
Si el grafo es finito y un algoritmo cumple las reglas anteriores
entonces dicho algoritmo resuelve el problema de b´squeda en
u
tiempo real.
39. B´squeda en Tiempo Real.
u
Algoritmo B´sico para B´squeda en Tiempo Real
a u
Teorema (Korf)
Si el grafo es finito y un algoritmo cumple las reglas anteriores
entonces dicho algoritmo resuelve el problema de b´squeda en
u
tiempo real.
Hay varios algoritmos que caen en la clasificaci´n anterior:
o
LRTA∗
LRTA∗ (k)
LRTALSS
RTAA∗
etc.
40. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
Nuestro (intento de) aporte.
41. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
RTAA∗ es un algoritmo que en cada instante
42. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
RTAA∗ es un algoritmo que en cada instante
Utiliza el algoritmo de A∗ (aunque no necesariamente tiene
tiempo de llegar a la meta)
43. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
RTAA∗ es un algoritmo que en cada instante
Utiliza el algoritmo de A∗ (aunque no necesariamente tiene
tiempo de llegar a la meta)
Avanzar hasta donde A∗ le indica que avance o hasta que
descubra un obstaculo que le impide realizar su avance.
44. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
RTAA∗ es un algoritmo que en cada instante
Utiliza el algoritmo de A∗ (aunque no necesariamente tiene
tiempo de llegar a la meta)
Avanzar hasta donde A∗ le indica que avance o hasta que
descubra un obstaculo que le impide realizar su avance.
Con los obstaculos descubiertos actualizar el valor de la
heur´
ıstica.
45. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
Suponga que s es el v´rtice donde realizamos A∗ y sea f ∗ el mejor
e
valor que hay en la Open al terminar de ejecutarlo, entonces
Teorema
La forma de actualizar RTAA∗ es equivalente poner h(s) = f ∗ y
luego propagar el valor de h(s) por las ramas del ´rbol de A∗ .
a
48. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
Lo anterior nos da la intuici´n de que es posible mejorar la
o
heur´
ıstica si actualizamos por las ramas que tienen el segundo
mejor valor de f , luego el tercero, etc..
51. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
Inicial LRTA
RTAA Perfecto
52. B´squeda en Tiempo Real.
u
Nuestra Investigaci´n
o
Realizando la idea anterior con un algoritmo muy simple se tiene
una mejora de 20 a 40 %.
k Costo RTAA Tiempo RTAA Costo Mejora Tiempo Mejora % mejora
10 11805712 0.00000225 8607077 0.00000355 1.37
20 6280704 0.00000435 4526572 0.00000875 1.39
50 2256027 0.00000945 1650945 0.00002545 1.36