The MATLAB Furniture Moving Contest sees several first time winners as well as familiar faces. Congratulations to our new Hall of Fame inductees! Read on to see photos of our winners, find out how they use MATLAB in their daily work, and enjoy contest anecdotes.
Contest newbie, Michael Guo, is this contest's Grand Prize winner, edging out contest veterans for the much coveted top spot. Congratulations Michael! We hope to see you back for the next contest.
Michael is from Boston and works as an analyst at The RISConsulting Group. While using MATLAB is not always part of his daily routine, it factors heavily into the work he does since all economic models at RISConsulting are built with MATLAB. Prior to his current position, Michael had already been using MATLAB, starting while he was an undergrad at Yale University pursuing his Bachelors in Electrical Engineering, Computer Science, and Economics.
I hadn't even heard of the MATLAB programming contest until my coworker "the cyclist" pointed it out to me half a month before the contest began. He and several other coworkers had been participating in previous contests for some time now, eagerly coding, tweaking, and watching the queue. I was busy with other things and have never been spectacular at MATLAB, so instead of coding, I mostly just watched the queue and cheered on my colleagues, occasionally talking about strategy, algorithms, and other participants with them. In fact, I mostly program in PHP at work, doing interface work for our MATLAB models, so I hardly felt ready to butt heads with programmers with years of extensive MATLAB experience.
As the contest approached the final half hour, I thought, "What the heck? I might as well try tweaking some code." Never expecting to win, I submitted several entries in the last ten minutes with minor edits that rather unexpectedly improved on existing entries.
Next year, I hope to have my own working entry complete for the darkness phase!
In his e-mail, Stijn tells us about his experience with his first three-phased contest (darkness, twilight, and light). He was unable to participate in the past Gerrymandering contest (our first three-phased contest). Read on to find out why he prefers this contest format!
In previous contests, I couldn't stop myself from constantly looking at what's happening, thus preventing myself from working on my own algorithms. This also stopped me from working on doing things that I should do, for example working at work, and caring for the family at home. This changed during the Furniture Contest.
During the first two segments, you are forced to work on your own algorithms. Some time after the beginning of the "daylight-segment", I lost most of my drive to work further on my own algorithms again, partly because some changes that made improvements with the sample testsuite did not improve results with the final testsuite. Also after "improving" some other parts of winning entries, which didn't seem to improve the final results (especially timing), and eventually not being able to run the winning entries, I didn't want to spend too much time anymore on the contest. I've kept watching though. (The timing difference at home versus the Mathworks might have something to do with version differences.)
This problem was different than the problems in earlier contests in a way that there was no trivial way to solve the problem. This made it interesting, but on the other hand also more difficult. One of the difficulties was making a choice (or compromise) between a solver that could solve the problem always if there is a possible solution, or a solver that is faster, but that could solve the (unknown) problems that are given to the program. The "Mathworks-solver", which was simple, showed that the problems couldn't be too hard.
I enjoyed the contest. But I still prefer a slightly shorter contest, mainly for my family and to reduce the time that my efficiency at work is below minimum!
-- Stijn Helsen
First-time contest winner Mike Bindschadler is a Biomedical Engineering PhD student at the University of Rochester in Western New York. A self-taught MATLAB programmer, Mike has been using MATLAB almost daily in his research on cellular motility.
So far Mike has used MATLAB in three main projects. 1) An ODE-based model of actin dynamics. 2) A MATLAB GUI controlling various equipment, including a motorized microscope and piezoelectric stage. 3) A Monte Carlo simulation of cell motility in culture. Mike also enjoys travelling with his wife. Mike's picture is taken from his honeymoon in New Zealand.
I participated a little bit in the Gerrymandering contest, and I learned a lot from that experience that was useful this time around. In that contest, I had an idea which, when implemented in Darkness had the lead for a while, but was well surpassed before Twilight and that made me think that I might be able to be competitive in these contests, but I was then discouraged by how far ahead of my entries the lead got in twilight. Finally, when Daylight came, I was really surprised that the best entries were not much different (conceptually) from the basic ideas I had, though they had been optimized and repatterned in lots of various ways. I had thought that the leaders must have had fundamentally better ideas about how to do the problem better, but after the contest analysis in particular, I felt like they hadn't done anything which was completely beyond my abilities.
So, when this contest came around, I decided to throw myself into it full force, and the idea of just retrying variations and keeping the best score (which I learned from watching Gerrymandering) was the key step which moved me past Stijn's entries into first place near the end of Twilight.
I'm proud that my entry formed a more or less complete piece of almost every leading entry throughout Daylight (though I haven't been able to tell whether it was an integral piece or not!).
-- Mike Bindschadler
Niilo is another of our first-time contest winners. He is currently a researcher at the Institute of Mathematics, Tampere University of Technology, Finland, where he's also studying for his doctoral degree.
Niilo became familiar with MATLAB when starting his university studies, but it really became his "Swiss army knife" when he got his research position in 2000. In his work with satellite positioning algorithms, he uses MATLAB regularly for algorithm prototyping and quick visualization.
Fortunately for Niilo, his bad habit of "code first, think later" helped him in this contest, having gained hours of practice cleaning up, tweaking, and restructuring his own code.
First off, I decided to put couple of hours in writing my own algorithm, submit it, and leave it to be developed further by others. This in mind, I threw in quite a lot of comments and tried to use descriptive variable and function names (these at least survived the Great Pruning of Comments). I resisted the temptation to look at the sample entry, which resulted in some peculiar data structure choices. My approach used lots of recursion, and especially the bit doing some kind of "flood search" to find the shortest path for one object always hit the recursion limit.
However, It wasn't until Sunday (whole four days) until I realized that I couldn't get my algorithm to solve the whole suite, so I added the current leader as a back-up. The Frankesteinish code was slow but shaved 2500 points off the best result so far. I quickly rearranged the code to try the current leader first and use my algorithm only if the "perfect move" was not found. This was still not fast enough, so I started sacrificing good results for speed which put me in the #1 spot and in a bit of frenzy, knowing that the numerous tweakable parts of my code were now exposed. I myself had no more than some minor tweaks left (setting random seeds to 42 and such), but my initial contribution was fortunately large enough to secure the Sunday Push prize.
After the weekend, I really did not have much time for the contest, and the leading entry was at this point so adapted to the contest suite that I had no success in trying to restructure the code and systematically optimize the various parameters off-line using the test suite.
All in all, it was nice to see so much of my code inherited to the Grand Winner Entry. I hope (as I did last time) that I would have more time in my hands at the next competition... Until then!
-- Niilo Sirola
Tom Lemke is from Iowa where he works as a test engineer. He first started using MATLAB in college while studying Electrical Engineering. This is not Tom's first MATLAB contest. In fact he participated in the Mars Surveyor MATLAB Contest held in 1999 where he mapped out the explicit solution for the map that was given away with the results.
I didn't do much to win this prize, just tweaked a parameter. I don't feel terribly guilty for claiming it though, because I did contribute to the code on other occasions. No heavy math stuff, but problem solving ideas like trying to do the problem backwards and also finding an intermediate state and trying to solve for better first and second halves of the sequence.
-- Tom Lemke
Timothy Alderson wins the Tuesday Leap Prize making the biggest single improvement in score.Timothy is an electro-optic design engineer with a Masters degree in optics from the University of Central Florida. He uses MATLAB for image processing of infrared imagery every day at Lockheed Martin for incorporation into a real-time image processing suite on various military applications.
This is the second contest I have participated in and was glad to see that my contribution in darkness and twilight actually scored well enough to get a mention on the main board. I also was glad to see that the winning entry has a function call for TLL79 as a base function. I won this phase by seeing that the previous large leap was made by adding a fifth solver function into the mix and that the entry failed to place a simple "if" statement around it so that if a near-perfect score was achieved it would skip this new step. That allowed a significant speed increase and hence a better score. Once I made this change I took the lead and held on for the rest of the night. My entries were the initials that I used to use on video games and are for "Tim Loves Lisa" my wife. She was understanding of the mental instability that this contest induced in me.
Thanks to the MATLAB contest team and the players in this contest for an enjoyable experience.
-- Timothy Alderson