MATLAB Programming Contest Blog

Winner, winner, chicken dinner!

Served with CHEEEESE!

The dust has settled and it looks like Raphaël Candelier has won the contest. He had quite a jump in score this late into the contest also. If you are only going to win one, this was the one to win. Congratulations and thanks for playing!

Contest Queue is Closed!

Well, it’s that time again. We’ve reached the end of the Knots Contest and the queue is now closed. There are just under 200 submissions pending scoring. Once those have been processed we will announce the Grand Prize Winner.

Thank you to everyone who has joined in the fun over the past week.

Helen

Sunday Push

Congratulations also go out to Richard Zapor for two big pushes on Sunday that combined moved the solver forward more than anyone else was able to. Richard is no stranger to the programming contest, but it looks like he managed to get his second win in this, the last contest. Great work!

Saturday Leap

Congratulations to Yi Cao for yet another win in the MATLAB programming Contest. Yi has been involved in so many of our contests, that I recognized his name and for a moment thought he works here. Congratulations on this win.

Richard Zapor gets the worm!

I really should explain, in case my American English idioms are causing confusion, that the title of this post is based on the expression “The early bird gets the worm.” And friends, Richard Zapor is the Early Bird. His entry try09 var rand managed to stave off all assaults, leaving him in sole possession of first place. But for how long?

Not very long, as it turns out. After writing the preceding words, I thought I’d check the leader board just to make sure Richard was still in first place. And there I find that Fel has just displaced Richard with The late worm. Fine work, Fel, but no worm for you!

Congratulations to Richard for winning the Early Bird Prize!

Twilight winner and upcoming Mini-Contests

Our old friend (and two-time Grand Prize champion) Alfonso Nieto-Castañón has shouldered aside the competition to claim the Twilight Prize. Let’s hope this trophy isn’t the one that causes his groaning MATLAB trophy cabinet to collapse under the weight of all his prizes. Congratulations Alfonso!

Now the shades are up and the windows are open. Daylight is streaming in through the windows and you can finally answer the question “How on earth did he get that score?!” Good luck to everyone in the next phase of the contest.

As is our custom, we will be hosting a few mini-contests this weekend. Up first is the Early Bird prize. Whoever is in the lead as of 21:00 UTC this evening will win the coveted Worm Trophy.

Here’s the complete list.

• Early Bird prize: Best score for an entry submitted before 21:00 UTC (5 PM Natick time) on Friday.
• Saturday Leap: Single best percent improvement for the entire day of 3 November (midnight to midnight, based on UTC time)
• Sunday Push: Most aggregate percent improvement for the entire day of 4 November (midnight to midnight, based on UTC time)

Those of us in the United States will be resetting our clocks this weekend from Daylight to Standard time. Note that this has no effect on the UTC timing of our weekend contests.

Some say he’s our latest Prince of Darkness

Is that you Magnus?

Hannes Naudé, winner of the 2010 Sensor contest, is back with a commanding lead after 24 hours of algorithmic gloom, making him our newest Prince of Darkness. His entry title lifts a page from Magnus S (and by extension, from The Stig): Some say he does not understand the meaning of the phrase “last contest”.

Last contest or not, you’re setting a blistering pace for the rest of the pack. Congratulations Hannes!

The End of an Era

Fourteen years ago, a small group of us here at MathWorks launched the first MATLAB Programming Contest. We wanted it to be a different sort of contest, one that did a better job of mimicking the way ideas move through the real world. In this contest, people would be able to see each others’ code as it was submitted.

That first contest proved to be a hit, and so we did another one, and another one, and… well, here it is fourteen years and twenty four contests later. It’s time for us to change gears. We’re working on some ideas that will bring back the spirit of the MATLAB contest, but this will be the last official MATLAB Programming Contest in this format.

So consider: these are bragging rights worth having. How would you like to tell people that you won the very last MATLAB Programming Contest? Now you’ve got your chance.

Get busy!

Knots Contest is Now Open

The Fall 2012 MATLAB Contest is a problem that most of us have encountered – How do you get that pesky knot untied?

Welcome to the Knots Contest! Our Fall contest will run from 16:00 UTC Wednesday, 31 October through to 16:00 UTC Wednesday, 7 November. Everyone is welcome to join the fun.

Good luck everyone!

Lindsay

