Talk:Pattern Matching

From Robowiki
Jump to navigation Jump to search

I have a bot I'm working on that is 239 bytes, (at least with my javac) and it uses SPM to target. However, it only has about half the accuracy of FunkyChicken, which bothers me. What's wrong? By the way, I don't want someone to just do the whole thing for me. If I'm going to learn how to make good nanos, I'll need to learn stuff like this first. Can someone give me a tutorial or something on how a Pattern Matcher works, not just in theory, but in code? I can't use anything out there, because since Pattern Matching is obsolete in larger bots, and in the smaller bots where it isn't, it's so codesizificated (yes, it's a new word) that I can't understand any of it. Hopefully, once I learn how to make a Pattern Matcher myself, I can either edit or totally remake the gun (the first is unfortunately more likely...) so that my bot can target better. If I finally learn this, I think I might work on research in nano guns. It probably won't make any difference; I probably won't discover anything, but it's worth a try. =) --Awesomeness 00:28, 23 January 2010 (UTC)

Is there any (top) bot that still only uses pattern matching? I'm currently doing my first steps with that, but since I'm not a very trained coder, I can't really seem to fix all the bugs. Guess I need inspiration :-) —Preceding unsigned comment added by Kenran (talkcontribs)

Not really among MegaBots. I think the closest is SilverSurfer, which uses a "Vectorial Pattern Matcher". There's a description of it at oldwiki:Musashi. There are PM-like elements in many VCS and DC guns, like using "distance last 8 ticks" or "time since velocity change" as attributes. Those kind of pick up movement patterns. But in general, nobody's really shown PM as a viable alternative to VCS/DC with GuessFactors at the high end. Now, MicroBots and NanoBots are a different story, since PM guns can be very powerful relative to Code Size. Even CunobelinDC, the top MiniBot, uses PM. --Voidious 21:15, 5 December 2009 (UTC)

Well, I think it's a misclassification to call SilverSurfer's gun a "Pattern Matcher" any more than a DC gun . Checking Axe's original description, it looks like a DC/PIF which has a greater than average number of 'vector change in last 1 tick' and 'vector change in last 80 ticks' dimensions, and not all of it's dimensions are based on the vectors either... therefore I think it's safe to say that SilverSurfer's gun is not a "Pattern Matcher" as we currently use the term. About viability of PM guns... they may not be as good as VCS or more general DC guns against the weaker bots, but as these results show, they're still viable against surfers apparently. --Rednaxela 00:16, 6 December 2009 (UTC)

Current top nano 1v1 doesn't use PM nor does the top nano melee. :) --Miked0801 16:26, 6 December 2009 (UTC)

I know... It's amazing that it's possible to fit GF in a Nano. I bet the nanos that are mediocre now would probably be long-time champs, regardless of size division, if they were made in 2003 or so. --Awesomeness 00:32, 23 January 2010 (UTC)
Well, it depends. Not quite as late as 2003 I'd say. For instance "dz.MostlyHarmlessNano 202.1" beats Wolverine 75%. Though I don't see nanos beating TheArtOfWar until you get to fairly non-mediocre nanos like "nat.nano.OcnirpSNG 201.0b" for instance, and TheArtOfWar was last updated in February, 2002. --Rednaxela 01:01, 23 January 2010 (UTC)

Who invented the first pattern matcher? Was it Kawigi with FunkyChicken, or was that just the first Nano one? --Awesomeness 12:46, 22 January 2010 (UTC)

Apparently "Cyclops" was the first nano pattern matcher according to oldwiki:NanoLauLectrik (which is also a nano PM predating FunkyChicken, and was apparently the first real strong nano PM). I know "MogBot" is also a relatively old PM bot, but information on it seems to indicate that it wasn't the first either. I'm not certain what the oldest PM bot is really... but I know its far older than FunkyChicken. --Rednaxela 13:45, 22 January 2010 (UTC)

Tough to say, as I think several people came up with pattern matching types of guns independently. I don't think MogBot was the first, but it was a very important early PM bot. MogBot was in the Robocode Rumble, which was '01 or '02. ABC is the only still-active Robocoder that was around back then, I think (and David came shortly after). There's some good info at oldwiki:History and oldwiki:History/Concepts. --Voidious 15:04, 22 January 2010 (UTC)

(edit conflict) MogBot is the first well-explained Patter Matching I believe. But the first one isn't really documented in Robocode. (Well, not in oldwiki:History anyway. I have read those pages five times already) --Nat Pavasant 15:10, 22 January 2010 (UTC)

On the Nanos, there was one test bot released with PM before NanoLauLektrick. Kakuru and Splinter also came out at roughly the same time. Funky chicken shrank the gun and added better movement again. For ever, it was the best nano 1v1 by far and is still a very good bot. Moebius had a gun very similiar to FunkyChicken for a while, but had a hard time beating him in 1v1. Then NeophytePattern came out and stomped and I mean Stomped everyone. The last Nano PM was adopted into Moebius from Neophyte and bug fixed and slightly improved to get to where it is now. I can go back and look at my other older competition bots for confirmation if needed. --Miked0801 16:22, 22 January 2010 (UTC)

The first robot I remember claiming to have a pattern matching gun I think was Wolverine. It quickly became the best 1on1 bot around mostly because of its stop-and-go rammer-like movement. It was also one of the first enemy bullet detectors, iirc. At that time the "advanced" guns were using linear/circular targeting. --ABC 20:34, 22 January 2010 (UTC)


Thread titleRepliesLast modified
"Single tick"102:38, 7 June 2012

"Single tick"

It occurred to me today that "Single Tick" (as in oldwiki:PatternMatching/SingleTick) is not really a form of Pattern Matching, but a form of firing angle projection. The Pattern Matching part is exactly the same. The difference is that instead of pulling a series of movements (PIF), a GuessFactor, or a Displacement Vector from your log, your "aiming" algorithm projects the enemy's movement for one tick, then keeps iterating over this aiming/projection. You could create a "Single Tick" version of any targeting algorithm...

Voidious22:22, 6 June 2012

Indeed, you could. I've thought about it before but never felt it was worth the high computational cost in most cases. It would be interesting to try though...

In the original wiki post it was referred to as

"Single Tick" PatternMatching

, with "Single Tick" being used in the sense of an adjective, so I wouldn't be surprised if Simonton had considered applying it to other algorithms too.

Rednaxela02:38, 7 June 2012