Tengo una duda sobre la implementación de la heurística h2, en el código que nos entregaron el criterio para contar que un auto esté bloqueando el auto rojo es
if car.orientation == Orientation.VERTICAL and car.coord['x'] >= (red_car.coord['x'] + red_car.length) and (car.coord['y'] <= red_car.coord['y'] and car.coord['y'] + car.length > red_car.coord['y']):
pero no debería ser
if car.orientation == Orientation.VERTICAL and car.coord['x'] >= (red_car.coord['x'] + red_car.length) and (car.coord['y'] <= red_car.coord['y'] and car.coord['y'] + car.length >= red_car.coord['y']):?
(cambiar el último > por un >=)
pregunto porque sí hace sentido que la "punta" del auto que bloquea el auto rojo pueda estar en la misma fila que el auto rojo, y con este pequeño cambio la heurística me funciona bastante mejor en términos de nodos expandidos
Tengo una duda sobre la implementación de la heurística h2, en el código que nos entregaron el criterio para contar que un auto esté bloqueando el auto rojo es
if car.orientation == Orientation.VERTICAL and car.coord['x'] >= (red_car.coord['x'] + red_car.length) and (car.coord['y'] <= red_car.coord['y'] and car.coord['y'] + car.length > red_car.coord['y']):
pero no debería ser
if car.orientation == Orientation.VERTICAL and car.coord['x'] >= (red_car.coord['x'] + red_car.length) and (car.coord['y'] <= red_car.coord['y'] and car.coord['y'] + car.length >= red_car.coord['y']):
? (cambiar el último>
por un>=
)pregunto porque sí hace sentido que la "punta" del auto que bloquea el auto rojo pueda estar en la misma fila que el auto rojo, y con este pequeño cambio la heurística me funciona bastante mejor en términos de nodos expandidos