IIC2613-Inteligencia-Artificial-2023-1 / Syllabus

Repositorio base del curso, donde se publicarán enunciados, ayudantías y se resolverán dudas.
39 stars 1 forks source link

ERROR tubo lleno #58

Closed 4n1t4 closed 1 year ago

4n1t4 commented 1 year ago

Hola tengo este error al ocupar wagdy heuristic, me sale que tengo un tubo lleno a la hora de hacer un movimiento pero revisé la heuristica y el caculo hecho es correcto, por lo que, no se si debe a un error en mi codigo de A* o otros. Les agracería que me ayudarán con una idea de debuguear el codigo

dfloreaa commented 1 year ago

Hola, asegúrate de que el flujo de tu programa sea correcto, es decir:

Para cada estado expandido, actualizar el estado de juego actual al que representa, revisar los estados alcanzables desde él y almacenarlos, computando su función f = g + h (sin actualizar el estado actual).

Si el problema persiste, avísame y puedo echar un ojo en tu repositorio.

Un saludo

4n1t4 commented 1 year ago

Holaaa, revisé el flujo y creo q lo tengo correcto. No se si podrias hechar un ojo porsiacaso vez algo que yo no. Voy a hacer un push al main para que puedas verlo actualizado. Muchas gracias.💕

dfloreaa commented 1 year ago

Hola @4n1t4, disculpa lo tarde de mi respuesta, recién tengo un tiempo para revisar tu código.

Corriendo los primeros tres mapas no parece haber ningún error al correrlo, ¿tienes alguna idea del mapa y heurística que usaste para llegar al error?

4n1t4 commented 1 year ago

Hola si es el mapa 4 de heurita wagdy, pero vi que si utilizaba from_state+state para agregar al dic de generados no ocurre el problema, sin embargo, no reconozco cuam deberia ser el caso correcto ya que en una issue indicaron que basta utilizar state.str() y no el from. Y tambien cabe destacar que al usar from.str()+state.str() se expanden mas nodos que en vez de solo usar state.__str() No se que .e recokiendes hacer ne este caso, o basta con utilizar cualquier metodo y lo justifico en el analisis del codigo?

dfloreaa commented 1 year ago

Hola, efectivamente el uso de la heurística wagdy necesita el uso de from.__str() + state.__str(), lo que sacrifica más nodos a expandir. Te recomiendo fuertemente utilizar la versión conjunta (y no de un solo nodo) para hashear el estado.

4n1t4 commented 1 year ago

Perfecto y una duda, para la heuristica q si es admisible debo cambiar esto o basta con dejarlo escrito en el analisis?

dfloreaa commented 1 year ago

Puedes dejarlo en el análisis. Usa from.__str() + state.__str() para todo tu método de búsqueda