Closed ariel-m-s closed 5 years ago
RwA* termina una iteración cuando encuentra un goal.
En las iteraciones siguientes, al expandir cualquier nodo, si este nodo tiene un f mayor al de la solucion encontrada anteriormente, no lo agrega a la open.
Entonces, el criterio de parada de una iteración de RWA* es cuando encuentra una solución, o cuando la OPEN está vacia o cuando el valor del último f expandido es mayor al de la mejor solución hasta el momento.
Luego, el criterio de parada de RWA* es cuando ya hicimos la iteración con w=1, ya que el resultado encontrado con w=1 es óptimo.
Creo que en esta respuesta me equivoqué (un poco).
Donde dice "En las iteraciones siguientes, al expandir cualquier nodo, si este nodo tiene un f mayor al de la solucion encontrada anteriormente, no lo agrega a la open."
debería decir
En las iteraciones siguientes, al expandir cualquier nodo, si este nodo tiene un g(s)+h(s) mayor al de la solucion encontrada anteriormente, no lo agrega a la open.
Hago ese distingo ya que en wA el f se calcula como f(s) = g(s) + wh(s). Entonces la poda es respecto al g(s)+h(s)
Hola,
Por lo que entiendo del enunciado, el RWA* podría no detenerse nunca, ya que si la solución encontrada (en algún momento) es óptima, su
g(s) + h(s)
nunca será mayor a si mismo. ¿Hay algún otro criterio de parada que no estoy considerando?Saludos, Ariel
Edit. Respondiéndome a mi mismo, ¿quizá el criterio de parada que me falta es cuando
w == 1
?