Robo Home | Changes | Preferences | AllPages

As much of the consensus as I think we have agreed on is now moved to the AntiPatternMatcherChallenge page, including the AntiPatternMatcherChallenge/APMCIndex page. -- PEZ

Unfortunately the rules have not yet been fully agreed on. Since iiley started this i'm reluctant to make the final decision but i can summarize the last proposals:


I agree on Vic,but he/she did not write the battlefield size,i added it.Not the final decision either,waiting others' comment/opinion. --iiley

I hope you don't mind me reshufling the info on this page a bit to make the rules of engagement a bit more clear --Loki
I am thinking how a about a RandomMovementChallenge,every competitive bots just can fire 0.5 power bullet to against a PatternMatcherBot (it can be bot with the best ranking in PatternMatcherChallenge). This can see which bot's movement is radomer. -- iiley

That would be way cool. But how about PatternMatcherBot can fire but not the challenger? Then it could fire power 1->3 bullets and it would be a better measure on movement since it's not all that productive to tune movement against 0.5 bullets. -- PEZ

Great idea! If your bot can't fire that will mean you cannot win. That would not matter for an Index but it might take the fun a little bit out of the challenge. After all that hard work is rewarding to win eventually :-) Maybe your bot can fire, but only 0.1 -> 1.0 bullets (it will always hit because PatternMatcherBot is stationary). We'd have to figure out a good balance here. How about that? Mind you, i'd be happy with only an Index. This is just to cover all angles. -- Vic

Oh,that is right,PatternMatcherBot's fire power 1->3 would be better.and Vic said is very good,balance is important.So i think PatternMatcherBot can be the best bot (eg. EnderPMC 1.3 ) in RandomMovementChallenge,but it must fire power 1->3(a certain power between 1->3) ,it cannot move,challenger can only fire a very small power eg. 0.1. -- iiley

As usual i reacted too quickly ... if your bot doesn't fire you actually CAN win. PatternMatcherBot can bleed to death (disabled) if we allow it to. Maybe we should test first with a 'reference' random movement robot and figure out both side's bullet powers such that RandomMovementReferenceBot? just cannot win from PatternMatcherBot. How good should the reference bot be then? If we take the best we have now the challenge would be very challenging ;-) -- Vic

I think you would need to get no hits at all to win. Bullet damage counts high. I'd be happy with just an index. After all I'm competing with you. No need for a reference bot I think either, but if we should have one it must surely be DT. But with just an index we will get reference bots fast as people submit their contributions. I know I suggested a too simplistic index in the PMC, but here I would again assume bullet damage would be a good measure. I mean if the challanger doesn't fire of course. -- PEZ

If the challenger gets hit by a power 3 bullet it loses 16 points and PatternMatcherBot gains 9 points. That's a total of 25 points relative damage. After this, in order to keep up, the challenger must avoid 25 / 3 = 8.33 bullets. This means a hit percentage of 12% would result in a 50/50 result (14.3% for bulletpower = 1). Less will make challenger win. I agree that's a tough challenge (for me anyway ;-) Let's go PEZ's way ... This is also a good test to see if it's that hard to fool a PM gun as some of you think it is ... i still have my doubts :-) Anyway, this looks like just the thing for me at this moment because earlier today i decided to concentrate more on movement. -- Vic

This sounds like a more challenging PassiveKillChallenge almost (unless we decide to shoot low-power bullets). -- Kawigi

Who will be the PatternMatcherBot ? It is a problem,if it is certain,we can start testing. I know the bots in PatternMatcherChallenge have very good PM guns,So i suggest one of them. -- iiley

I'd be glad to offer the services of EnderPMC to this challenge :-) -- Vic

EnderPMC is the 1# in PatternMatcherChallenge,but it just fire 0.5 power bullts,so ... waiting the 3 power bullts EnderPMC.;] -- iiley

PatternMatcherBot has been uploaded. I hope everyone agrees about the choice for EnderPMC. What are the ideas on battlefield size? In this case i think 1000x1000 would be too easy. I vote for 800x600. And how much rounds per match? As i posted on the PatternMatcherChallenge i think 100 round matches are too short. There is too much variation in score if you run more matches. How about 1000? -- Vic

