IIC2613 / Syllabus

Repositorio oficial Inteligencia Artificial 2020-2
6 stars 1 forks source link

Tarea 2 - Parte 3.4 #51

Open diegomendieta opened 3 years ago

diegomendieta commented 3 years ago

Hola, no me queda claro cuál sería la forma ideal de determinar los costos heurísticos del espacio abstracto. Está bien recorrer todo el espacio S, y en base a esos resultados, calcular los costos en el espacio abstracto, o hay alguna forma más eficiente de hacerlo (recorriendo, de alguna manera, sólo el espacio abstracto, por ejemplo)?

Gracias!

diegomendieta commented 3 years ago

Lo que no me queda claro es que si se quiere recorrer sólo el espacio abstracto, cómo puedo saber cómo pasar de un estado a otro, sin conocer el estado en el espacio original al que corresponde el estado abstracto?

jabaier commented 3 years ago

La idea consiste en computar una distancia óptima desde el estado objetivo (abstracto) hacia cada estado del espacio abstracto, almacenar las distancias en una tabla y usar esta tabla como heurística para buscar sobre el espacio concreto. La forma más eficiente de hacer esto es con una búsqueda con A* desde el estado objetivo (abstracto) con una condición de término insatisfactible.

diegomendieta commented 3 years ago

Gracias profesor @jabaier , eso lo entiendo. Lo que no entiendo es cómo se debe mover el algoritmo dentro del espacio abstracto, ya que para saber cuáles acciones puedo ejecutar en el espacio abstracto, necesito saber cuáles podría ejecutar en el espacio original. Cómo sería esto? Y, además, cómo podría hacer esto de manera externa, sin cambiar la clase Astar?

jabaier commented 3 years ago

Dado que ignoras las velocidades, debes habilitar los mismos desplazamientos que están disponibles cuando usas velocidades/aceleraciones. Eso implica configurar una vecindad distinta (posiblemente a través de un método análogo a set_connectivity), pero con un conjunto de movimientos que debes pensar con cuidado.

diegomendieta commented 3 years ago

Clarísimo, profe. Gracias!