Winner Ave (More tricks)

2003-04-01 00:00:00 UTC

2003-04-02 00:00:00 UTC

2003-04-03 00:00:00 UTC

2003-04-08 00:00:00 UTC

# Trucking: Post-Contest Analysis

By Matthew Simoneau and the MATLAB Contest Team

Over the course of eight days, 147 contestants submitted 1661 entries. With so much activity, it is hard to follow the action. This report will pick out some interesting statistics and draw some pictures that show how the contest progressed.

## Submissions over time

It's impressive to look at the sheer volume of entries. This area plot shows how the total number of entries grew as the contest progressed. The green area represents the entries that passed the test suite, and the red area shows those that failed. Overall 1363 of 1661 entries passed the test suite, for an impressive pass rate of 82%, the highest pass rate so far for a MATLAB contest.

An entry's score is a combination of how well it solves the problem (raw score) and how long it takes to run (time). In this contest and the last, the overall score was a linear combination of the raw score and the exponential of the time. Even though entries may take up to three minutes to run, this exponential time penalty explodes around two minutes. An entry that exceeds this barrier will pass, but won't be competitive. This makes it impossible to play the edge of the timeout, that is, increase the number of iterations an algorithm takes until it just barely fits in the allotted time. In earlier contests, this strategy produced lots of entries that failed due to timeout and slowed down the queue.

## Activity per hour

The previous area plot shows a lot of "lumpiness". An increasing slope shows an increase in activity. A histogram shows this more directly. Each bar represents an hour's worth of entries. The vertical lines show the overall contest deadline, the Early Bird and Midnight Madness mid-contest deadlines, and when Yi Cao won the prize for breaking the 1800 barrier. Each of these show an increase in activity just before and a rapid drop off after. What's also striking is the inactivity between Midnight Madness and just before the final deadline. Are more holding back until the very end to prevent their code from being cannibalized? Are more people tweaking the leader at the very end in hopes that their random tweak will put them on the top when the deadline hits? Also note the half-dozen entries that came in after the final deadline and were disqualified.

## Most active participants

This bar plot shows the number of entries submitted by each author. You can find all the contest winners, Ave, PU, Yi Cao, and Christian Ylämäki, on the top half of this list.

Looking at the activity of each contest winner shows that they were all active over the course of the whole contest. Only PU, who had already won the Early Bird prize, gave himself the entire weekend off.

## Score

This is the most useful diagram for visualizing the contest. It shows the dramatic improvements that occurred over time. Each passing entry is a dot, with its submission time on the x-axis and its score on the y-axis. Since a lower score is better, the dots push down further as time goes on. All entries that took the lead are colored red and the red lines marks the best score at any time. The sample entry is the leftmost red dot and Ave's winning entry is the last red dot in the lower right.

Some of the leading entries are circled and labeled with the author's name. They show who was making the biggest improvements in score (represented in this plot as a vertical drop in the red line) at any point in the contest.

The improvement in score happens over a huge dynamic range. Early in the contest, it is easy to make big improvements in the score. As the algorithms get better, improvements become increasingly difficult. To show this, we normalize the scores so the best (smallest) score is 1 and the worst score is some power of 10 (in this case 10^2). Then we plot them on a logarithmic scale. This exaggerates the improvements at the end of the contest. By increasing the number of decades we spread the scores over, we increasingly exaggerate the smaller improvements made at the end of the contest.

Here's a close-up of the leaders during the final twenty-four hours of the contest.

## Percent improvement

Here is a plot of the percent improvement generated by each new leader relative to the previous leader. This lets us see who is responsible for the biggest changes over the contest. The upper frontier of this plot is a sort of hall of fame, and someone whose name appears there more than once managed to make several significant improvements to the score.

## Raw score vs. cpu time

One of the interesting aspects of the contest is that entries needed to minimize two things at once. Getting the best possible answer must be weighed against the time an entry takes to run. As discussed above, the entry's score is a combination of these two factors. Plotting these two against each other yields a very different picture of the contest.