Oops, i forgot to use the PM gun exclusively ... if you were on of the first 2 downloaders then please download again :-) -- Vic

Ha, one of those was me... I noticed that the "Passive" version of FloodMicro beat it more easily than it did a version of TeancumPMC that fires power-3 bullets. So is our goal out-survival or out-scoring? I suppose both could be goals for some people :-p And are we firing or not? -- Kawigi

PatternMatcherBot keeps getting null-pointer exceptions at the end of every round. This isn't critical in some respect, as it happens when he has 0 energy and was probably going to die, anyways, but it could make a difference when he hits me with his last shot, and he has some energy, but he doesn't use it because he crashed. And he doesn't fire quickly (but I suppose he can take his time against a robot that isn't firing at him). -- Kawigi

Hey that's strange! I have also noticed that it doesn't 'revive' but i get no exceptions. But as you say, it's not critical. By 'he doesn't fire quickly' do you mean the time it takes for his first shot? or between each shot? I think we should fire 0.1 because if we don't fire the score is always the same (except when you win). If we fire low power bullets then the duration of the battle (which should increase when your movement is better) will translate into a bullet damage index like PEZ proposed. -- Vic

This is what I get:

lv.PatternMatcherBot 1.0: Exception: java.lang.NullPointerException
    at java.util.Hashtable.put(Hashtable.java:394)
    at lv.aim.AimOfficer.fire(AimOfficer.java:246)
    at lv.Arms.fire(Arms.java:33)
    at lv.Arms.assault(Arms.java:121)
    at lv.Operations.action(Operations.java:43)
    at lv.Ender.actionAll(Ender.java:53)
    at lv.Ender.run(Ender.java:98)
    at robocode.peer.RobotPeer.run(RobotPeer.java:616)
    at java.lang.Thread.run(Thread.java:536)

It still may be worth fixing, just because of those times it crashes and then hits me with its last bullet, and then it's sitting there with 9 energy and I win because I happened to have 20 or something. -- Kawigi

Ok, i'll look into it tomorrow. Btw, now i'm SURE Ender's movement is bad ... EnderRMC gets thrashed. -- Vic

And it is that it's pausing between shots a lot of times, I assume when it doesn't find a match at all? But that still can be critical - the more energy you don't waste by firing and (possibly) missing me, the more damage I have time to do to you. FloodRMC? right now can beat PatternMatcherBot a good amount of the time, but is still behind in score (and bullet damage) by a good amount. My guess is that a robot that can get even bullet damage will really be winning pretty much every match. -- Kawigi

Ah...I know what it is ... PatternMatcherBot doesn't fire when it predicts that you will be outside of the battlefield (because I've commented out some code for EnderPMC) ... tomorrow i'll post a new version with these fixes ... i also noticed that some minor tweaks that worked good for EnderPMC now cause performance problems (i get some skipped turns) ... i'll look into that as well ... -- Vic

I think the challenger should not be able to fire at all. 12% hit ratio is not all that impossible to pull off. Open up TeamRobot.java, override setFire(.) and fire(.) and leave them blank, and then try SandboxDT against the PatternMatcherBot. I bet it can take quite a few rounds on it... -- Vuen

Try it out, though - it takes something to out-survive (the 12% mark or whatever), and you can even out-score with some effort. But it really will take something to have higher bullet-damage when you only fire .1 power bullets and he fires power 3. -- Kawigi

I didn't mean to include 0.1 power firing by the challenger to make it easier to win. Just to have a useful Index after the match. How else would you rate performance? -- Vic

I vote for 800x600 battlefield size too~ --iiley

Performance could be rated by relative score? (Meaning the objective would be to dodge so well that your win bonus would be more than his bullet damage bonus could make up for, kind of like the PassiveKillChallenge, except that Walls-like movement won't cut it. But by a more PMCIndex-style index, I'm still only around 30 or 35%. A stronger test may be using Aspid's gun for this contest... -- Kawigi

If relative score were the Index then i would currently have 0% :-) I just tested with a modified version of DrLoco's NekoNinja and it would score 71.73%. So you are right that sounds like a reasonable index. It also proves how bad my movement is :-) So back to not firing then....

