Hacker News new | ask | show | jobs
by kazimuth 3546 days ago
It's generally custom, although we've had teams use ML strategies to tune their bots in the past. (I'm one of the people who runs this competition).

We impose tight runtime limits on the code your AI can run - generally limiting the number of bytecodes the JVM can execute per turn per robot. This is partly pedagogical; it kinda-sorta simulates embedded programming, like for a real robot. It's also practical; it keeps people from accidentally DOS'ing themselves or our servers with infinitely-looping AI.

On the other hand, 20000 instructions per turn doesn't give you much leeway for, say, matrix multiplication, so most sophisticated ML isn't possible at runtime. You can do simple things, but they have to be tightly written.

1 comments

What does it mean that "supported programming languages are Java and Scala"? Are other JVM languages allowed?
Other JVM languages are technically allowed, but AFAIK they generate way too much scaffolding & reflection-based flow such that you end up burning your entire bytecode computation budget just in calling one or two functions.

So yes, you could probably use Jython or Jruby, but you wouldn't be competitive against the people writing straight Java.

I bet Kawa Scheme performs well in that regard.