Actions masking and skipping for multi-agent system (Anylogic-Bonsai)

Occasional Contributor

I'm working on an Anylogic model where I have moving agents, and I want to have a trained brain that generates independent actions for each one. So far, the brain provides an array of actions for the moving agents. Is there a way where I can skip triggering an action for some of the agents that are already moving for example. Also, is there a way to avoid agents from taking invalid actions in my system apart from the "avoid" objective in the goal. 



1 Reply

@Maythah Thanks for your question. Can you describe the problem in a bit more detail? What is the action space for each agent? Is the number of agents fixed or variable? 


We do not currently have native support for multi-agent, so the options are:
- ask for one action at a time, cycling among all the agents. This makes credit assignment harder, but can work.

- do what it sounds like you're doing already: ask for actions for all the agents, and ignore any that aren't relevant in that state

- use a heuristic for all but one agent and train a brain for the remaining agent. Then export the brain and use it for all agents. 

We are working on a way to restrict the chosen actions to a subset of the entire action space, so the agent doesn't have to learn to avoid them. Can you describe the set of invalid actions in your problem?