Closed jiaranda closed 3 years ago
Tengo un problema al ejecutar el programa completo cuando hay un puzzle de sokoban con 0 cajas:
Cuando no hay cajas, el algoritmo entrega una solución con costo 0, lo que creo que tiene sentido siguiendo la lógica de esta issue. Luego, en el archivo main se comparan los resultados de los algoritmos y se almacenan los mejores valores (en este caso, el costo 0). Finalmente, para mostrar los resultados se divide por este valor, generando un error de división por 0.
Este es el error que tengo:
Traceback (most recent call last): File "main.py", line 316, in <module> main() File "main.py", line 312, in main compare(algorithms, problem, heuristic_class) File "main.py", line 115, in compare "{:.2%}".format(solution["cost"] / best["cost"]), ZeroDivisionError: division by zero
Mi duda es: ¿yo no debería estar entregando un costo 0 o el main no está manejando bien los valores?
Es un problema del main, maneja el caso de 0 en las otras métricas, pero no en el costo, la solución fácil es evitar proponer problemas con solución de costo 0 en el main.
Como no tenemos acciones de costo 0, estos son problemas en los que el estado inicial es una solución, y esos problemas no sirven realmente para comparar distintos algoritmos.
Tengo un problema al ejecutar el programa completo cuando hay un puzzle de sokoban con 0 cajas:
Cuando no hay cajas, el algoritmo entrega una solución con costo 0, lo que creo que tiene sentido siguiendo la lógica de esta issue. Luego, en el archivo main se comparan los resultados de los algoritmos y se almacenan los mejores valores (en este caso, el costo 0). Finalmente, para mostrar los resultados se divide por este valor, generando un error de división por 0.
Este es el error que tengo:
Mi duda es: ¿yo no debería estar entregando un costo 0 o el main no está manejando bien los valores?