The recently completed Golf
Contest had several short puzzles instead of a single long one. Congratulations
to our Grand Prize winner, Per, who wins a
MATLAB Jacket. We also learned that two of our winners are from the same
department at the Åbo Akademi University in Finland. Do they run into
each other walking down the university hallways? Read on to find out more.
After 7 intense rounds
of competition, our grand prize goes to MATLAB Golf Champion Per
Rutquist. He came away with two first place and two second place
finishes.
Per works for Volvo Technology
Corporation in Gothenburg, Sweden, and is also enrolled as a Ph.D.
student in the Control and Automation Laboratory at Chalmers
University of Technology. Per is a veteran 7-year MATLAB user.
Currently he is using MATLAB in building fuel cell models as well
as for implementing dynamic programming algorithms.
I have always considered MATLAB Contests
a lot of fun. My strategy is to try and develop my own algorithm
from scratch, rather than tweaking. Sometimes however, my program
doesn't quite cut it and I have to resort to tweaking another
entry. My reason for doing that is after putting that much work
into it, I deserve to have my name on the score board somehow!
Winning second place on the Palindrome
hole was mostly luck. I started with my own code, and applied
tweaks I'd found in other entries. When I finally made the submission,
it took first place but was quickly tweaked even further. I then
noticed that the shortest entry in the queue depended on the maximum
string length being 99. Hoping that this would not be the case,
I submitted an entry with 99 replaced with 999. I was pleased
to see my entry take first place. Surprisingly, it was eventually
bumped down to second place by a 99 entry identical to the first
one. It turned out the only reason I got second place was due
to a server error. Oops!
An obvious risk of developing your own
algorithms is that easy tweaking possibilities are left in the
code. The winning entry in the Pathfinder hole contained at least
4 superfluous characters that should be easy to spot for anyone
who followed the previous holes. (Finding these will be left as
an exercise for the reader.)
I knew that winning the Pathfinder would
put me in the lead as Grand Prize winner since it was the second
to last hole. Unfortunately, the queue was so long that I didn't
find out if I'd won till Friday morning (European time). That
made the last hole, Snake, a lot more exciting. I thought I'd
written a very clever algorithm based on matrix powers. Unfortunately,
it did not pass the test suite. Oh well....
--Per Rutquist
Guy
Shechter
Hole 1 (Frequencies) Winner
Guy won the very first
hole in the MATLAB Golf contest. Like all of our winners, he'll receive a MATLAB
Toolkit as part of his prize! Guy is currently a Ph.D. student
at Johns Hopkins University in Baltimore, Maryland. Guy works in
the field of cardiovascular medical imaging where he uses techniques
from computer vision to reconstruct dynamic models of the coronary
arteries. The goal of his research is to measure how the heart moves
when we breathe. He admits that while this line isn't particularly
useful for meeting girls in bars, he hopes that his work will ultimately
help reduce motion artifacts that occur in MRI imaging of the heart.
Guy's other interests include traveling, haute cuisine, good wine,
playing the guitar and snowboarding.
For
some reason, I've always been too busy to participate in previous
MATLAB Contests. This time was no exception. My Ph.D. thesis had
to be distributed to reviewers on Friday, and the good people at
the MathWorks decided to hold a three day contest -- Tuesday, Wednesday,
Thursday! The short contest format was ideal for quantized procrastination.
If things don't work out, I'll use the toolkit to start an alternative
career as a handyman.
-- Guy Shechter
Imre
Polik
Hole 2 (Palindrome) Winner
Imre is another new face to the contest. He received his Masters
degree in Mathematics at Eotvos Lorand
University of Sciences in Budapest, Hungary. He's currently
pursuing his Ph.D. at McMaster
University in Canada. Imre's
interests lie in interior point methods, semi-definite optimization,
and complexity analysis.
A few months ago I received a MATLAB newsletter
about some contest coming. I went to subscribe for the mailing
list. I'd almost forgotten about it when on the Monday before
the contest, I received e-mail notification. I was surprised at
the goal of the contest since the shortest code is usually neither
the fastest nor the most readable.
Initially I tried writing my own code instead
of tweaking, however they turned out to be hopelessly long and
unreadable. Implementing a new idea from scratch was certainly
not working out, so I spent most of my time tweaking other people's
code or substituting parts of them for parts of my code. I was
very surprised to see my name on top in the Palindrome contest.
Anyway, I enjoyed the contest very much
and participated in every hole. I'm happy to be part of this community
and plan to try my skills at longer contest in future. Thanks
to the MathWorks for this new contest idea and congratulations
to Per for winning the overall contest.
-- Imre Polik
Stijn
Helsen Hole
2 (Palindrome) Winner
You might recognize his
name from our earlier contest pages. Stijn is a third-time MATLAB
contest winner, having won the Grand Prize in the Mastermind
Contest and a mid-contest prize in the Molecule
Contest. Stijn is from Belgium. Find out more about him by viewing
his previous winner's
profile.
This contest is very different from the others. It featured small
problems where one had to find the right solution and where efficiency
(cpu time) was of lesser importance.
Initially, I did not like the contest format too much. The problems
were small and after an hour or so of coding and tweaking, not
much more could be done. Fortunately, the time frame for each
problem was short, so there wasn't much time to get bored. The
last holes were especially fun since they were a bit more complex
and interesting than the earlier ones. Even though the holes ran
for three hours, new ideas could still be introduced till the
time the hole closed. I was quite happy with the change after
the contest. You could even "have a life" between the
holes, and it was still fun!
Some people, for example the ones asking earlier for better documented
code, might not have been as happy with this contest. Though I
believe that writing code fast and reading/understanding other
people's code whether structured or not, are good skills to possess.
It is a pity that the contest itself didn't go as smoothly as
the nervous contest participants wanted it to. It was sometimes
difficult (seemed impossible) to connect and there were some problems
with the scoring. Though this problem was probably magnified due
to the nervousness of the contest participants.
-- Stijn Helsen
Claus
Still Hole
4 (Infection) Winner
If you'd followed the
MATLAB Protein Contest held last year, you'd remember Claus Still.
MR Keenan tweaked his entry and went on to win the Grand Prize.
MR Keenan's entry was named Santa Claus in honor of Claus.
Claus is from Finland and works
as a systems engineer for a telecommunications company called Tellabs.
He recently took study leave to work on his Ph.D. at Åbo
Akademi University where he worked in the Department of Mathematics.
His work involved the development of a new optimization algorithm for
mixed integer nonlinear programming. He used MATLAB heavily in his work
because of its flexibility and powerful language constructs.
In the first half an hour, Mark Bartsch set the pace in the fourth
hole, Infection, with his "Kinda Short" entry. Over
several minutes, the entry was optimized in such a compact form
that I saw no way to improve on it. It was then that I turned
to the original idea I had: to use a binary vector to represent
occurrences of the characters of the infected people. Using this,
along with some ideas from the leading entry, I managed to create
a short enough entry to win the hole.
I prefer algorithm development to writing compact code, so I
was quite surprised to win a hole. Anyway, it was interesting
to try something different and I think the rules in MATLAB Golf
have improved over previous contests. I am still hoping for protection
of the submitted entries in future, for example, hiding the entries
waiting in the queue.
I would like to thank the Contest Team for organizing this fantastic
event and hope to see more challenging contests in the future,
whether or not they are based on writing compact code or good
algorithms.
-- Claus Still
Niclas
Carlsson Hole
7 (Snake) Winner
Nicke is the winner of
our seventh and final hole. Like Claus, Niclas is from Finalnd and
is currently a graduate student in the Department of Mathematics
at Åbo Akademi University. His
research is centered around classes of Markov processes in discrete
time with continuous state space. A considerable amount of his time
has been spent solving equations involving probability distributions
using MATLAB. Nicke also enjoys, reading, programming, music, cross
country skiing and spending time with his family.
I've followed the MATLAB contests starting with the Mars Surveyor
contest in 1999. I have however, only occasionally participated
with the odd entry. This is mostly due to not taking the time
to keep up with the evolution of the best entries ruing the contest.
In this aspect, this contest suits me much better. I only have
to spend brief but intensive sessions in front of the computer
instead of sacrificing the better part of a week.
In the beginning of this MATLAB contest, I mostly tweaked entries
from the queue. Towards the end, I changed methodology by developing
my own solution. Not only was this more fun, it also gave me a
better perspective on how to solve the problem. Thanks to The
MathWorks for some very entertaining evenings!