UC-IIC2613 / Syllabus

28 stars 10 forks source link

[Tarea 2] - Añadir condición al probar el código #134

Closed benjavicente closed 3 years ago

benjavicente commented 3 years ago

Tanto en el código de la parte 1 y 2, y en el de la parte 3: https://github.com/UC-IIC2613/Syllabus/blob/abe1cd797a4a8a0eee62dfe91664e87072c1cace/Tareas/Tarea%202/Parte%201/astar.py#L56

se retorna None cuando no hay solución. Además nos piden en la parte 3.4 que

La idea clave de esta modificación es que tu algoritmo ya no retornará una solución a menos que pueda demostrar que la solución satisface la cota de suboptimalidad.

Esto genera un problema en el código que testea las soluciones, ya que asume que hay una solución para cada problema, ya que se obtiene información del estado del nodo de la solución: https://github.com/UC-IIC2613/Syllabus/blob/abe1cd797a4a8a0eee62dfe91664e87072c1cace/Tareas/Tarea%202/Parte%201/test_astar.py#L35-L37

AttributeError: 'NoneType' object has no attribute 'g'

Creo que sería mejor cambiarlo de modo que no arroje un error al no retornan nada cuando se testee y revise el código, cambiando al código a algo como:

result = s.search()
time_delta = s.end_time - s.start_time
if result:
    data = (prob + 1, s.expansions, len(s.generated), result.g, time_delta, s.estimate_suboptimality())
    total_cost += result.g
    if show_solutions:
        print(result.trace())
else:
    data = (prob + 1, s.expansions, len(s.generated), -1, time_delta, -1)
print("%5d%10d%10d%10d%10.2f%10.2f" % data)
total_time += time_delta
Huasito-Appel commented 3 years ago

Sumado a lo que dice Benjamin, puedo en mis archivos de respuesta agregar test_astar.py, y test_preferred_astar ya que tengo esta condicion en caso de que no tenga solucion, dado cota de tienmpo o suboptimalidad. gracias.

diegomendieta commented 3 years ago

Gracias, @benjavicente. Tienes razón, le puse la etiqueta de importante para que más gente pueda verlo. En relación a lo tuyo @Huasito-Appel, no entendí tu duda. Podrías explicarla mejor?

diegomendieta commented 3 years ago

Perdón @Huasito-Appel, ya entendí. Sí, puedes hacerlo.

Huasito-Appel commented 3 years ago

@diegomendieta perfect gracias. pd creo que cerraste sin querer la issue al comentar, la mayoria no la va a ver si queda asi para que la cambies.

benjavicente commented 3 years ago

@diegomendieta quedó la issue cerrada 😕