PEZ, what causes the difference in performance between Pugilist/Aristocles
? (good) and Titius (bad) against Wolverine. I have problems with Wodan against Wolverine, appearantly because of the stop&go nature of Woverine's movement. You mention Pugilist/Aristocles
? share the same gun. What makes this gun so much better than that of Titius (with its high rating)? Or is it a combination of movement and gun (I noticed the same GF-gun can perform very differently with different types of movement of the bot using that GF-gun). A lot of text: you see i really have a problem with Wolverine... ;) --
Loki
Yes, this Wolverine problem has been up before. And solved! Can't remember right now... I'll look for it. If someone else can remember please join. It might have been with Falcon I had this issue... -- PEZ
Found it. It's discussed on the Aristocles page. What do you figure the bearing movement direction of your enemy is when it is stationary? That's the key to GF-gun down stop-n-go bots. -- PEZ
thanks, i will take a look on the Aristocles page. --Loki
Here's the key code in Pugilist:
public class Pugilist extends AdvancedRobot {
...
static double enemyBearingDirection = 0.75;
...
public void onScannedRobot(ScannedRobotEvent e) {
...
if (enemyVelocity != 0) {
enemyBearingDirection = 0.73 * sign(enemyVelocity * Math.sin(e.getHeadingRadians() - enemyAbsoluteBearing));
}
wave.bearingDirection = enemyBearingDirection / (double)Wave.MIDDLE_FACTOR;
...
That is, if the enemy is stationary I assume it will continue to go in whatever direction it was moving before it stopped.
Tityus always assumes a clockwise movement in this case. And when Wolvie is stop-n-going counter-clockwise you can imagine what happens... Of course this also means you can fool Pugilist b stop-n-going in an oscillation pattern. --
PEZ
Not really, it means Pugilist will fire more at negative GFs when the enemy in stationary, like it should. -- ABC
Yeah... you seem to understand GF targeting better than I ABC. GFs are a bit magical. -- PEZ
I have a true admiration for GF targeting and it's [Master], it took me quite a long while to fully understand it. It sure is magical. :) -- ABC
Hehe, but Paul isn't the master of GF targeting at the moment I would say. But as the inventor he deserves the brightest spot ever in Robocode land. Then I would place you, ABC, at the next brightest spot for picking up that invention and inventing WaveSurfing on top of them! -- PEZ
Could you guys explain to me why you think GF targeting is so brilliant? (of course I agree with that) I have no insight into GF gunning, because I never wrote a GF gun. Unfortunately my obsessive compulsive nature forces me to travel unpaved paths all the time, constantly reinventing other types of wheels, most of which are quite useless. ;-) Anyway, I'd like to know its inherent qualities so I can compare them to those of my gun-under-development. --Vic
I think that the biggest gain with GF theory is that u pick a 2D problem and tranform it in 1D only. I also have no GF gun, but i have learned to admire the simplicity of that idea (magic) while building my WaveSurfing. GF magic is so brilliant that allow u to have not just a blody strong gun (Jam's GF gun is the strongest gun in rc, i think) but also an excelent movement (WaveSurfing is what 8 from the top-10 bots use for moving). I mean that with GF (and EnemyWaves, of course) by itself you can have both movement & gun very strong. -- Axe
- That transformation to 1D is indeed sweet. Actually I do use that part of GF theory in my gun. Only, I do this projection on the fly while calculating my aim, i.e. I do not store GF bins. Are there other specific properties that make it brilliant? --Vic
- After transforming the data to 1D, it classifies it using discrete intervals (bins/segments) to simplify the search for local/global tendencies. Imo, it's strength is the fact that it takes very complex data and transforms it into something much easier to analyse statistically. -- ABC
Did u tested 1.9.3.4 against DevilFish?? Seems that there is again something strange against it: scoring 62%... -- Axe
Thanks for keeping watch for me. 1.9.3.4 was only a gun segmentation tweak. I think it might wait a bit too long now before firing power 3 at close ranges...
About Vic's question. I know I said differently, but it's not GF targeting that's so brilliant. It's GFs in themselves. Before I did GF targeting I did something like LaserTargeting (though without knowing about laser targeting and I called it EscapeArea targeting...) But then I had to keep track of left and right all the time. Made things messy. With GFs I just don't care about that. I still trick myself into thinking I have to, like with that "fooling Pugilist" remark up there. -- PEZ
- It seems most of you agree that the simple (yeah well, it took a very bright mind to come up with it) concept of GuessFactors is the magic that drives GF guns. This makes me realize that maybe GF targeting has become a too general description of a type of gun. By far most active robocoders use GF guns nowadays, and yet the performances of these guns are very far apart. In fact by this definition my new gun can also be classified a GF gun although it only uses GuessFactors as my MultipleChoice algorithm during aiming. I'm not sure how ABC does his MultipleChoice-ing, but maybe he has a GF gun after all ;-)
- It also seems that most top GF gun authors are very busy improving their Segmentation. Adding/Removing? dimensions, DynamicSegmentation?, SegmentTuning? represent most of the Gun tweaks in the bot update pages of many of the top active robocoders. Good Segmentation must be the key to a top GF gun. So maybe, we should start sub-categorizing GF targeting into different kinds of Segmentation. That way maybe we get more insight in how successful the top guns Segment their data, and why some other guns fail to be successful. --Vic
- I'm not sure. GF is special enough as a tool for StatisticalTarging? (and movement). And I don't think that segmentation is the key factor for the "failing" implementation of guns and movements using it. I'd say that if you have a GF gun collecting waves every tick, segmented on distance, velocity and acceleration and you don't get a TC score of about 90 then you have a bug in there. And you might also have some tuning in the nitty gritty details on transforming to and fro GF space to gun-bearing. Granted, then segmentation starts to matter. But even then I think no guns of today (not counting the guns in Kawigi's TargetingLaboratory) do anything more spectacular than throw in some time-since-velocity-change segmentation to the mix. -- PEZ
- Every tick??? Do all top guns fire and collect waves every tick? I am surprised. Last time I checked Kawigi tested the difference between firing a wave every tick, or only when firing a real bullet. If I remember correctly he concluded that the improvement was negligable because most bots react to you firing bullets. Is that conclusion outdated? If it is, this may dramatically improve my new gun. --Vic
- Interesting. You say the three basic segments are distance (I use BulletTravelTime.. is that equally good?), velocity and acceleration. Distance I understand. Velocity I'm not sure about. Most bots simply accelerate to maxVelocity, so how would that help? I only can imagine velocity==0 when a bot is disabled, or stops moving for any other reason. Acceleration... hmm.. do you mean acceleration combined with deceleration? To see if a bot is reversing? Yes I can see that would be a good segment. What I'm missing here is the enemies heading relative to you. This seems like an essential segment to me, because GuessFactoring? fails when that RelativeHeading at aiming time differs from the RelativeHeading at wave-firing time. Are you guys not using that for a particular reason? --Vic
- I definately think the improved learning speed of collecting data every tick is worth it. Since you can segment so much more. This is one of Jamougha greatest contributions to targeting I think. He dared question the collective mind's pre judgments on how far you can segment a gun. And I don't think active bullet dodgers are in majority in the rumble. Acceleration ... I segment on velocity and last_tick_velocity and let the segmentation figure out the accel / deccel details. Think about what acceleration means when targeting Walls and you might reconsider it. =) -- PEZ
- Is there a specific wiki page where Jamougha questioned and convinced the collective? --Vic
- Other than the RoboRumble rankings sheet you mean? =) Not really, but Jam's bots are OpenSource (RWPCL even). He also is the King of the Hill in the TargetingChallenge. -- PEZ
- I am starting to realize how much the RoboRumble has contributed to the quality of bots. If I had released my current version of Locke before RR became operational, I would have had me a top bot, with neighbours such as Cigaret and Chameleon, both top 3 bots about one year ago. Since then (during the time I took a leave of absence from robocode), these bots have been overtaken by about 30 (!!) better ones. Such a progress in such a relatively short time is truly amazing. RR is really an incredible testing environment. --Vic
- Well, I agree fully that as a driver of bot evolution the RoboRumble is providing the perfect environment. Though the ranking system as such is a bit strange. I think that I can never stop defining a strong bot as a bot that is hard to beat. But in the rumble that's not what counts. In my book both Cigaret and Chameleon are stronger bots than their ranking shows. I now can make bots that can beat them, but I can't do it with any margin. And the strongest (in RoboRumble terms) Pugilists I have created can't actually beat Cigaret. Speaking of minibots. A truly strong bot is Smoke. It's a micro, but it sure can smoke many high ranked bots! -- PEZ
- Is that the reason why you're advocating the PremierLeague system? Anyway, I agree that the RR has its peculiarities. Especially the short matches and the uselessness of saved data. But then again, that makes the challenge of FastLearning? more important which is interesting. But at the end of the day I think the negatives do not outweigh the positive: fast feedback on the progression of your bot and testing against many, many opponents to easily spot your weaknesses. --Vic
- Yes, that's why I like PremierLeague rules. The funny thing is that the two guys who have invested the most time in creating and keeping the RoboRumble running (me and Albert even if Albert has done the huge bulk of the work) both think the ranking system is wierd. Now, when I don't bother much that I don't understand the magic that makes score percentages into ELO rating points, I think I would like a system that weighs the ELO and the PL scores together to create the ranking table. -- PEZ
- Well, I wouldn't mind more PL influence in the ranking right now: in RR Locke is placed about 30th, in PL about 20th :-p --Vic
- Yes, Locke is giving a lot of the top bots a good fight. -- PEZ
- Sorry, but I think I have forgotten to mention wall segmentation as important here. But it is. Since many, many bots alter some aspect of their movement to deal with walls. AdvancingVelocity isn't too important in my experience. -- PEZ
- Yes, I can see that WallSegmentation? is important. Actually I have experimented with separate wall and corner segmentation. This works very well for a lot of weaker bots, and also against Tron. Both Tron's have a very hard time against Locke for this reason. About my RelativeHeading segment: AdvancingVelocity is not what I mean by RelativeHeading though, but anyway, I better provide some proof first by getting a decent ranking in the rumble :-) Thanx for your pointers! --Vic
- Then the only reason "we guys" are not using RelativeHeading might be that we haven't thought about it. =) I have however tried to add a time_since_enemy_turned segment to my gun and immediately was able to hit iiley's bots better. However, it increased learning time and didn't generally pay off to compensate the time_since_deccel segment to replace it. -- PEZ
- I'm using RelativeHeading in my gun, btw. -- ABC
- That must be a convincing reference, PEZ :-). I am not completely surprised, ABC, since you are using projected points for your aiming, like my new gun which btw. is heavily influenced by your Tron gun. --Vic
- There's another good reason for ABC to worry about RelativeHeading in his gun - any bot worth going to that amount of effort to beat in one-on-one will always have about the same relative heading, but in melee, not every bot is really even moving with reference to you, and if they are, they may not be moving perpendicularly to them. Coriantumr does this (it is implemented somewhat like AdvancingVelocity, but the actual velocity doesn't matter, only the sign of the velocity). -- Kawigi
- That's exactly where it comes from :). Actually, I'm currently experimenting with optimising my gun for 1on1, since it still has a lot of melee influenced characteristics. -- ABC
- Come to think of it, that is not where it comes from... :) I only use the RelativeHeading in 1on1 targeting, the "relative to me" type of info doesn't make much sense in melee. -- ABC
- Not if you're going to go and project movement afterwards, but the direction they're moving in relative to you does effect which direction you should shoot. I guess I was ignoring the fundamental difference between your gun and mine :-p -- Kawigi
There are no GFs in my gun, I can assure you ;). My
MultipleChoice-ing is based on positions/angles, I never translate them into GFs. DT's gun is, imho, the only GF-based gun that really "stands out" in the field. It is very hard to fool using wavesurfing, it seems to have the qualities of a GF and a PM gun at the same time. --
ABC
Well, Pugilist seems to have at least as big problem with the Raiko guns as with DT's. -- PEZ
I am also very impressed with Raiko/MX's gun. It seems to learn faster than the other top guns. --Vic
Maybe it's your gun that has a problem with RaikoMX's movement? Are you measuring the enemy's hit rate or overall performance? I don't really know for sure, but, at least for me, Raiko's gun is much easier to fool than DT's (in the long run)... -- ABC
Yeah, my gun has problems with RMX movement for sure. But it's really that I need the wall segmentation in my movement to trick Raiko guns (and Aristocles gun too for that matter). Adding it gives me strength against DT too. Segmentation is tricky when WaveSurfing since whatever way you cut it you need fast learning in order to compete in a 35 round competition like the RoboRumble.
Well, in my experiments with wall segmented wavesurfing, it didn't help much (if anything) against anyone. I believe I have the learning speed problem solved now, so maybe I'll try it one more time... -- ABC
Please tell me how you have dealt with learning speed this time. I certainly have that problem! And, do you have any thoughts about the accel segmentation and pattern matcher guns I babble about below? "Rocket scientist" referred very much to you, if you wondered. =) -- PEZ
This time I dealt with learning speed problem exactly like I have been dealing with it for some time now :), the multiple segmentation levels method I described elsewhere. Together with bin smoothing, I believe it works quite well. The improvements I did to Shadow 3.03 were all related to the small movement details (wall smoothing/bouncing, distance control, etc.) and gun performance, the wavesurfing classes are exactly the same as in Shadow 3.01 and Tron 3.06. -- ABC
I also have found surprisingly many points in the movement details. As much as 40+ points if I sum them up I think. -- PEZ
That is the history of WaveSurfing, i think, lots of details & bugs... Just released SS 2.22 that corrects a bunch of very serious bugs (measuring gf, for example). Not surprising if i have introduced new bugs... -- Axe
Though in my and ABC's case here it's unrelated to WaveSurfing. It's the same movement details regardless of what flattening/dodging strategy you might have. Like now I am trying (with P 1.7.9.2) controlling my distance to be around 500 instead of the way I have done it the latest year or so (always increasing distance as long as the walls allow it). -- PEZ