The system tries to overcome the problems PatternMatching, GuessFactorTargeting, and VirtualBullets have:
+probability for a given distance. + + +********* +********* +********* ========== bearing
BestPSpace tries to overcome it by mapping the right bearing to hit to multiple variables. It creates N probability spaces, each classified by a group of variables. For example:
+ SPACE 1: probability for a given distance. + + +********* +********* +********* ========== bearing
+ SPACE 2: probability for a given accumulated time moving in a certain direction. + + * + *** + ***** +********* ========== bearing
Note that you will have families of probability functions (defined by the variables used to classify the bearings) and many instances for each probability function. For example, one family might be defined by distance - accumulated time; the instance would be distance=500-accumulated time=20.
LauLectrik uses 20 of these families, and generates around 1300 instances (this means 1300 probability functions). The number of instances depends on the enemy. Some variables it uses are: distance, target direction, target velocity, target acceleration, accumulated time moving in the same direction, relative movement direction, etc.
When you are going to fire, you select the instance for each family that best matches the current enemy state, and select the family with the highest probability (note that higher probability means that there is less variance in that space - the movement is more predictable).
The advantage of this system is that you can try to create a movement that makes a probability function flat, but it will be very difficult to make ALL functions flat, so LauLectrik should always be able to find a good criterion to use for aiming.
Sumarizing how it works:
The gun has some problems that need additional work:
-- Albert
My prediction: This is the firing that the future killer bot will use. --tobe
Seems like it might have problems with learning speed, especially if the eternal rumble continues to use 10 round battles. --David Alves
So was this basically segmentation of GF targeting, or is there more to it? -- Jokester
When I read it I understood it as GF segmentation, but with segments treated separately. Maybe I was wrong ;) --lRem
Seems like a good system. The real trick to making it learn faster is to choose families that show some real relationships. You could have many different options for families built into the code, but only store and collect the ones that show a significant correlation (thankfully, there are established ways to evaluate this). I would be willing to bet that the biggest source of problems with this method is the fact that 90% of top bots use some form of wave surfing, so only the GuessFactorTargeting family will show any correlation. --speal