Define a building and a world, then the controller tries to deliver the people in it. The controller can't see the success rates or the rewards: it learns them while it runs (reinforcement learning) and plans based on what it has learned.
InputOutput
Starting point
The building Controller knows
The controller's action
–
Strategy and A* plan
What the controller has learned vs. the true value
Controller's estimateTrue value, hidden from the controllern = attempts or samples
Your controller's reward0
Random policy, same step–
Step0
Delivered · rounds0 · 0
This is the building's starting state. Changes to the input show up here right away.
Legend: the label 2→7 is person 2, who needs to get to floor 7 · the number on the body is their weight · colored flags mark destination floors · each elevator shows load/capacity · a crossed-out shaft is a floor that elevator can't reach.
Cumulative reward · click to jump to a step
Your controllerLoop periodsFull round
Learning over time · how far the estimates are from the truth
Average gap between the controller's estimate and the hidden true value. It starts large because the controller begins with guesses, and shrinks as experience comes in.
Log
The hidden world Controller can't see
The controller has to learn these on its own. An elevator that fails lands on a random floor, a person who fails doesn't move, and each delivery pays a reward drawn at random from the list.
When the run ends
The world's rules match the assignment's engine (ext_elev.py). Every action, RESET included, costs one step. "Random policy" is the course baseline: a uniform choice among the legal actions, in the same world and with the same seed.