Imagine you want to design a robot that can get through a maze by itself. How might you go about it? First, you would probably define the robot’s objective: Find the exit of the maze. Then you would create a mechanism to reward the robot for moving toward that goal and to punish it for moving farther away, so that over time it finds its way out. But what if the robot comes to a dead end right next to the exit? It’s geographically as close as possible to its objective but it can’t get there. And it won’t want to turn around because that would mean moving away from the goal and getting punished. Your robot would be stuck.