The Fall 2008 MATLAB® Programming Contest has come to an end. We hope you enjoyed it as much as we did.
Thanks to all the participants and spectators who have helped make the Army Ants Contest such a great success. Congratulations to all our winners! We also want to give a special "high-five" to those winners who are already in our MATLAB Contest Hall of Fame, yet made the effort to participate again in this contest.
Fabio currently lives in Pisa, Italy. He got his masters degree 2 years ago at the La Sapienza University of Rome. He is an electronic engineer for IDS SpA, an engineering system technology company that provides research and innovation in the electromagnetic field. He began using MATLAB seven years ago and since he started his programming skills have been boosted. In his job he uses MATLAB in analysis and simulation of radar systems and for processing of measured data. Occasionally, he uses it to modify images, produce videos and to produce and process sounds.
This is my second contest participation. Unfortunately I couldn't attend the first stages of the contest, so I studied the best entries a the begin of the Daylight. During the wiring contest I succeeded in speeding up the entries of other participants (however I didn't succeed in winning). This time, on the contrary, it was nearly impossible to speed up the existent entries, so I decided to study other strategies:
- to use the scent of the opposing ants (ignored by the best entries)
- to use the death scent (ignored by the best entries)
- to avoid to have my ants walking together
Unfortunately these ideas came to nothing on my notebook. The result of an entry is rather determined by the behavior of the random generator, so I had to run very long simulations in order to understand which was the best algorithm (I extended also the sample testsuite with some hand-designed tests, as I had done in the wiring contest).
All the tested solvers didn't seem to be particularly good. The parameters tuning was difficult too and anyway it had already been done by other participants.
During the last day I did not planned to participate to the final rush because I had not good ideas. However I thought suddenly to a smart (?) tweaking strategy: to alter the behavior of the best entries only when the game is well developed. Precisely, if some ant of mine find a lot of scent of the opposing ants, then the game is probably in a intermediate/late stage, so it could be a good moment to change the behavior of the random generator in order to explore the solution space without losing the good job done by the original solver.
Surely I was lucky, the point is that in my final attempts there were the entry with the best score of the last day (but with a bad execution time) and the entry with the best result (the winner one!).
Finally, I congratulate the MathWorks staff for these interesting contests and the participants: I have improved my MATLAB programming skills reading the code written by other people with the goal of efficiency and performance.
David Jones is a professor in the department of Electrical and
Computer Engineering at McMaster University.
His main research is computational vision and neuroscience.
David uses MATLAB in his research lab for running visual
psychophysics and brain imaging experiments
as well as analyzing synaptic protein expression in the human brain,
computational modeling, and simulations.
David is a repeat winner, having won prizes in the Wiring, Ants, Blockbuster and Blackbox Contests.
Markus is from Germany and has been using MATLAB since 1999. He is already a member of the the MATLAB Contest Hall of Fame, having won the Grand Prize and Twilight in the Gene Splicing Contest, the Big Sunday Push in the Peg Solitaire Contest and, previously, Twilight in the Blockbuster contest. He received his undergraduate degree at the University of Bochum. He completed a four month internship at Siemens in Princeton, New Jersey. His biggest news is that his Ph.D. studies at the University of Stuttgart has been completed!
His current employer is Daimler, the German car company, where he works as a member of the research department.His current projects include working on an intersection assistance system with autonomous emergency braking for cars.
In the beginning of the contest, I worked together with my friends Thomas and Edin, who later won daylight 4. However, our solvers were not as effective as those of the true contest winners Jan Langer and Nathan Quinlan who won darkness and twilight. At the end of daylight 2, I changed the attack section such that my ants would never enter a field already occupied by an opponent ant. This way my ants were "nearly immortal", by the way causing a very long execution time compared to the solver ending in second place during that phase. Further, in the "explore" section of the code I told my ants to follow the opponents to their ant hill in a certain percentage of cases, i.e. to walk in direction of higher opponent scent. Those two changes allowed me to win daylight 2.
This contest showed again that a Captcha is needed to avoid mass submissions and over-fitting. Many thanks to the contest team for implementing that, even it did not work this time. I am sure it will enrich the next contest!
Nathan Quinlan, is a lecturer in the Department of Mechanical and Biomedical Engineering at the National University of Ireland, Galway. He uses MATLAB for prototyping computational fluid dynamics solvers and for processing experimental data, as well as miscellaneous visualization and number-crunching.
In daylight, I was able to eliminate two redundant operations (one of which was suspiciously obvious, and spotted by a few other competitors). This cut about 7% off the solver time, but less than 1% off total run time. It was still an improvement, but probably needed a little bit of luck to rise clear of timing noise. I was lucky too to get the winning entry in just 4 seconds before the deadline, even though I wasn't watching the clock very carefully.
This contest is the most fun it's possible to have using only a computer, in my opinion, and it's even sharpened up my "real world" programming skills considerably. Thanks once again to the ever creative and hard-working organisers, and all the competitors, for making the contest what it is.
Edin was born in January 1977 in Hagen, Germany. He graduated from the University of Bochum in electrical engineering in December 2002 (majoring signal processing) with Diploma (German version of MSc). In Novovember 2007 he completed his PhD at the University of Magdeburg. During his PhD he worked on training algorithms for machine learning and their application for speech recognition. He has used MATLAB since 1999. Currently he is working as a development engineer for Endress + Hauser, a Swiss company making sensors for liquid analysis - e.g. pH-measurement. He is involved in signal processing and sensor-diagnostics like fault-detection. MATLAB is still his main tool.
First of all I would like to thank you very much for organizing such a nice event. It was pure fun for me to participate. My friend and obviously a MATLAB contest veteran Markus Buehren (we studied togehter electrical engineering in Bochum) told me about the contest about three years ago. However, I never had the time to seriously give it a try. This time I started programming during daylight. After a few hours I realized that the existing code is really mature (Nick and Jack, great work!!!) and I was far away from beating it. So I started to combine different fight-models with a slightly modified version of the existing food-search algorithm. One combination was the lucky one though not being very competitive on the testsuite. I hope that I can make a good contribution during darkness or twilight next time and can't wait for the next contest.
He says he uses "MATLAB only occassionally", which is quite remarkable as he has definitely shown his skills in previous contests. He is already a member of the the MATLAB Contest Hall of Fame, having won Saturday Leap in the Gene Splicing Contest, A Sunday Push in the Blackbox Contest (November 2006) and Ants (May 2005).
In the contest, I was really excited to read the rules, because the previous ants contest was one of my favorite ones. I started with implementing the simple 3x3 navigation strategy of last time's early entries. Furthermore, I came up with the attacking scheme of stopping when enemies are in sight. To my surprise, this quite simplistic approach wound up on top of the darkness queue! I enjoyed this contest very much, although I didn't have as much time to spent on the problem as I would have wished. Nevertheless it was fun to watch the queue and the entries adapt each day to the strategy of their predecessor.