|
Contest Analysis
Trucking Contest Winners
Trucking Contest Winners
The Trucking Contest features
some new faces as well as return winners. Aki and Christian have earned
a spot in the MATLAB Contest Hall of Fame. Congratulations to them both.
You might also remember our other two prize winners, Paulo and Yi Cao.
They have made our list as third time contest winners. We haven't been
keeping track, but we suspect that they both have wardrobes full of MATLAB
T-shirts!
Aki
Vehtari
Grand Prize Winner
The
coveted grand prize goes to Aki
Vehtari. Aki is from Finland and is a senior researcher for the
Laboratory of Computational Engineering
at Helsinki University of Technology.
He uses MATLAB for his research in the areas of Bayesian probability
theory and methodology, with applications ranging from industrial
data analysis to machine vision. He also uses MATLAB for computationally
intensive algorithms, such as Markov Chain Monte Carlo integration.
Aki has also contributed to matlab.el, which implements a MATLAB major
mode for XEmacs and Emacs. In his e-mail to us, Aki describes his
thoughts and the eventful sequence of events before the end of the
contest:
I've
watched all the previous contests, but this was the first time I
had enough time to participate. I didn't aim for the win; I just
wanted to have some fun and try to get my signature to the top of
the list at least a couple of times. I was sure that one of the
contest veterans would have some special trick saved for the end,
and I was very surprised that I won.
The contest closed at midnight my time,
and I had planned on going to bed early. I was shutting down my
computer when I decided to try once more. I submitted the "Add
more freight" entry, watched The Sketch Show, and after
returning was surprised to note that it worked, and no one else
had thought of it. Since I had named the submission clearly and
commented the change, I thought it would be obvious to everyone
that adding gas and other tricks would help. Therefore, I was
in hurry just to submit before anyone else, so that I would get
my signature to the first place at least for a few minutes. :-)
"More
tricks" was submitted almost 20 minutes before the contest
closed and there were at least five derivatives of it, so after
the contest closed I was quite sure that someone would top my
result. I went to bed before the queue had been processed.
Less than 5% of my code was in the winning entry. However, it
took me a couple of hours a day to follow the contest and identify
the changes that made significant progress. Better commenting
would make it easier.
I would like to thank the MathWorks Contest Team for organizing
the event and all the participants for making the contest a chaotic,
addictive, and fun event.
--Aki Vehtari
|
Paulo
Uribe
Early Bird Prize: Best Entry at 5pm on Friday
Paulo was the Grand Prize
winner from the recent MATLAB Protein Contest. This is also the third
contest where Paulo has won a prize! To find out more about Paulo,
see the winners page from the Molecule
Contest. Paulo lives in Maryland and uses MATLAB at work to design
and test DSP algorithms.
Also, be sure to check out the picture of Paulo and his two daughters,
all sporting the latest in MATLAB fashion! Click on the image to
enlarge.
Here Paulo takes the
time to tell us about his winning strategy and why the Rand function
should continue to be allowed in the contest:
A
Winning Strategy
I won the Early Bird Prize by adding randomness to the leading algorithm
of the time. The original algorithm chose the next location to go
by passing all possible locations through a metric and then choosing
the one with the highest score. The problem with this is that it
might be getting stuck in a local maximum. I therefore modified
the leading entry to choose randomly, with equal probability, between
the two best locations if they have a similar score. This worked
really well as the score improved by 6 points.
Now, as the one that introduced the surprisingly criticized Rand
function, I feel that I have to come to the defense of it. It
has been suggested to block the Rand function because “the
contest is about developing an algorithm, not about gambling”.
This would really hamper the contest, as it would disallow the
realm of randomized algorithms, which as the name states are really
algorithms. A great example of randomized algorithms can be found
in the CD Packing Contest. Imagine what that contest would be
without Rand. I suggest we keep Rand and let the evolution of
the contest dictate its fate.
A Failed Strategy
After winning the Early Bird prize, the contest progressed such
that the entries grew to be huge monsters. With the limited time
I could spend in the contest, I was left behind very quickly.
The night before the last day I tried to analyze the current leader,
but there was no way I could make a significant improvement in
the hour I set aside for the contest. I didn’t understand
the code well enough to tweak it, so I decided that my only chance
to win was to take a small portion of the program, improve it,
and add it to the winning entry.
I had a hunch that the function "diesel2"
could use some improvement so I dissected it and enhanced it.
I tested by pasting it to other entries and found that it would
improve their score by up to 5 points. I thought I had found the
perfect strategy. I then waited until the next day and a few minutes
before the deadline, I sent three entries. Two of them modified
the current winners at the time and improved both the CPU time
and raw score of those entries. I then picked a single entry from
the queue to append the new diesel2 function and luckily, for
me it was
"More tricks", the final winner. However, Aki’s
entry was so good that my entry, TurboD2, only improved the raw
score by .229 while being slower by half a second.
Congratulations to Aki and the whole MathWorks team!
-- Paulo Uribe
|
Yi Cao
First Score to Break 1800
Yi Cao is another of our third-time contest winners. Congratulations!
This is the third consecutive contest where he has won a prize.
The previous contests were the
Protein Contest and the Molecule
Contest held last year. Yi Cao, who is a university lecturer
in the UK, has been using MATLAB for more than 10 years now. His
interests include math and computing. Here, Yi Cao tells us why
this winning entry is his favorite out of all the contests he has
won.
Out of the three prizes I have won, the new one is my favorite.
It is based on a novel program, "Route
Finder", which was developed over the weekend and has been
kept for two days. I knew it can reduce the score by more than 10
points. I persuaded myself not submit it on Monday night when the
highest score was 1,889. In the morning, the first thing I did was
check the score. The leader was just below 1,820 and the history
curve was flat. I told myself, it was the time to release the code.
I was so lucky. The result was 1799.2424 just enough to break 1800!
According to the experience gained from
last two contests, this time, I tried to pull myself off from
the webpage to concentrate on developing my own code. I am glad
that I finally did it.
-- Yi Cao
|
Christian
Ylämäki
Midnight Madness Prize
|
Named in honor of our
European contestants, the Midnight Madness prize goes to Christian
Ylämäki of Sweden. Christian will receive a MATLAB coffee mug and
a bag of Peet's Coffee. Christian is a final-year Electrical Engineering
Masters student at Karlstad University
in Sweden. His course emphasizes automatic control and digital signal
processing using MATLAB.
Christian first came
across MATLAB in a math course in his freshman year. He now finds
it to be a superior tool for numerous engineering tasks. Besides
MATLAB Contests, Christian's other interests include golf, chess,
and Go. Christian also enjoys listening to music and hanging out
with friends. Here's Christian's contest story:
This is my second MATLAB competition. I also participated in
the Protein Folding contest, where I made some successful tweaks
but never managed to get into the lead. My goal in this competition
was to reach the top spot at least once. Surprisingly, I managed
to do that on the first day with "Advanced
Stuff 7", which was a combination of the current leader
and my own algorithm. That entry is probably the one I'm most
proud of since parts of it survived almost to the end of the competition.
As the entries got more and more complex, my contributions got
smaller and consisted mostly of minor adjustments to algorithms
written by others. Two more entries of mine worth mentioning are
"Hungover"
and "2
minutes to midnight2". Hungover included my most meaningless
tweak. I changed the state of the random number generator in the
leading entry and by pure luck took the lead. In 2 minutes to
midnight2 there was a little more thought behind my changes. I
introduced a for-loop where the same solver was called multiple
times but with different weighting of the freight. It wasn't a
big change, but it was enough to earn me some very appreciated
MATLAB memorabilia.
-- Christian Ylämäki
|
|
|
|