Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
UNIVERSIDAD NACIONAL DANIEL ALICIDES CARRIN
SISTEMAS Y COMPUTACIN
INFORME:
Bsqueda Heurstica IDA*
Integrantes:
BALDEN HINOSTROZA, Luis Alberto.
CARLOS MORALES, Edison.
CRISTOBAL NEYRA, Manuel.
CURI ESTRELLA, Henry.
ECHEVARRIA MESIA, Juan Carlos E.
HUINCHO LOPEZ, Jhan Carlos.
PICOY CALERO, Cristhian.
Docente:
Ing. CANTA HILARIO, Diana.
pg. 2
Dedicamos este trabajo
a todas las personas
interesadas en conocer
ms sobre el mtodo
heurstico IDA*.
pg. 3
ndice
1. Introduccin .............................................................................................................................. 5
2. Fundamentos de la bsqueda en tiempo real .......................................................................... 6
3. Descripcin de las fases de la bsqueda heurstica en tiempo real.......................................... 7
3.1. La fase de planificacin .......................................................................................................... 7
3.2. La fase de ejecucin ............................................................................................................... 9
4.1 IDA* ........................................................................................................................................ 9
4.1.1 Conocimiento previo ............................................................................................................ 9
4.1.2 Pros y Contras .................................................................................................................... 12
4.1.3 Trabajando ......................................................................................................................... 13
4.1.4 Algoritmo............................................................................................................................ 14
5. Conclusiones............................................................................................................................ 15
pg. 4
1. Introduccin
El algoritmo fue descrito por primera vez por Richard Korf en 1985. [1]
pg. 5
2. Fundamentos de la bsqueda en tiempo real
pg. 6
Planificacin Ejecucin
pg. 7
utilizacin de heursticas que permitan estimar el costo de alcanzar un objetivo
desde un estado intermedio.
Utilizando una funcin heurstica, extendida mediante bsqueda, es posible
construir una funcin de evaluacin de estados que incluya el costo para
alcanzar un estado determinado as como una aproximacin sobre el costo para
encontrar el objetivo desde ese estado (figura 4). Se definen los siguientes
costos:
f(n) es el costo heurstico asociado a un estado n
g(n) es el costo real para alcanzar un estado n a partir del estado actual 3
h(n) es el costo heurstico para alcanzar un objetivo desde el estado n
La relacin que existe entre los costos es:
f(n) = g(n) + h(n)
pg. 8
La heurstica utilizada es la distancia eucldea y la profundidad de bsqueda es
3.
4.1 IDA*
pg. 9
Hay algunas cosas que usted necesita saber antes de probar su mano en la
programacin de IDA *.
FIGURA 1.
pg. 10
FIGURA 2.
Como se ve en la Figura 2, el problema se convierte en un rbol y como saben,
un rbol es un caso especial de un Diagrama acclico dirigido (DAG), por lo tanto
IDA * puede aplicarse aqu tambin.
La figura es casi auto explicativa todava voy a explicar cmo va, por lo que los
nodos tienen datos como la cantidad de agua en cada jarra y estos estn
vinculados con cada paso posible desde el nodo anterior. Como se ve, el nodo
inicial es el nodo de inicio donde ambos jarros estn vacos de aqu hay dos
estados posibles, es decir, o llenar la jarra de 3 galones o la jarra de 5 galones,
por lo tanto, los dos nodos vinculados al inicio. Ahora bien, si vemos el LHS del
rbol en profundidad 1 hay dos pasos posibles, es decir, bien verter el agua de
la jarra de 3 galones a la jarra de 5 galones o llenar la jarra de 5 galones que se
describe por los nodos.
Este es un ejemplo sencillo de convertir su espacio de problemas en un rbol
para la implementacin de IDA *.
Nota: El agua en la jarra cuando se vierte a un recipiente con menos capacidad,
entonces el agua extra no se contar. Tambin los jarros se pueden vaciar como
un movimiento.
Necesita tener una heurstica admisible para el problema para una
bsqueda ptima y ms rpida (Opcional).
Qu es una heurstica admisible?
Una heurstica admisible es la que calcula el costo estimado para el estado
objetivo y siempre es menor o igual que el costo real de alcanzar el estado
objetivo, es decir, nunca sobrevalora el costo para alcanzar la
meta. A consistente o montona heurstica tambin se puede utilizar lo que
significa que es admisible y que es igual al costo a objetivo ms la distancia
estimada a partir de cada vecino en cuyo caso la solucin se encontrar el ms
rpido y se generaran los nodos menos innecesarios.
pg. 11
Por qu necesitamos heurstica?
La heurstica es el componente principal del algoritmo es decir los cerebros del
algoritmo sin l el algoritmo no es inteligente, las heursticas dan lmites al
algoritmo, como en que no seleccionar y cul a no desde heurstica dar la
estimacin general de la distancia a la meta Nodo que ayuda al algoritmo a elegir
el nodo ptimo en el siguiente paso.
- Usted necesita saber o calcular el costo necesario para viajar de un nodo
a otro.
Por lo general, el costo se toma como 1, pero puede variar de acuerdo a dnde
desea implementarlo. Por ejemplo un movimiento en diagonal puede costar 1,41
si lo est implementando en un mapa 2D con cada mosaico como un cuadrado
de 1 x 1 a travs de Pitgoras o por ejemplo si un nodo representa un mosaico
que contiene agua que ralentiza el movimiento puede ser valorado 2 etc .
- Necesitas estar familiarizado con la recursin.
La recursin en la informtica es un mtodo en el que la solucin a un problema
depende de soluciones a instancias ms pequeas del mismo problema. En la
recursin llamamos a la misma funcin dentro de esa funcin y, por tanto, un
conjunto infinito de objetos puede ser definido por enunciados finitos. La razn
por la que necesita estar familiarizado con la recursin es porque necesita
entender el flujo del programa en funciones recursivas, de lo contrario ser muy
difcil personalizar y terminar el algoritmo segn su conveniencia.
Contras:
pg. 12
4.1.3 Trabajando
La caracterstica clave del algoritmo IDA * es que no mantiene una pista de cada
nodo visitado que ayuda a ahorrar consumo de memoria y puede utilizarse donde
la memoria est restringida. Es en gran parte similar a la bsqueda de
profundizacin iterativa, la nica diferencia es que en lugar de alcanzar la misma
profundidad para cada rama, decide la profundidad usando la puntuacin f
llamada como el umbral que aumenta cuando un nodo con mayor puntuacin f
es alcanzado y el algoritmo Comienza de nuevo desde el principio hasta la nueva
profundidad.
As que utilizamos un bucle infinito que es la base de la funcin que se llama en
recursividad, cuando la funcin regresa desde el umbral que comienza desde el
principio a travs de este bucle infinito donde la funcin se llama inicialmente y
el umbral se incrementa despus de cada retorno.
El umbral no slo se incrementa aleatoriamente sino que depende de lo que la
funcin recursiva devuelve como el nuevo umbral. Durante la recursividad
siempre que se alcanza un nodo con una puntuacin f ms alta que el umbral,
este nodo no se explora ms, pero se anota f, puesto que encontramos muchos
de tales nodos, el mnimo de esta puntuacin f se devuelve como el nuevo
umbral.
Qu es f score?
F es nada ms que la suma del costo para alcanzar ese nodo y el valor heurstico
de ese nodo.
Para cualquier nodo dar, la puntuacin f se define como:
pg. 13
Aqu est la misma animacin ms claramente visible que la anterior.
Los nmeros escritos en el centro de los nodos son puntuaciones f.
Aqu estamos considerando inicialmente el umbral como 3 y el ciclo a travs del
algoritmo. En cada rama visitamos la profundidad hasta que la puntuacin f es
mayor que el umbral y anotamos ese valor f, hacemos esto hasta que todas las
ramas se exploran hasta la profundidad determinada. A continuacin, el ciclo
contina desde el nodo de inicio nuevamente con el nuevo valor de umbral que
es el mnimo de las puntuaciones f anotadas. Esto contina hasta que se
encuentra la meta o se excede el lmite de tiempo.
4.1.4 Algoritmo
}
}
Function Bsqueda ( nodo , g , umbral ) // funcin recursiva
{
pg. 14
F = g + heurstico ( nodo );
If ( f > umbral ) // mayor f encontrado return f ; If ( nodo == Meta )
// llamada recursiva con nodo siguiente como nodo actual para bsqueda de profundidad
integer temp = search ( tempnode , g + cost ( nodo , tempnode ), umbral ); If (temp
== FOUND ) // si el objetivo encontrado devuelve FOUND; If (temp <min)
min = temp;
}
Return min; // devuelve el valor mnimo 'f' encontrado mayor que el umbral
}
De funcin nextnodes ( nodo )
{
lista de retorno de todos los posibles prximos nodos de nodo ;
}
5. Conclusiones.
pg. 15
pg. 16