I am currently working on a project on artificial intelligence in which agents must click and pull boxes from their original position to a specific position of the target. Then the project will be expanded to include several agents, so we have a supervisor who takes care of creating “high-level” goals, while the agents take care of real implementations.
In practice, at the moment, the supervisor must decide in which field the target fields should be placed. In fact, it may happen that putting the box in the target position can block the path to another target.
Our first approach to solving this problem is an attempt to “cut positions”. A certain position is the position of the section if it divides the moving space into two subsets in which one of them we have an agent and in the other one or more targets. For example, consider the following level, in which “x” is an agent, “A” and “B” are fields, and “a” and “b” are the corresponding target positions:
In this case, the goal position “a” is the cutting position, because if the field is placed there, the agent will not be able to reach goal “b”.
Can you suggest a quick algorithm for calculating cutting positions, and this can return the number of targets that each cutting position blocks?
source share