Computational Challenge: Master Virtual Foosball
|David Fan and Bob Adolf (left and center, seated at laptops) were second-place finishers in the IACS Computational Challenge. For the final challenge, students were tasked with designing a program to play foosball. Courtesy of Rose Lincoln/Harvard Staff Photographer|
On the surface, it might appear that evacuating a major city following a natural disaster and playing foosball have little, if anything, in common. For students participating in the Institute for Applied Computational Science (IACS) Computational Challenge, however, both are problems that can be tackled with some clever coding.
Part of ComputeFest, a two-week program hosted by the IACS within the Harvard School of Engineering and Applied Sciences (SEAS), the Challenge offers students from across Harvard the chance to flaunt their mathematical and computing skills by trying to build the best solution to a given problem, or a strategy good enough to win a 10-round tournament.
This year, they had just two days to do it.
In last year’s challenge, the first, students were challenged to design a system to evacuate thousands of Cambridge residents through debris-choked streets following a natural disaster. That competition played out over 10 days. For last week’s challenge, students were tasked with designing a program to play foosball.
To determine who did the best job, eight teams of programmers gathered at Maxwell Dworkin to let their programs duke it out.
As students hunkered over laptops to watch the games, the tension was punctuated by exclamations and high fives from the winning teams, while losers worked feverishly to fine-tune their code before the next match.
The team of James Damore, a second-year Ph.D. student in systems biology, and Bo Waggoner, a second-year Ph.D. student in computer science, was declared the winner after more than an hour of competition. The pair received iPad minis as prizes, while the runners-up received external hard-drives.
“I really like games, and the combination of mathematical, computational and strategic caught my eye,” Damore said, explaining what attracted him to the challenge.
He and Waggoner first modeled the game as though none of the players were able to move. Once they found the optimal strategy for those conditions, “we just put our players in a peak distribution, and our strategy was to just have one player chase the ball on top of that distribution.”
For Waggoner, the challenge was a chance to exercise coding skills in a fun, unusual way.
“I’m a grad student, so I’m not taking many programming classes. So, it was fun to practice that skill,” he said. “But we don’t feel like we’ve solved the game by any means. On another day, we might not have won.”
The foosball competition was developed by Cris Cecka and Pavlos Protopapas, both lecturers in computational science, and was intended to offer a slightly different challenge from last year’s event.
“Last year, we had a problem that was very difficult to solve,” Cecka said. “We wanted this one to be more engaging and attract more people. I’ve developed game AIs before, and enjoyed doing it, so I thought it would make for a great competition.
“One of our goals was to make the solution space wide open,” he continued. “I wanted raw computation to be one answer to the problem, and I wanted really good probabilistic analysis to be another.”
For Miriam Huntley, a third-year Ph.D. student in applied physics, the challenge was a worthwhile skill-building exercise.
“This is a good way, first of all, to practice the computational skills I use in the lab, because I code a lot,” she said. “But this also provides a good incentive to hone your skills in a high-pressure situation, and it’s just fun!”