Hacker News new | ask | show | jobs
by sclangdon 2795 days ago
I get that the idea is to have an ever-improving champion, and I like the idea, but it's not going to work out that way in practice. The best way to defeat the current champion will be to exploit it in some way, which will usually lead to irregular, but very specific, behaviour of the challenger.

Then, when challenger becomes the champion it's behaviour will be useless and the next challenger will either beat it easily, or will do the same and the cycle will repeat.

To protect against this, the challenger should have to beat all previous champions, not just the current champion.

6 comments

In order words, Bulbasaur > Squirtle > Charmander > Bulbasaur
In other words, Scissors > Paper > Rock > Scissors
I prefer my version :-)
I think you're probably right--but it's worth noting that it depends on the "space of tank behaviors". It's an open question whether there exists a tank that "strongly dominates" other tank strategies.

One way to deal with this could be to have a system similar to ELO in chess, so each tank gets a ranking. This is compromise between having to defeat "champion level tanks", and having to defeat champion level tanks more often than not!

I’ve never actually seen such a competition where all previous champions must be defeated. Sounds like a much more robust system- any examples of such?
Algorithm selection in computer science. Current champion in sorting seems to be Timsort[1].

[1] https://en.wikipedia.org/wiki/Timsort

There was a similar poker competition but it died out pretty quick: https://github.com/mdp/JsPoker
World records in sporting events work this way. Perhaps it is obvious, but I consider it similar. The one diffrenece is of course that they don't compete directly as in this case.
In my limited experience with other programming games, it is rare for one AI to defeat another AI 100% of the time. So for a submitter, the claim their own red tank is stronger than the blue tank should be qualified with a 3 out of 4 wins or similar criteria.
You could solve that problem pretty easily by requiring the next champion to have to have defeated each of the previous winners
As suggested in the post you replied to.
Implement the previous challengers as regression tests!