DavidNKraemer / SoCG21

Stony Brook University operations research graduate students' project for the 37th international Symposium on Computational Geometry (SoCG)
1 stars 0 forks source link

Rename `Agent` as it pertains to the environment #13

Closed DavidNKraemer closed 3 years ago

DavidNKraemer commented 3 years ago

The definition of the Agent class in dev/board.py conflates the RL concept of an agent (i.e., the controller) with the specifics of the game board agent (i.e., one of the pieces moving around).

This is bad design because it mixes distinct notions of state in very unhelpful ways.

The RL agent has internal state:

and treats environment state as parameters. The current game board agent contains a huge amount of code solely to maintain its piece of the environment state. In addition, it can move around as if subject to a policy like an RL agent.

This all gets worse once we realize that this godless mixing is embedded inside the actual Board environment! Everyone is pointing at everyone else, and streams are getting crossed (which is bad).

We should separate these aspects of the agent. The RL agent should be dedicated to RL stuff (and I vote that it should retain the name "Agent"), and the separated board piece agent guy (name pending) should manage its own environment state.

DavidNKraemer commented 3 years ago

Current proposal is to replace the word Agent in the GameBoard with Bot.

DavidNKraemer commented 3 years ago

Commit 594cec5c1d750327bd48cb66b2fc4cc3495d4fa3 in the dev branch has replaced all appropriate Agent references to Bot references. We still need to test that we didn't introduce errors, but that is now our semantic decision.