Fall MATLAB Contest starts on October 31

Get ready for the next MATLAB Contest!  We’re in the final planning stages and excited to kick-off another season.  We’ll start at 16:00 UTC on Wednesday, October 31 and run through 16:00 UTC November 7, 2012.

While you’re waiting, watch Ned’s behind the scene’s video or browse through some of the past contests on the MATLAB Contest page.  See you online.

Sergey’s Cats are Best of Show

You can learn a lot from the names of contest entries. Nuwan Ganganath had a series of submissions reporting the news from Indonesia and Sri Lanka about the recent earthquake. I might have learned more from Nuwan except I don’t speak Sinhala. Vitor has been giving us lessons in Portuguese throughout the week (melhor = better, mais = more, ….), and Yi Cao was kind enough to include a translation in his title: 金钥匙 golden key. Our friend Gwendolyn Fischer lifted a page from Magnus S, launching a series of entries which describes someone’s (her?) activities and predilections.

But ahead of them all, there with his cats, serene and all-seeing, sits Sergey Y. When all the cards come out on the table, that’s when we see who was holding and who was bluffing. Everybody has the same plan: add one last trick to the code. Something that no one else has seen. But it’s easier said than done. And it must be said: Sergey was not bluffing. His cats bring home the goods. His penultimate leader CatsAreComing gave a 0.12% improvement, huge at this stage of the match. The icing on the cake was his winner, CatsAreComing?

Sergey, our congratulations to you! You’ve won many (many) prizes from us, but never the big trophy. Now it’s yours, and well earned. Will you please send us a picture of your cats and tell us their names?

Yi Cao Gets Good Results

The magic number is 108344. In six or so days of slugging away at the Tiles problem, no one has gotten a better “result” number. You remember we separate the contest score (which is a combination of several factors) from the result, which is based on the answer returned by the algorithm. Thus result has nothing to do with CPU time or node count or number of lines of code or whether or not you had a good lunch. The only stipulation is that you get just three minutes to calculate it.

Yi Cao needed all but three seconds of his alloted 180 to come up with his magic result of 108344. And after he submitted the winner, total, earlier today, several other people managed to duplicate his feat. But Yi Cao got there first, and for that he wins a prize. Congratulations to Yi Cao for winning our Best Results mini-contest.

Incidentally, Yi Cao narrowly beat out Nuwan Ganganath’s entry called ලොකුද පොඩිද. That would have been exciting too, as it would have been our first Sinhala-titled winner (Nuwan, can you tell us what it means?). Maybe the grand prize winner will be in Sinhala or Portuguese or Chinese… who knows?

And now we’re in the home stretch. By this time tomorrow we will have declared a winner. Good luck everyone, and may the best algorithm win!

That was fast!

Fel wins the 11k Challenge. We were looking for the first entry to post a score better than 11,000, and his TLM @ -256.15 ºC did the trick. With a score of 10999.2, it just cleared the wire, but that’s all it takes to win.

He added in a note that the entry should have been titled -262.15 ºC, but as we can fully understand, he was typing very quickly, knowing that victory might escape him. Now can anybody tell me what happens at -262.15 ºC?

Congratulations Fel!

Upcoming mini-contests

Hear ye! Hear ye! Before the run-up to the Grand Prize on Wednesday, we will award prizes for the following:

• Best Result by 21:00 UTC tomorrow (Tuesday). As long as you don’t time out, CPU time is not a factor in this competition.
• 11K Challenge. This prize will be awarded to the first entry to get a score lower than 11,000.

Weekend prizes

Our congratulations to Michael C. for his Saturday Leap winner What have I done…. Here’s what you’ve done Michael: you submitted Saturday’s single best improvement to the contest algorithm, and for that you win a prize and our undying admiration.

The Saturday Leap prize and the Sunday Push prize are theoretically designed to reward two different kinds of behavior. Some people like to pack their improvements into a single hard-hitting file. We created the Saturday Leap with these people in mind. Others like to make many small improvements over time: slow and steady wins the day. We want to reward people who do this too, because it’s an important part of contest. The prizes occur in the order they do (Leap first, Push second) because as the contest progresses, it becomes harder and harder to make big improvements. Harder for most of us, that is. But not if your name is Yi Cao. We’re happy to have Yi Cao back on the winner’s podium for his remarkable single-entry Sunday Push winner local optimal.

