IIC2613-Inteligencia-Artificial-2024-1 / Syllabus

Syllabus oficial del curso para su rendición 2024-1.
MIT License
46 stars 0 forks source link

T3 P2.1 #31

Closed Rodrijzs closed 3 months ago

Rodrijzs commented 3 months ago

Hola, no me queda muy claro que es exactamente lo que hace la función ya implementada get_cost.

Esta entrega el costo de ir desde el nodo actual hasta el nodo que uno le entrega pero esto podría tener varios posibles caminos, te estaría entregando el optimo? Por otro lado tampoco me queda muy claro si existe alguna forma de saber el tamaño del mapa para ir guardando las posiciones con sus respectivos costos.

Gracias!

Rodrijzs commented 3 months ago

Otra duda que me surgió, según el algoritmo para A* subido en la ayudantía no me queda muy claro que significaría el return señalado en este paso (adjunto la imagen), lo que imagino es que señala como "si no se cumple esta condición no tomes en cuenta ese sucesor" pero en caso de ser esto entiendo que el if debería ser cost > g(v) en vez de >=

Además en la penúltima linea a que se refiere con reordenar Open? astar

dfloreaa commented 3 months ago

Hola, no me queda muy claro que es exactamente lo que hace la función ya implementada get_cost.

Esta entrega el costo de ir desde el nodo actual hasta el nodo que uno le entrega pero esto podría tener varios posibles caminos, te estaría entregando el optimo? Por otro lado tampoco me queda muy claro si existe alguna forma de saber el tamaño del mapa para ir guardando las posiciones con sus respectivos costos.

Gracias!

@Rodrijzs la funcion computa el costo del camino hasta el nodo actual, esto se hace navegando hacia su padre recursivamente hasta no encontrar uno mas (es decir, el nodo raiz, desde uno comienza). El costo entonces depende de como hemos navegado hasta ese nodo y no es fijo.

dfloreaa commented 3 months ago

Otra duda que me surgió, según el algoritmo para A* subido en la ayudantía no me queda muy claro que significaría el return señalado en este paso (adjunto la imagen), lo que imagino es que señala como "si no se cumple esta condición no tomes en cuenta ese sucesor" pero en caso de ser esto entiendo que el if debería ser cost > g(v) en vez de >=

Además en la penúltima linea a que se refiere con reordenar Open? astar

@Rodrijzs el return que indicas es mas como un "continue" y busca no actualizar el costo de llegada a un nodo si es mayor al mejor costo que se ha encontrado para llegar a este anteriormente. Debemos reordenar open dado que actualizamos los valores f de nuestros nodos, reordenandolo para que nodos de menor f sean extraidos antes.