Also, i wouldn't mind if another gun would be installed in PatternMatcherBot mainly because Ender's gun is still somewhat buggy. I'll try to upload a bugfree version today but if i fail maybe it is better if PEZ or Rozu provides the gun (their PMC bots have quite high Indices as well). Of course also Albert and Crippa have good guns.

Concerning strength, i'm sure that at this moment for pure PatternMatching Ender's gun is as good as it gets. The thing is, pure PatternMatching may not be the strongest Targeting method against advanced movement as i suggested before on the LeachPMC page. Albert doesn't add a lowpass filter to his PM gun for nothing and ABC's Tron picks the optimal angle out of up to 20 matches for good reasons as well. I assume iiley intends to check non-repetitiveness in our movements with this challenge (maybe random is not the best choice of words) and for that a pure PatternMatching gun (without statistical tweaks) is the best check. -- Vic

If Paul Evans would lend us a stationary version of SandboxDT, we could have a curve-flattening party :-) (then it would be really 'DT', because it would have nothing to do with hitting him. Speaking of which, I wonder how SandboxRMC? would do... Also, were you saying that NekoNinja's score is 71.73%, or his ratio of bullet damages? -- Kawigi

Any votes for 1000 round matches i.s.o 100?

 -- Vic

A 1000 round match with a bot only firing 0.1 would be REALLY long. Better 100 -- Albert

I vote for 500 round,because i vote 800*600 battlefield size,in this battlefield will be fast than 1000*1000,but 100 round for random movement is not enough. --iiley

I'm up for this challenge (I didn't have a PM gun so I could not enter the last challenge :) ) - does someone want to succinctly define the rules for both bots - I will then submit a version of both bots for the challenge if required. -- Paul Evans

I think it's time to make a CurveFlatteningChallenge page :-) In that challenge a stationary SandboxDT would be the ideal reference bot as Kawigi suggested. I guess the same rules could apply as they do for this challenge.

Well not firing against PatternMatcherBot on a 800x600 battlefield over 500 rounds, the best index i have managed is 32.18%. However this was just me driving straight at it continually and pickign up 25000 ram points. I think this challenge is going to be a hard one to judge... --Brainfade

I can out-survive PatternMatcherBot enough while firing 0.1 power bullets to actually out-score it :-) Not firing, I win about half the matches I think. Either way is fine. I find that 100 rounds yields almost the same score as 1000 rounds, so I don't care what the standard is (I'll probably test under 100 rounds anyways). As for curve flattening... I was goofing around yesterday and made an almost-nano-bot (290 or so bytes) that survives against DT better than FloodMini. I always think it's funny when I do stuff like that... For the CurveFlatteningChallenge, will the index save data? Just other things to think about. -- Kawigi

I think it's time to post some results... -- Rozu

AshRMC fires... I assume that's unintentional.. or are we firing 0.1 bullets? -- Kuuran

I think iiley made AshRMC before the proposal to NOT fire was done .. --Vic

Now,AshRMC 0.7 will not fire. -- iiley

Results :

my first result:

1st: lv.PatternMatcherBot 1.2	39840	5400	1080	31200	2160	0	0	108	392	0
2nd: rz.GlowBlowAPMRMC		23520	19600	3920	0	0	0	0	392	108	0
index: 59.04
let's see how good my APM-movement is (btw, I don't think that someone can beat PatternMatcherBot with this rules) -- Rozu

Oh,Terrible result Rozu. -- iiley

AshRMC's first result:

1st: lv.PatternMatcherBot 1.2	54076	10350	2070	37519	4136	0	0	207	293	0 
2nd: cx.micro.AshRMC 0.7	17580	14650	2930	0	0	0	0	293	207	0 

not very bad i think,but very far from GlowBlowAPMRMC -- iiley


