Machine Learning Mario

Machine learning is fun. After all, it allows a computer to "learn" how to solve some problem (e.g., clustering movies) without being explicitly programmed to solve that problem. It can even make Mario without actually making Mario!

Indeed, read up on how Adam Geitgey of Groupon used machine learning to make his own levels for Super Mario Bros., a la Super Mario Maker itself, focusing particularly on these sections:

Answer the below in mario.txt.

Questions

  1. (3 points.) What does it mean for an algorithm to be "stateless"? In what sense is autocomplete, as implemented in Google Keyboard on Android or QuickType on iOS, stateful?

  2. (2 points.) Consider an original level from Super Mario Bros. and a text representation thereof like the below:

    Apparent in the text representation are a number of patterns. For instance, at the bottom of most columns of text is a =. Identify two (2) other patterns in the text representation that a (good) machine-learning algorithm should recognize once trained.

  3. (2 points.) Suppose that you’ve implemented as your final project your very own search engine using the very same algorithms that Google itself uses. Why might Google’s search engine nonetheless be much better than yours, even with identical algorithms?

Debrief

  1. Which resources, if any, did you find helpful in answering this problem’s questions?

  2. About how long did you spend on this problem’s questions?