LLNL / Abmarl

Agent Based Modeling and Reinforcement Learning
Other
61 stars 18 forks source link

Attribute observers #367

Open rusu24edward opened 1 year ago

rusu24edward commented 1 year ago

Add features for the agent to observe the attributes of the other agents in a grid-like fashion, such as health, ammunition, etc. Some of these attributes are better represented by the encoding, such as attack_range, which will never change.

It's not clear how we should deal with the situation where there are overlapping agents. The single grid observer just picks one of the encodings, and we can do the same thing for the health observer. There's not really an equivalent for multi_grid_obsever. Overlapping agents imposes partial observability be default.

rusu24edward commented 1 year ago

We also have to think about how we design the agent classes. For example, we need a AmmoObservingAgent for an AmmoAgent to be able to observe its own ammo. This is not really ideal, and we should deal with this when thinking about the AttributeObserver.

rusu24edward commented 1 year ago

Can't do this:

class StandardAttackAgent(AmmoObservingAgent, AttackingAgent, MovingAgent, HealthAgent, GridObservingAgent): pass