Index 37.78%. Maybe this challenge should be named AntiPatternMatcherChallenge? I might try making a FrankieAPM? anyway =) Is it cheating to collect ram damage points like Frankie did here? It's because I forgot to check for PatternMatcherBot in that part of the code. -- PEZ

I think AntiPatternMatcherChallenge is no help for our movement improving,because the PatternMatcherBot is certain,you will be easy to make a Anti-PatternMatcherBot to get high index,but this is not help for us.And i hope the challenger will not be AntiPatternMatchMovement?,all should be random movement. Just my opinion. -- iiley

Isn't AntiPatternMatching just a clever way to make you movement random? I really thought you meant this challenge to test our movements (regardless what kind of algorithm you use) against a PatternMatching gun. Some people have expressed that SandboxFlattener movement may have a weakness against PM guns and maybe vice versa it's the same way. Therefore i propose that we run this challenge at the same time as the CurveFlatteningChallenge and submit our movements in both (the same version, not tuned per challenge). Then we can see if our movement is balanced against both types of guns and we can really improve ourselves ... which is the goal ultimately isn't it? -- Vic

I am not meaning this about between SandboxFlattener and AntiPatternMatching,I mean different PatternMatchingGun?,If you try to use Cigaret Gun and PatternMatcherBot Gun to against GlowBlowAPMRMC you will get very different result(I think the reason is his APM System's parameters,if it choose deltaheading and deltavelocity it will be good to against PatternMatcherBot,but maybe not same good against Cigaret;inversely if it choose lateral velocity and distance to enemy and distance to battlefield center,it will be good to againt Cigaret).In my opinion AntiPatternMatching just can Anti one certain PatternMatchingGun?(unless it has more than one strategies...),It get high index from PatternMatcherBot does not mean it can get high index from other PatternMatchingGun? bot.From this,i thin Vic you can make a Anti-EnderGun?-Bot to get a very high index as you know how PatternMatcherBot aim.If did this,every one try make Anti-EnderGun?-Bot to get higher index,but does that can give help to us to improve our movement? -- iiley

Yes, you are absolutely correct. Some movements will inherently be better equipped to counter Ender's gun than others. But what would you do about that? I'd say, if someone wants to go for the highest possible Index, let them do it. That's part of the fun. You could also choose not to go for the highest Index but for improving your movement until the point you are satisfied. My proposal still stands, but with a change: Let's run this challenge and the CurveFlatteningChallenge in parallel. Those who want to go for high Indices in either challenge..go for it :-) For those who want to improve their movement..submit your movement in both and tune until you get the highest combined index. As you pointed out iiley the result against, for example, Cigaret's gun may be very different. So, maybe later on you could start the AntiCigaretGun? challenge, and i could tune my movement for that one as well ;-) -- Vic

Agreed, but then better rename this challenge to AntiPatternMatcherChallenge and let RandomMovementChallenge be about getting the highest index in this challenge and CurveFlatteningChallenge combined. Of course you'll might need to weight the indexes... -- PEZ

I support the idea of changing the name of this challenge to AntiPatternMatcherChallenge (let's not argue about types of PM guns - AntiDeltaHeadingDeltaVelocityPatternMatcherChallenge? would not be pretty :-). But i'd rather call the combined challenge simply MovementChallenge, since it is supposed to be type-neutral. Since you started this iiley, what do you think? Do you still think one specific PM gun is a good test for RandomMovement? I assume that's why you called it RandomMovementChallenge in the first place. -- Vic

Yes,combine CurveFlatteningChallenge is a good idea,and it's true that we cannot make this challenge to against very kinds PM guns.I think of RandomMovementChallenge while i was testing my new Melee Bot,its movement did not good in melee,but when i want to have fun throw it in a 1v1,i saw it did very good againt PM guns bot,it beat Cigaret with a Nimrod gun.Because its movement is very random.And the same time,you are working on PatternMatcherChallenge so i think of this.But sorry that i did not think clearly when i start this.However i hope we can have fun on this. Finally,I agree to Vic and PEZ,a MovementChallege? with two index from PatternMatcherBot and SandboxDT may be great! -- iiley

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited June 23, 2003 15:13 EST by PEZ (diff)