If you don’t know much about the American sport of baseball, and I realize many of you do not, here is a quick lesson: if you can count on hitting home runs, you don’t have to worry about the rest of your offense. Yi Cao hit one out of the park on Sunday. His entry made a bigger improvement than any other entry on Sunday, than anybody else’s combined efforts on Sunday, than everybody else’s combine efforts on Sunday. You’d have to go back to Friday afternoon before you found code that improved as much. For this, Yi Cao can be justifiably proud. We’re proud to have him competing here, and we’re happy to send him yet another prize. Congratulations Yi Cao!

Sergey’s Cat is the Early Bird

One of these days I hope Sergey will tell us the story of why his entries are all named after cats in one way or another. But in the meantime we can still congratulate this highly-decorated contest veteran for his latest catch. Sergey Y‘s FlipCat5 won the Early Bird competition with 36 seconds to spare. FlipCat5 snatched the prize from Fel‘s … caches the worm which had surged into the lead mere minutes earlier. Lead-time is fleeting. You have to enjoy it while you can. I feel a little bad for Fel, but Sergey’s FlipCat5 should be applauded for knocking a dramatic 1.52% off the leader. So congratulations once again Sergey! You’ll need to re-arrange your den to make space for all the MATLAB Contest prizes you bring home.

The Saturday Leap competition is currently under way. Whoever, makes the biggest improvement with a single submission before midnight (UTC time) wins. This is one contest where you definitely want to put all your eggs in one basket.

Vitor is victorious!

Vitor Yano wins our Twilight Phase with his entry vamos ver se melhora. It’s exciting to see that three people (Vitor, Werner, and Andreas Bonelli) were able to improve on Nicholas Howe’s winning score from yesterday without being able to peek at his code. Now the fun begins. Everybody’s code is on the table, algorithm parts are spread all over the floor, and we get to see which mechanic can assemble the best machine.

I’m thinking that the MATLAB Contest would make a great reality TV show. Is anybody with me on this? All we need is a title. “The Deadliest Algorithm”? Or “Code Rush”? What would you call it?

At any rate, congratulations to our newest winner of the coveted crepuscular crown: Vitor Yano, Ruler of the Twilight.

And remember, we’ll be handing out a prize for the early bird winner later today (21:00 UTC).

Nicholas Howe, Prince of Darkness

Andreas Bonelli gave him a good run for his money, but once again, Nicholas Howe tops the list, winning his Nth contest badge, where N is a very large integer. Nicholas sent us 14 submissions on his way to victory, but the one that really took us for a ride was Interstate 9 (which, by the way, is still at the head of the list). Congratulations on yet another Shady Crown to our multi-talented Prince of Darkness, Nicholas Howe.

Mini-Contest Announcements
We know that you like to regulate your time based on when the prizes appear, so here are some upcoming mini-contests to put on your calendar.

Early Bird prize: Best score for an entry submitted before 21:00 UTC (5 PM Natick time) on Friday.
Saturday Leap: Single best percent improvement for the entire day of 7 April (midnight to midnight, based on UTC time)
Sunday Push: Most aggregate percent improvement for the entire day of 8 April (midnight to midnight, based on UTC time)

And of course we’ll be awarding our Twilight Prize at 16:00 UTC tomorrow (Friday).

Spring Contest “Tiles” is Underway!

Welcome to the Tiles Contest! Our Spring Contest is officially underway and will run for one week, until 16:00 UTC Wednesday April 11th.

Don’t forget, if you want some practice getting started on the problem, check out the related puzzles in Cody!

Good luck to everyone!
Helen

Spring Contest Starts Tomorrow

The spring MATLAB Contest kicks-off tomorrow, April 4, at 16:00 UTC.

If you want to get some practice in before the contest starts, check out the Tiles Challenge at Cody. The contest team has created 6 puzzles for you to get back into the swing of competitive MATLAB programming.

If you are new to our contest, you may also want take a minute to watch a video about the contest or check out some past contests. There are lots of tips and tricks to be found in the contest archives.

See You at the Spring Contest!

The Contest team is finishing up our last activities for the Vines Contest.  Prizes to the winners have been packaged up and are on the way to their various final destinations.  Stories from the contest winners are posted to the Hall of Fame.  It’s well worth a read!  You might learn something that helps you in next season’s contest!  ;-)

