I am considering starting work back up on Tax, but before I begin I want to have a cohesive design to follow, and there is a crucial question that I need to answer before I can continue.
Suppose that I had implemented a neural network, which, when provided with an n-length vector of real numbers, found the centroid vector of m different categories (where m is determined by the neural network) that these vectors fell into. To explain, if these were two-dimensional vectors, and we graphed two spherical masses of these point-vectors (say 100 points in each, with the points scattered in roughly spherical shapes), the neural network would return two vectors, where each one was the center of one of the spherical point-clouds. This neural network may be used to categorize ANY set of real vectors. This includes, but is not limited to, movement patterns (say, a bot's lateral and advancing velocity for the last 60 ticks), acceleration patterns, delta-heading patterns, etc. I can tune the neural network to produce a fewer or greater number of categories, so I can tune it to, for instance, produce 3 categories of movement patterns. I could then store statistics for each category of movement. [Ed: Sorry, this is a bad explanation. It returns more than just the centroids. Suffice it to say that it can categorize vectors.]
The simple question is this: What input should I give this network? Any thoughts are very welcome, though I realize that it is hard to guess the right input without experimentation. I just want an idea as to what direction to head in. In the past I have tried lateral velocity, with some success, mostly with only 3 or so ticks of information. I had expected acceleration patterns to be more telling, as well as using a lot more information than 3 ticks, but neither worked nearly as well as I had hoped. Keep in mind that this may be due to my implementation, which was a semi-realtime categorization/segmentation/statistics gathering, all during a battle. It may have been merely wrong, or it may not be the correct way to do it. My goal is to create categories of movement in advance based on thousands of battles against many bots and then save them to file -- this should produce better results.
Another question is, how do you all feel about using many, many statistical segments with varying amounts of information used for segmentation, and choosing between them based on margin of error? I have experimented with this heavily in the past (namely my old bot Statistician), with little/no success. It is possible that my implementation was faulty, but it may also be possible that many cooks spoil the broth, even if you have a way of choosing, statistically, the best cook.
Thanks all for any input!