ICFP 2005 Contest: Bogus Pods


The Bug

While running of the contest, we found a few entries were being disqualified for sending plans that planned for irrelevant bots, in particular, plans for clean cops during the dirty cop planning or plans for the robber during clean cop planning. A quick look at the specification showed that the implementation of the server and the specification disagreed! The specification allowed such messages, but the server did not.

So we changed the server to allow such plans, but to filter out irrelevant bots when sending the messages back to the other players. The rationale was that other bots might have assumed that irrelevant bots do not appear in the planning messages and if such bots were to show up, it might violate some assumption in their implementations.

Unfortunately, the implementation of the filtering had a bug that was only discovered after the contest was over (Thanks to Anton Orlov for pointing it out!). In addition to filtering out irrelevant cop bodies, it also filtered out any cop body that wasn't also a cop brain. That is, cop bodies that were controlled by other cop bodies were always filtered out, even if they were relevant to the message.

The Cleanup

Fixing the bug in the server itself was simple, once we knew what the bug was. Download and try out the new BDK and/or read its source code, if you're interested.

But, of course, the server dropping the names of the controlled cops from the messages might have had an effect on the outcome of the pods. So, we decided to re-run every affected pod and see if the results changed. The bottom line: the only change was that the 8th and 9th place teams in the twist playoffs switched position.

Regular Season Changes
There were only four teams that could possibly have been affected by the change to the server (i.e., only four teams did not make the playoffs and had taken over other cops). In each case, re-running the regular season in the fixed server produced the same results as it had in the broken server. The teams are:
Team Pods
Playoff Changes
Below is the list of the teams, as run in the original, buggy server. The only ordering difference from the fixed playoff results is that the 8th and 9th place teams switched places.
Teams in the playoffs, bogus version
Place Team Average pod rank
2nd Dylan Hackers 2.53
4th Team Smartass 2.8
5th Combat-Tanteidan (2) 2.97
6th The Caml Riders 3.19
8th Contest Crackers (2) 3.62
10th Disco Turtle 3.71
11th Drunk Sed Team (2) 4.09
13th uguu.org (2) 5.92
These are the pods that were re-run, with links to the fixed up versions
tp-168 bogus re-run tp-308 bogus re-run
tp-261 bogus re-run tp-316 bogus re-run
tp-263 bogus re-run tp-317 bogus re-run
tp-271 bogus re-run tp-334 bogus re-run
tp-277 bogus re-run tp-336 bogus re-run
tp-292 bogus re-run tp-337 bogus re-run
tp-294 bogus re-run tp-338 bogus re-run
tp-301 bogus re-run tp-343 bogus re-run

AltStyle によって変換されたページ (->オリジナル) /