Hunter-Runner: Implementing HIVEMind on FlexBot

Aaron Khoo

The Task

This is essentially a search task. A group of 2-4 Hunters is assigned to track down and eliminate a Runner. The Runner's objective is to escape without being cornered or trapped. All parties are assumed to know the layout of the environment they are operating within. Both Hunters and Runner have a fairly short range of sight; the Runner has a slightly longer range than the Hunters. 

Our objective is to evaluate the utility of the HIVEMind architecture within a reasonably complex environment. This task is interesting because it requires close coordination between Hunters to ensure the Runner does not escape. While the Hunters outnumber the Runner, the maps are sufficiently complex to ensure multiple paths to the exits exist and the Hunters will not be in sight of each other at all times. Therefore, the Hunters need to communicate in order to ensure that no paths are left exposed while actively hunting down the Runner.

The Runner 

The hapless Runner (zombie skin)

The Runner begins at a pre-assigned starting point (unknown to the Hunters). The Runner then attempts to navigate its way to any exit point. There can be multiple exit-points within a single map. If the Runner reaches the exit point at any time, it is assumed to "win" the game. The Runner cannot pass around a Hunter if the Hunter is in its path, i.e. if the Runner observes a Hunter at any time, it will be forced to abandon its current path and try another way to the exit. The Runner does have a slightly longer range of sight than the Hunters, so it can see the Hunters before they see it.

The Runner has a priori knowledge of the map layout. One important note is that the Runner does not always take the shortest path to an exit. Rather, the Runner has non-determinism built into it, and can randomly choose any valid path that leads it towards some exit. This allows the Runner to be more unpredictable and forces the Hunters to be more vigilant. 

The Hunters >>>>>