Richard Hamming famously used to ask his colleagues at Bell Labs this question: “What is the most important problem in your field, and why aren’t you working on it?” To which they probably replied, “Look, Dick, it’s eight-thirty in the morning. I haven’t even had my coffee yet. Who starts a conversation like that?”

Still, it’s a good question, isn’t it? For me, the answer is obvious: “Is there a general method for induction?” Now, you might think that the human race has a pretty good handle on induction, what with the scientific method and statistics and all that. But no: there’s a gap in the very foundation of our understanding, a gap we can only cross occasionally and haphazardly.

Hume called it the problem of induction; a catchier name is the No Free Lunch theorem, although it’s about as far from being a “theorem” as it’s possible to get. And it is simply this: there is no general, systematic way to go from observation to understanding.

If you haven’t encountered it before, it’s likely you don’t see what the big deal is. Don’t we all do this all the time, without even thinking about it? We do, but we don’t know how we do it, which means we don’t know how to teach it, how to automate it, or even if we’re doing it right.

What’s needed is a simple, concrete example which illustrates the idea without any particular need for mathematical sophistication. I’m going to give just such an example, show how various algorithmic approaches fare, and try to explain the unavoidable trade-off at the heart of the problem.

If all goes well, you’ll not only learn something important about one of the most fundamental unsolved problems out there, you’ll have developed a practical intuition that will help you understand, for example, why François Chollet introduced the ARC-AGI benchmark, why AI researchers keep talking about world models, and what it means to say the transformer architecture hits a sweet spot for language models.

The Game

Let’s start with a bit of nerd folklore, traditionally passed down by a friend who knows the trick and judges you to be the kind of person who will enjoy it. I’ve replicated the experience as nearly as possible here. You don’t have to solve it, necessarily, but you do have to make an honest effort if you want to fully grasp the underlying lesson.

'); import('/demos/rose-petals/widget.js') .then(module => module.loadRosePetalsWidget('#rose-petals-widget')) .catch(error => { console.error('Unable to load Rose Petals widget.', error); document.getElementById('rose-petals-widget').hidden = true; });