I definitely think I'm on to something here. My first slab test with CassiusClay gained me RR@H points. I know I should have room to improve this first attempt since my Crowd of guns isn't diverse or independent enough yet. -- PEZ
A very cool idea. In a way, this is similar to how a lot of wave surfers organize their data for movement (I know WaveSerpent, CassiusClay, and Dookious do it like this). There are many differently segmented buffers that are weighted and layered on top of each other to come up with the total risk of moving in a certain direction. -- Kev
Yes, but this is not exactly like that. CrowdMovement would layer many more buffers, and lots of them simple, on top of each other and also, in its purest form, not weigh the buffers at all. -- PEZ
I so wanna try this now, darn me and not saving Eclipse's installer. Seraphim surfs like this, though its base code is damaged. Actually you could do this not only with a swarm of bees, but a swarm made up of bees, wasps, dragonflys and birds. What I mean is, not only have gf guns, but pattern matchers and other types of targeting systems. --Chase-san
That is certainly true, and I think it's a fundamental part of what can make the crowd diverse. However, with multiple GF buffers, you can sum them to get a rating for each bin, while with a PM gun, you only get a single firing angle; so combining the results would require some more innovation.
Has anyone ever read about Google's rank aggregation techniques? I'm sure it's part of a larger field of study similar to this one. They have lots of different rankings that they try to intelligently (and very, very quickly) combine into a single ranking that is what you actually see as Google's search results. I attended a talk given by a Google employee last fall on the subject and found it very interesting. (And, of course, I instantly started considering ways to implement it in Robocode. =)) There may be much better ways to combine the voices in the crowd than just summing the values in the GF bins...
Converting a PM angle to a GF is no problem at all. PM tends to be slow though so throwing in a few of those might create the slowest bot ever. Even so one should be ready to go far to reach the diversity. I would certainly throw in a few other types of guns if I had them. Maybe we should create a Crowd interface where all of us can add targetings and see where that brings us. Using Dookious gun frame we would know that things are tuned to get optimum performance out of good guessing.
Google's Page rank is tapping in on the Wisdom of the Crowd, by the way. It's one of the examples taken up in the book. Sure there are other ways to utilize the crowd wisdom than just averaging GF guesses. It's about formulating the question in a way that can be accumulated and averaged. Whatever that question is.
Well, converting one angle to a GF is easy, but the PM gun doesn't give a ranking across all firing angles, it just gives you one angle. Engineer's NeuralNetwork, for instance, yields an array of GF bins just like we have in our guns, so that would be a lot easier to integrate into the crowd. It would be quite interesting to develop a common interface for this using Dookious, I'll definitely look into it when I get a chance. -- Voidious
- Well, not that there's anything stopping someone else from doing so... =) -- Voidious
Well, the way my current crowd in CC works is that all guns get to vote for one GF. Something a PM gun could deliver just as well. -- PEZ
What gets chosen? The mean (average), the mode (most popular) or median (most moderate)? Have you tried just adding together normalized segments (normalized meaning possibly either so that the highest bucket's rating is 1 or so that all buckets add up to 1) as Voidious probably assumed you were? -- Kawigi
Currently I chose the most popular. I'll try adding all buckets together next version. -- PEZ
Was the repetition of the top part intentional? I am deleting the top part --Starrynte
How about using MultipleChoice for choosing the angle? This could improve the close range performance, I would think. -- Skilgannon
Hmm... actually, this reminds me somewhat of some of my ideas in Rednaxela/MultiplePlaneRegressionClustering, because that is essentially using a 'crowd' of function approximators (i.e. linear regression or neural nets) and using a k-means type method to nudge them to "diversity" and "decentralization", and then "aggregates" by having each function approximator reposition logs entries that it 'specialized' based on what it expects in the current situation. So really, I'd consider that idea I had there to be a specialized form of "CrowdTargeting" though of a different variety than most ones considered here. -- Rednaxela
Indeed. Even just StatisticalTargeting fits the CrowdTargeting category I think. The reason I get so excited about the idea is that I spent so much time on trying to figure out which of my Targeting strategies that was the best for a specific enemy and then I realized that it was much better to just tap into the crowd wisdom. -- PEZ
- Indeed, I now feel 100% certain that tapping into crowd wisdom is better than trying to figure out a "best" strategy, because just recently I've successfully combined a DynamicClustering gun and PatternMatcher in a CrowdTargeting-style way that notably outperforms either gun alone or in VirtualGuns, even against random movers and such things that the PatternMatcher can't get strong matches on! -- Rednaxela
PEZ, I don't know if you've been keeping track, but DrussGT, which arguably has the strongest movement in the rumble, uses my own definition of CrowdTargeting. I have 100 randomly generated buffers for the surfing, each with different combinations of segments, both different attributes and different slices. It gives incredibly quick learning, which I blame for DrussGT's strong movement. It was this page that inspired me to give this idea a try. -- Skilgannon
No, I haven't been keeping track. Wish I had! Entirely awesome work with DrussGT. Inspiring! -- PEZ