Robo Home | Changes | Preferences | AllPages

About the Canuck

The Dark Canuck is Jerome Lavigne, a mid-thirties consulting engineer living in Vancouver BC (Canada). I'm not a hardcore programmer but I do specialize in manufacturing automation and control systems, which rely heavily on software in this modern world we live in. I'm fascinated by robots, whether real or virtual.

Why Robocode?

I take the occasional grad course to go beyond the very conservative world of industrial automation. In 2006 I took a machine learning course where we applied neural networks and reinforcement learning to Robocode. It was a blast and I was very much hooked during those four months. I always meant to try out the rumble, so a year later I dusted off my java code and released Leon into the melee rumble.

I know statistical methods seem to rule around here, but I'm interested in in techniques that allow a robot to adapt to an environment without relying on highly-tweaked segmentation. I have another bot in the works which will expand on the reinforcement learning method used by Leon.



Heya, welcome to the RoboWiki! Care to tell us a bit about yourself and/or your bots? Nice handle, by the way. I'm originally from Buffalo - that almost makes us neighbors, eh? =) Feel free to ask questions, I think it's generally a pretty open and helpful community. Cheers, -- Voidious

Thanks for the welcome. I'll fill in this page with a bit more about me and create a page for Leon shortly. I do have a burning question though: I added Leon to the melee rumble yesterday and he appears to be doing very poorly. Almost as if he's throwing an immediate exception or being disabled by the robocode engine. I've done a lot of testing in my local client (using the packaged jar) and can't reproduce the problem. Anyone know what's going on or how I can debug a rumble-specific problem? -- Darkcanuck

Just wondering, is your bot compiled 1.5 compatible? That might be the problem. -- Skilgannon

I had problems running RoboRumble (probably from incompatible bots) on my Mac under Java 1.5 so I actually run it using the SoyLatte? BSD port of Java 1.6. But everything's compiled with the default 1.5 javac. Hmmm, I'm just testing a battle under using 1.5 and the skipped turn count is pretty bad - maybe the Rumble client is more sensitive to turn length? -- Darkcanuck

Yeah, that could be it. If your bot goes 5 seconds without calling execute(); it gets disabled. See if you can optimize any of your functions, particularly things that are in nested loops. As another trick, Math.sqrt(x) is faster than Math.pow(x,0.5), and x*x is MUCH faster than Math.pow(x,2). -- Skilgannon

I will try running your bot in a melee battle when I get home and I'll let you know if I see any problems. I'm also on a Mac, using the default Java 1.5. I see that GrubbmGait is currently running his melee rumble client (we really should more prominently link this [Who's Uploading Now] page), so maybe he'll see this and be able to test your bot on his system, too, as it seems likely those results are coming from him. -- Voidious

For what it's worth, I am also getting some minor skipped turn problems, dwarfed by a missed scan problem (turn passes without new info). I get about 2 of the former and a dozen or more of the latter every round, on average. I've recently done a major rework of my bot though, so I am inclined to suspect my code. I am using Java 6, compiling with 1.5 compliance, and using Robocode 1.5.1. I noticed a pretty precise value for the CPU constant in the config file. Is there a way to override that so nothing times out (for testing purposes)? -- Martin

Did I mention that I'm happy to see Leon stabilize in 36th place? Just what I was hoping for, a top-40 result. -- Darkcanuck

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited June 9, 2008 16:37 EST by Darkcanuck (diff)