The leader line is shown in red again in this picture. In general, the best score is somewhere along the lower-left frontier of shortest time and lowest raw score. Big improvements tend to move down and to the right, and they are followed by tweaking battles in which the new algorithm claws its way back down the time axis.

In general the solutions got more CPU intensive over time as the result improved, but as the knee in the scoring curve came into play, it made sense to trade off results for speed. The gray contours show lines of constant score.

Zooming into the movement of the leading entry between about 4AM and 10AM EST on April 3rd shows many of the typical patterns of innovation. The first labeled point shows Stijn making a significant algorithmic improvement. He made the previous leader into a subfunction and wrapped it in some new master code. This moves the leader down and to the right, indicating that it is doing more computation and getting a better answer. New code is prime for optimization, so the next big jump, also by Stijn, is directly to the left. He noticed that the lead entry was computing the distance matrix multiple times. By eliminating this redundant calculation, he was able to get the same answer in shorter time. Then we see another big "innovation" jump, this time by nathan. This is the first introduction his "diesel" algorithm. (Both Stijn and nathan's improvements, introduced here, survived in some form until the final entry.) He followed this by an "optimization" jump directly to the left. He noticed a place where the entry was always computing some information that it didn't always need and was able to eliminate it. This pattern of an "innovation" jump down and to the right followed by "optimization" jumps directly to the left, or leaps followed by tweaks, is the most common pattern. Generally, a new algorithm (a leap) has lots of new slack to take up (with tweaks).

The next two jumps, by Stijn and Ave, are the rarest kind of all. They involve improvements in the score AND a decrease in run time. The first one, by Stijn, is the reintroduction of his code that was lost when nathan's entry took the lead. Losing code like this isn't uncommon and the best players are always on the watch for it. In this example, nathan took the leading code, worked with it for a while, and then submitted it and it took first place. In the meantime, however, Stijn had done the same thing. By merging the two improvements, Stijn took first place again.

## Improvements by day

In order to get a feel for the trends in the contest, let's show a day-by-day version of the result vs. CPU time plot. Here we are looking at each of the seven days of the contest. All entries for all days are shown in light blue for context, while the entries for the day in question appear as red dots.

## Entry length

Here we are looking at a plot over time that shows how many characters of code are in each of the leading entries. In regions where you see entries of more or less the same length there are very few differences from one entry to the next. In other places you can see the code getting shorter or longer. The density of the lines also shows how often the lead is changing.

We are also showing here in the lower plot the score vs. submission time for reference. Leaders are shown in red.

## Contributions per day

These plots and statistics show the total contribution of each contestant to each day's improvement in score.

``` Wed, 02-Apr-2003

35.01% Heinrich Acker
18.29% Sean Simmons
16.21% nath o'q
11.23% E. Brian Welch
10.42% Claus Still
3.05% Christian Ylämäki
2.43% Tweaks R Us
3.38% Other

Thu, 03-Apr-2003

30.63% Heinrich Acker
16.00% Sean Simmons
14.18% nath o'q
10.70% E. Brian Welch
9.16% Claus Still
5.84% Stijn Helsen
2.87% Ave
10.62% Other

Fri, 04-Apr-2003

38.44% Stijn Helsen
21.36% Ave
16.33% nathan
6.67% E. Brian Welch
3.42% Ned
2.96% RAU Team
1.78% Andreas Stalidis
9.03% Other

Sat, 05-Apr-2003

15.29% Stijn Helsen
14.48% Ned
12.90% Shengloon
12.53% RAU Team
7.35% Jeff Foster
6.50% Wild Rice
5.74% sragner
25.22% Other

Sun, 06-Apr-2003

33.48% Stijn Helsen
22.60% Hannes Naudé
9.98% Heinrich Acker
9.02% Yi Cao
8.73% Shengloon
4.40% Wild Rice
4.26% Christian Ylämäki
7.53% Other

Mon, 07-Apr-2003

31.05% Stijn Helsen
18.93% Christian Ylämäki
16.42% Hannes Naudé
7.17% Heinrich Acker
6.55% Yi Cao
6.39% PU
5.02% E. Brian Welch
8.47% Other

Tue, 08-Apr-2003

33.97% Stijn Helsen
19.74% Christian Ylämäki
8.73% E. Brian Welch
7.17% Mr. Bond
6.98% Yi Cao
5.93% PU
3.56% Tunists Just Wanna Have Fun
13.92% Other

Wed, 09-Apr-2003

28.10% Stijn Helsen
16.31% Ave
11.20% Yi Cao
9.18% Mr. Bond
7.32% Christian Ylämäki
5.18% E. Brian Welch
4.53% Tunists Just Wanna Have Fun
18.17% Other

```

Notice all big yellow slices. They show that Stijn Helsen made big improvements throughout the contest. Anyone with a slice on these pies made a significant contribution to the evolution of the final entry.

## Clans

Submitting an entry by using the "edit" button on an existing entry marks the new entry as a child of the first. Tracing each entry back from parent to parent identifies its oldest ancestor. All the entries that have the same oldest ancestor are in the same "clan". This plot draws lines between each child and its parent and colors the six largest clans. Entries in the same clan that don't have a line between them are connected by an entry that didn't pass (so it doesn't have a score to plot). Notice how the red clan made an appearance on the first day, showed up two days later far from the lead, and pushed its way down until it took over the lead and dominated the middle of the contest.

## Differences from winner

One difficulty of the clan plot is that it relies on authors to properly credit their submission. A break between clans may be spurious. Also, some entries may be based on more than one parent. Another way to see groups of entries is to look at the percent-difference between each entry and the contest winner. In this scatter plot, the color of the dot represents the percentage of code that is different from the winning entry and the size of the dot is proportional to the number of lines of code it contains. Notice the cluster of lime green entries near beginning of the last day. This is digital's "nightmare" series where he obfuscated the code by replacing variable names like "dist" with "a0000001101". None of the entries in this pack ever took the lead.

## Conclusion

That's the analysis for the Trucking contest. Thanks for participating, whether by entering the contest many times, once, or merely checking out the site every now and again. Be sure to sign up on our notify list so you'll be ready to play the next contest: Send an e-mail to lists@mathworks.com with "subscribe contest-announce" in the body.

Here, for the record, is a chronological list of the contestants who held the number one spot and the amount of time they were in the lead. The lead changed 232 times. The last entry on this list is the winning entry. The entry that held the lead the longest is Mr. Bond's "Not Maxs finest hour", which stayed on the top for over ten hours.

```   1. The MATLAB Contest Team, "Sample Entry" (0.66 hrs)
2. Per Rutquist, "Super Advanced" (0.19 hrs)
3. Stijn Helsen, "test1" (0.15 hrs)
4. Heinrich Acker, "get one" (0.15 hrs)
5. Heinrich Acker, "get one corrected" (1.07 hrs)
6. Sean Simmons, "Greedy1" (0.43 hrs)
7. Claus Still, "MoreGreed1" (0.18 hrs)
8. Heinrich Acker, "MoreGreed1.1" (0.14 hrs)
9. Claus Still, "MoreGreed1.2" (0.71 hrs)
10. Tweaks R Us, "MoreGreed1.2 tweak 1" (0.18 hrs)
11. Stijn Helsen, "MoreGreed1.2 tweak_toomuchfuel" (0.27 hrs)
12. E. Brian Welch, "Distance Squared" (0.50 hrs)
13. Tweaks R Us, "Distance Squared tweak 2" (0.04 hrs)
14. Tweaks R Us, "Distance Squared tweak 3" (0.07 hrs)
15. Tweaks R Us, "Distance Squared tweak 4" (0.10 hrs)
16. Tweaks R Us, "Distance Squared tweak 6" (0.07 hrs)
17. Tweaks R Us, "Distance Squared tweak 7" (0.56 hrs)
18. Heinrich Acker, "Fuel priority" (0.11 hrs)
19. nath o'q, "petrol2" (0.60 hrs)
20. shengloon, "AIX" (0.21 hrs)
21. E. Brian Welch, "AIX + Double Gas" (0.49 hrs)
22. Stijn Helsen, "enumer02_11" (0.23 hrs)
23. Hannes Naudé, "AIX w double gas + fast dist" (0.14 hrs)
24. Yuval Cohen, "Complex tweek" (0.66 hrs)
25. Stijn Helsen, "Complex tweek_00" (0.41 hrs)
26. Feei Chung, "Complex tweek abs" (0.25 hrs)
27. Anders Hedlund, "complex_tweak_02" (0.18 hrs)
28. Heinrich Acker, "complex_tweak_02.1" (0.19 hrs)
29. Yuval Cohen, "Dumpter 1" (0.30 hrs)
30. Yuval Cohen, "Dumpter 3" (1.43 hrs)
31. Christian Ylämäki, "Advanced Stuff 7" (4.24 hrs)
32. Ned, "bumpy 3" (2.10 hrs)
33. Hannes & Johan, "Bumpy snipped" (0.42 hrs)
34. Stijn Helsen, "bumpy3_2" (0.04 hrs)
35. Tweaks R Us, "Bumpy snipped tweak 1" (0.52 hrs)
36. Heinrich Acker, "bumpy3_4" (0.07 hrs)
37. Heinrich Acker, "bumpy3_5" (0.11 hrs)
38. RAU span, "RAUnoster 2" (0.51 hrs)
39. Ave, "Nextsafe" (0.11 hrs)
40. RAU span, "Nextsafe tweak" (0.26 hrs)
41. nathan, "petrol3" (0.68 hrs)
42. Ave, "Nextsafe petrol3" (0.06 hrs)
43. Stijn Helsen, "bumpy3_50" (0.06 hrs)
44. Stijn Helsen, "bumpy3_60" (0.15 hrs)
45. RAU team, "bumpy dual" (0.57 hrs)
46. Stijn Helsen, "bumpy3_70" (2.25 hrs)
47. Claus Still, "bumpy3_opt" (0.70 hrs)
48. nathan, "diesel" (0.16 hrs)
49. nathan, "diesel2" (0.29 hrs)
50. Stijn Helsen, "bumpy3_81" (0.59 hrs)
51. Ave, "Nextsafe bumpy3_81" (0.39 hrs)
52. Andreas Stalidis, "Nextsafe bumpy3_81_b" (0.15 hrs)
53. RAU team, "RAUNoster 3" (0.01 hrs)
54. RAU team, "RAUNoster 4" (2.34 hrs)
55. Claus Still, "RAUNoster_bf" (0.00 hrs)
56. Toto Le Héro, "Noster twicked" (0.20 hrs)
57.  Klaus Quiet, "RAUNoster_89" (3.12 hrs)
58. Stijn Helsen, "optim01" (0.08 hrs)
59. Ave, "Nextnextsafe" (0.89 hrs)
60. Stijn Helsen, "optim03" (3.58 hrs)
61. Heinrich Acker, "optim03.10" (1.11 hrs)
62. E. Brian Welch, "AddFreight5" (4.85 hrs)
63. Ave, "Home sweet home" (0.99 hrs)
64. RAU Team, "AddGasFreight" (0.36 hrs)
65. Heinrich Acker, "AddGasFreight+" (1.14 hrs)
66. Stijn Helsen, "AddGasFreightDualFuel_01" (3.38 hrs)
67. Stijn Helsen, "AddFreight5_7" (0.62 hrs)
68. Ned, "GTI1.01c" (0.20 hrs)
69. Klaus Quiet, "GTI1.01c88" (0.23 hrs)
70. Jeff Foster, "Pinch" (0.41 hrs)
71. Jeff Foster, "Pinch 2" (0.24 hrs)
72. Yi Cao, "BitTry7" (0.42 hrs)
73. Stijn Helsen, "AddFreight5_94" (0.02 hrs)
74. Stijn Helsen, "AddFreight5_96" (1.38 hrs)
75. Yi Cao, "BitTry12" (0.27 hrs)
76. JT, "yets4" (1.74 hrs)
77. JT, "NotSoCheap" (0.00 hrs)
78. sragner, "JIT-diesel2" (0.55 hrs)
79. sragner, "JIT-2" (0.72 hrs)
80. Yi Cao, "BitTry15" (0.33 hrs)
81. Yi Cao, "BitTry18" (0.02 hrs)
82. Yi Cao, "BitTry19" (0.03 hrs)
83. sragner, "JIT++" (0.42 hrs)
84. CICX, "DDD" (0.14 hrs)
85. Claus Still, "SwapRoute" (0.01 hrs)
87. E. Brian Welch, "MadMax2 + Proximity" (0.66 hrs)
88. Heinrich Acker, "MadMax2 + Proximity -meshgrid" (0.93 hrs)
89. Stijn Helsen, "MadMax...01" (8.17 hrs)
90. Wild Rice, "Medium Rare 3" (1.91 hrs)
91. Shengloon, "MIX2" (0.35 hrs)
92. Shengloon, "MIX4" (1.15 hrs)
93. Stijn Helsen, "MIX4_02cor2" (0.12 hrs)
94. Stijn Helsen, "MIX4_03cor" (1.66 hrs)
95. Stijn Helsen, "MX4_03cor_2" (2.28 hrs)
96. nathan, "MX4_03_cor_2_twk" (0.18 hrs)
97. Tweaks R Us, "MX4_03_cor_2_twk Tweak 1" (0.41 hrs)
98. Stijn Helsen, "MX4_04" (0.15 hrs)
99. Stijn Helsen, "turbodiesel_04" (0.10 hrs)
100. Stijn Helsen, "turbodiesel_04_01" (0.19 hrs)
101. Stijn Helsen, "turbodiesel_04_04" (0.11 hrs)
102. Tweaks R Us, "turbodiesel_04_04 Tweak 1" (0.17 hrs)
103. Stijn Helsen, "turbodiesel_04_06" (0.86 hrs)
104. Tweaks R Us, "turbodiesel_04_06 Tweak 2" (1.35 hrs)
105. Stijn Helsen, "turbodiesel_04_06___" (0.09 hrs)
106. Tweaks R Us, "turbodiesel_04_06___ Tweak 1" (0.16 hrs)
107. Heinrich Acker, "turbodiesel_04_06___ Tweak3" (2.89 hrs)
108. Stijn Helsen, "turbodiesel_07" (0.13 hrs)
109. Stijn Helsen, "turbodiesel_07_01" (4.33 hrs)
110. Heinrich Acker, "turbodiesel_07_01.2" (0.11 hrs)
111. Heinrich Acker, "turbodiesel_07_01.3" (0.55 hrs)
112. Mr. Bond, "Not Maxs finest hour" (10.08 hrs)
113. Heinrich Acker, "turbodiesel07_05.6" (0.09 hrs)
114. Heinrich Acker, "turbodiesel07_06" (0.20 hrs)
115. Heinrich Acker, "turbodiesel07lin4" (1.67 hrs)
116. Christian Ylämäki, "Hungover" (1.60 hrs)
117. Tweaks R Us, "Hungover Tweak 3" (0.13 hrs)
118. Hannes Naudé, "GetSomeGas" (0.30 hrs)
119. Stijn Helsen, "turbodiesel10" (0.23 hrs)
120. Stijn Helsen, "turbodiesel10__0" (0.01 hrs)
121. Stijn Helsen, "turbodiesel10__1" (0.01 hrs)
122. Stijn Helsen, "turbodiesel10__2" (3.59 hrs)
123. Tweaks R Us, " turbodiesel10__2 Tweak 1" (0.07 hrs)
124. Tweaks R Us, "turbodiesel10__3 Tweak 2" (0.25 hrs)
125. Tweaks R Us, "turbodiesel10__3 Tweak 5" (0.46 hrs)
126. Hannes Naudé, "Lazy" (0.11 hrs)
127. Tweaks R Us, "Lazy Tweak 2" (1.26 hrs)
128. Yi Cao, "Organizer" (0.29 hrs)
129. Stijn Helsen, "turbodiesel10_02_3" (0.09 hrs)
130. Stijn Helsen, "Organizer_03" (0.70 hrs)
131. Stijn Helsen, "turbodiesel10_02_5" (0.24 hrs)
132. Stijn Helsen, "turbodiesel10_02_6" (1.24 hrs)
133. Heinrich Acker, "turbodiesel10_02_6.3" (0.01 hrs)
134. Heinrich Acker, "turbodiesel10_02_6.4" (6.35 hrs)
135. Stijn Helsen, "turbodiesel10_02_6_11" (0.03 hrs)
136. Stijn Helsen, "turbodiesel10_02_6_12" (0.86 hrs)
137. RAU Team, "Td lazy" (1.26 hrs)
138. Stijn Helsen, "turbodiesel10_07" (0.33 hrs)
139. Gooftroop, "TDI Nitros" (1.32 hrs)
140. Stefan Emet, "TDI 3" (1.25 hrs)
141. Stijn Helsen, "TDI3_02" (0.92 hrs)
142. RAU Team, "TDi tweak" (0.13 hrs)
143. RAU Team, "TDi tweak 2" (7.65 hrs)
144. PU, "C6" (1.14 hrs)
145. Tweaks R Us, "C6 Tweak 3" (0.26 hrs)
146. PU, "C14" (0.14 hrs)
147. E. Brian Welch, "highFreight" (1.38 hrs)
148. Stijn Helsen, "highFreight_01" (0.01 hrs)
149. Stijn Helsen, "highFreight_02" (0.34 hrs)
150. Christian Ylämäki, "highFreight_02_tweak1cy" (0.28 hrs)
151. PU, "HighF+C1" (0.49 hrs)
152. Christian Ylämäki, "HighF+C1_tweak1cy" (1.02 hrs)
153. E. Brian Welch, "HighF+C1_tweak1cy+Median" (0.29 hrs)
154. E. Brian Welch, "HighF+C1_tweak1cy+Median+randfactor" (0.06 hrs)
155. E. Brian Welch, "HighF+C1_tweak1cy+Median+10" (0.23 hrs)
156. E. Brian Welch, "HighF+C1_tweak1cy+Median+randfactor2+10" (1.66 hrs)
157. Tunists Have More Fun, "A Little Flat 1.6" (0.05 hrs)
158. Dr Mike, "Waste of Time 2" (0.23 hrs)
159. PU, "chaos" (0.52 hrs)
160. Mr. Bond, "Right whales" (0.23 hrs)
161. Tunists Just Wanna Have Fun, "A Little Flat 1.6e" (0.52 hrs)
162. Mr. Bond, "avoid taxes on petrol" (0.13 hrs)
163. E. Brian Welch, "EBW_Tweak" (0.07 hrs)
164. E. Brian Welch, "EBW_Tweak4" (0.04 hrs)
165. E. Brian Welch, "EBW_Tweak5" (0.25 hrs)
166. E. Brian Welch, "EBW_Tweak11" (0.58 hrs)
167. Stijn Helsen, "HS_TW03" (0.01 hrs)
168. Stijn Helsen, "HS_TW04" (0.20 hrs)
169. Tunists Just Wanna Have Fun, "A Little Sharp 2" (0.01 hrs)
170. E. Brian Welch, "EBW_Tweak20" (0.45 hrs)
171. E. Brian Welch, "EBW_Tweak25" (0.37 hrs)
172. Pat Cantey, "TweakPreallocate" (0.10 hrs)
173. Tunists Having Fun, "A Little Sharp 2f" (0.30 hrs)
174. Tunists Still Having Fun, "A Little Sharp 2g" (0.24 hrs)
175. Tunists Still Having Fun, "A Little Sharp 2g 2" (0.30 hrs)
176. Tunists Still Having Fun, "A Little Sharp 2g 4" (0.54 hrs)
177. Yi Cao, "A Little Sharp 2g4 with Route Finder" (0.43 hrs)
178. Stijn Helsen, "HS_TW09" (0.25 hrs)
179. Stijn Helsen, "HS_TW10" (0.02 hrs)
180. Stijn Helsen, "HS_TW11" (0.04 hrs)
181. Stijn Helsen, "HS_TW12" (0.35 hrs)
182. Stijn Helsen, "HS_TW14" (0.23 hrs)
183. RAU Team, "TDI Maximus 3" (0.20 hrs)
184. Stijn Helsen, "HS_TW15" (0.03 hrs)
185. Stijn Helsen, "HS_TW15_1" (0.20 hrs)
186. Stijn Helsen, "HS_TW15_3" (0.08 hrs)
187. Stijn Helsen, "HS_TW15_4" (0.18 hrs)
188. Yi Cao, "Thanks" (0.33 hrs)
189. RAU Team, "TDI Maximus 6" (1.38 hrs)
190. Stijn Helsen, "save more gas_cor" (0.23 hrs)
191. Stijn Helsen, "savemoregas_01" (0.03 hrs)
192. RAU Team, "RAUNoster TDI" (0.37 hrs)
193. Mr. Bond, "saving gas is fun" (0.13 hrs)
194. Mr. Bond, "Global warming?" (0.13 hrs)
195. Jack Snoeyink, "gas wars" (1.27 hrs)
196. Stefan Emet, "TDI 7.1" (0.15 hrs)
197. Stijn Helsen, "HSTW_23_2" (0.81 hrs)
198. Who, "try me" (1.69 hrs)
199. Ave, "Now what?" (0.28 hrs)
200. Ave, "Truth is out there" (0.13 hrs)
202. Tunists R Us, "A Little Flat Again 2" (1.07 hrs)
203. Stijn Helsen, "HSTW_42" (0.13 hrs)
204. Stijn Helsen, "HSTW_42_1" (0.11 hrs)
205. Stijn Helsen, "HSTW_42_3" (0.15 hrs)
206. Stijn Helsen, "HSTW_42_4" (0.82 hrs)
207. Ave, "HSTW_42_4.2" (0.38 hrs)
208. Jack Snoeyink, "easy cases first" (0.05 hrs)
209. Jack Snoeyink, "rejigging" (0.03 hrs)
210. Jack Snoeyink, "optimizer" (0.02 hrs)
211. Christian Ylämäki, "Can I Play With Madness" (0.02 hrs)
212. Christian Ylämäki, "Can I Play With Madness2" (0.10 hrs)
213. Christian Ylämäki, "Can I Play With Madness3" (0.08 hrs)
214. christian Ylämäki, "2 minutes to midnight 2" (8.92 hrs)
215. Stefan Emet, "min2mid 2.2" (1.07 hrs)
216. Christian Ylämäki, "2min to midnight 3" (1.54 hrs)
217. Yi Cao, "Water 03" (1.08 hrs)
218. RAU Team, "Water_03_Tweak2" (0.07 hrs)
219. RAU Team, "Water_03_Tweak4" (1.44 hrs)
220. Ave, "Water_03_Tweak4.1" (0.60 hrs)
221. Yi Cao, "Grouped Finers 03" (0.13 hrs)
222. Stefan Emet, "Diesel ?" (0.75 hrs)
223. Mr. Bond, "I bet savegas parameters can be removed" (0.95 hrs)
224. Aditya Utturwar, "playing with Bond" (1.24 hrs)
225. Jeff Foster, "Blofeld" (2.23 hrs)
226. Tunists R Us, "SPECTRE" (1.78 hrs)
227. Ave, "Add more freight" (0.24 hrs)
228. Tunist, "Ms. Honeyrider" (0.25 hrs)
229. Ave, "Add more gas and freight" (0.07 hrs)
230. Ave, "Add more gas and freight correct" (0.30 hrs)
231. Copycat, "Copier 1" (0.05 hrs)
232. PU, "Tk1" (0.00 hrs)
233. Ave, "More tricks" (0.31 hrs)
```

## Colophon

This contest analysis was calculated and published entirely from MATLAB. We used the Database Toolbox to pull the information directly from the contest database, and this HTML document was automatically generated from a MATLAB script.