Thank you to everyone who participated and to those of you who watched from the sidelines. If you are in the latter category, please do consider joining in next time.

It really was another great season.  We look forward to seeing you in the spring!

Best,

Helen

Alfonso is the Winner!

Wow! What a finish. A lot of us thought that Nick was going to do it again. The cyclist even named one of his last entries Can’t beat Nicholas Howe. We knew the end was near, because Magnus S. named one of his last entries Some say that he is soon running out of titles (by the way, you should read the complete list of Magnus’s titles).

The minutes ticked by, and sure enough here comes Nick with pf3pushmixfull. It’s a significant improvement, and he’s got a few more right behind. But wait… hold the phone! Could it be? Yes, here comes Alfonso with a killer punch. BAM! lastttry01. Look out! Here comes another. BANG! lasttry02. And the final blow. KAPOW! lasttry03.

Alfonso has set a new standard in terms of dominating the end game. Not one, but two of his final entries improved on the previous leader by more than half a percent. Which is, as we say here in New England, wicked hard to do. So hats off and three cheers for Alfonso Nieto-Castañón, our latest champion. And, as always, thanks to everyone who played. The code that wins carries with it a little bit of all of you.

See you in six months!

Vines Contest queue is now closed

The Vines contest queue is now closed.

The Grand Prize Winner will be declared after all entries submitted before noon (Natick time) are processed.  You can check the queue at the Vines Contest website to see how your entry is doing.

Helen

Alex P. and the Anatomy of a Tweak

Congratulations to Alex P., winner of the Square One Challenge with his SOC tweak. Michael Bindschadler came close… so close! to winning. But from the newsgroup, we read this heartbreaking story.

Curses!! I tried to hold my SOC code for as long as I could, but I was going to be away from the computer for the last hour before the deadline and I knew I hadn’t really kept up with the leader developments since I forked from “m” to develop my SOC solver, so there were a lot of tweaks that could probably quickly improve my code. I went so far as to make sure I could do the submission at the last minute from my phone. I submitted from my phone at 8 min before the deadline because I wanted to have time to log back in to matlabcentral, find my entry, and resubmit with the SOC tag, in case my phone had mysteriously logged out or I was in a dead zone or something. I was hoping 8 min was not going to be enough time for someone to find and insert a winning tweak. I should have known better :)

Congrats to Alex P, who only needed 7 min to find something to improve and resubmit it, winning by improving the time by 0.16 seconds!

His closing comment shows that Michael is a good sport and that he understands the brutal reality of the contest: tweaks can happen at any time. Alex P., who has narrowly missed on prizes of his own, deserves our recognition too. But I can’t resist showing you the one line out of 1675 lines where the code differs. On line 478, where Michael had


for n1=1:1e2,




for n1=1:22,



And that, my friends, is all it takes. Assuming your answer is actually better, which is harder than it looks.

There is one exception to the Iron Law of Tweaking, though, and it will soon be upon us. Once we get so close to the end of the contest that your code can’t be scored until after the deadline has passed, nobody can see and modify your code before the end. All the hardcore competitors (and who else is left by now?) are aware of this. They’ve reached deep into the shot locker for their last tricks. Now they are slowly circling the submit button, waiting… waiting for the moment to blaze away. I’m picturing the ships of the line at Trafalgar drifting slowly toward each other, almost within range. The slow match is burning. All is silent.

Good luck!

Amitabh wins the Best Result prize

Just before midnight last night, Greenwich Mean Time, Amitabh Verma submitted All Guns Blazing. Using 174 seconds worth of CPU time, it cruised limbo-style beneath the timeout limit, generating a world-beating result of 65558057, the best seen up to that point. Magnus S. has since bettered that with an impressive 65492821, but Amitabh takes the Best Result prize, since the timing deadline was for end-of-day November 7th.

Congratulations Amitabh on your second prize for this contest!

Remember that midnight tonight (UTC) is the deadline for the Square One Challenge. Mark your entry with the naming sentinel SOC to be eligible. For more details, refer to the earlier blog post.

The MATLAB Programming Contest is a semi-annual competition where contestants submit MATLAB code to try to solve a challenge.

These postings are the author's and don't necessarily represent the opinions of MathWorks.