ICFP Programming Contest 2003
Results

Finally, the results are here.

Highlights

  • ...the first 100 email addresses submitted for contest information (later we received over 650). Four people did not receive information because when they entered their email addresses, they could not spell "hotmail" correctly!
  • ...the first submission, received after about 18 hours, which when run on our simulator did not at first appear to move the car! Congratulations to TeamEngineRoom, whose lightning entry was almost 100 times slower than the final winner! Deliciously, this entry was produced using Haskell, SML, C, Java, and Perl, along with an Excel spreadsheet and "spline-o-matic"... one of history's great failures, truly.
  • ...the appropriately named team Drunk Sed, whose fully automated optimiser amazed us by actually reaching the finish line in most cases, despite the most bizarre sense of direction we have ever seen! See the team write-up for wonderful images.

Lightning Division

Lighning entries were submitted within 24 hours. There were 19 entries, of which 11 solved all the tracks. Languages and systems used were C (7 entries), C++ (4), Java (3), SDL (3), OCaml (3), Python (2), Common Lisp (2), SML (2), Delphi, Scheme, Haskell, Paragui, Perl, and Pygame. (Some teams used a combination of languages, of course!).

The winners were MiMtim from Poland, with a track optimiser using simulated annealing and incremental track approximation. Congratulations to MiMtim! And the judges proclaim...

OCaml is very suitable for rapid prototyping.

Main Contest

We received a total of 99 entries, of which 70 solved all the tracks. A wide variety of languages and tools were used, of which the most common were C (21 entries), OCaml (19), C++ (18), Java (16), Perl (7), Python, Lisp and Haskell (5 each), C# (3), plus many used only once or twice. A strong imperative showing, with OCaml being by far the most common functional language, actually surpassing C++ in the number of entries.

Judges' Prize

We awarded the Judges' Prize to a team who wrote a "visualiser" in 1000 lines of C++, used to drive the tracks with partial automation, followed by an optimiser in 2000 lines of Dylan to improve recorded traces. Although this approach didn't lead to a spectacularly good total score, it did perform exceptionally well on some of the tracks. The team won three tracks outright, coming second on a fourth, a performance which no other team except the outright winner comes close to. Had we chosen different tracks, this team might very well have won. therefore, the Judges' proclaim...

Team DylanDownUnder are a group of extremely cool hackers!

Putting Scores in Perspective

Just to put the winners' scores in perspective, here are a few total scores from various stages of the contest:

Slowest lightning entry7111478
Slowest main entry271160
DrunkSed149709
(on 6 tracks)
MiMtim (lightning winner)91094
DylanDownUnder79682
Fourth position: Team 4060 from Poland, using C++78914
Third position: SPbteam from Russia, using OCaml78727

Second Prize: RedTeam

Our second prizewinners scored 78487, using a discrete optimiser which improved candidate traces by all ten move sequences, then culled, repeatedly, finally rerunning the whole process on a pruned map. Twenty four hours after the contest ended, they published new solutions beating every submitted solution on every track -- truly worthy runners up. The judges proclaim...

C++ is a fine programming tool for many applications.

First Prize: Andrew Hudson

Our first prizewinner scored a speedy 77285, taking Gothenburg city centre, and even Phil Wadler's hair at breathtaking speeds. Additionally, he won four tracks outright, coming in second place on three more -- a uniquely strong performance. He achieved this via a breadth-first search over a search space cleverly reduced by, among other things, ignoring the direction in which the car is pointing! No doubt his 16 dual processor 1.8GHz machines also helped. Amazingly, his solution is only 346 lines of code, much shorter than many other entries. And so, The Judges Proclaim...

Click here for our proclamation!


Home | News | Task | Dates | Rules | FAQ ICFP Contest Team