I recently had a conversation with an artist friend, discussing her creative process. She described how one of the tools she often starts with is to start asking questions about what she’s looking for. “Is it a fish?” is a humorous question she often starts with – it’s easy to answer (almost always no) and it’s at least a place to start in narrowing things down. The hard part of this method – as we both acknowledged – is in finding good and relevant questions that are effective at narrowing down possibilities, and especially questions that are uncorrelated from each other – “is it a fish?” and “does it swim?” might technically be different questions that sometimes give different answers, but answering one almost answers the other.
Each successive question narrows the range of possibilities. This is also a matter of information gain, which operates on a logarithmic scale. Uncorrelated questions can narrow possibilities exponentially, though can sometimes be hard to find. An idealistic case might be a binary question where half the solutions answer yes and the other half answer no. Assuming a sequence of such ideal questions, the game “20 Questions” should be able to narrow down to one of a million possibilities.
There are many different systems – information, design, art, engineering, software, literature, and so on – where possibility spaces are exponential in size. These kinds of questions can be asked a tremendous number of times while still leaving a tremendous number of options available.
32 bytes of information has more configurations than there are atoms in the universe. Every additional byte added multiplies that number by a factor of 256. This sentence, encoded in ASCII, takes 48 bytes. The numbers here get unfathomably vast extremely quickly, calling such numbers “astronomically large” is giving way too much credit to astronomy.
Questions are also constraints. A problem will impose constraints on what constitutes a valid solution. This limits possibilities in the same way that these questions do. Adding more degrees of freedom grows the state space exponentially, and adding constraints shrinks it exponentially.
Tendency Toward Complexity
There is a tendency to engineer very complicated solutions to problems. Simplicity is usually preferable, but complexity often is unavoidable and creeps in anyway.
If we place an upper bound on the complexity of a solution, it limits the total space of solutions. If there are a trillion solutions, but we ask a mere 40 binary questions, then we’ve narrowed the space down by about a factor of about a trillion and it’s likely that only a single solution satisfies all of our constraints. In practice, this tends to be more probabilistic – as mentioned, perfectly binary constraints/questions are an ideal case, and avoiding correlations between constraints can be difficult, and some constraints are a bit more lopsided where answering one way narrows things down by much more than half. Narrowing down the space like this, there may be many more than one left, or it may be none at all, depending on the exact interactions and correlations of the constraints. But it should on average be about one.
This explains complexity – as we apply more constraints to a finite possibility space, solutions get exponentially less abundant until none remain at all. If we add more complexity, we can buy some possibilities back.
Of course, we also need our constraints to lead us to solutions well. We can simply assert a list of constraints, and there may truly be solutions that satisfy them all, but finding these solutions can nonetheless be like finding needles in a haystack.
Finding solutions that satisfy a single constraint can often be easy, and constraints with a similar structure can often be compatible with each other in a way that makes finding solutions easy. In general however, finding solutions that satisfy many constraints can often be almost as hard as randomly searching for them, and when you’ve narrowed possibilities by a gigantic amount, this can make finding solutions similarly difficult. One simplified way of looking at this is through the perspective of Abstract Domains and Galois Connections, though that’s a complicated subject for another time.
Finite, Real-World Cases
Sometimes you have a problem that is less of a design problem and more of a search problem, in the sense that the options you’re sorting through already exist in the real world. There are undoubtedly some magnificent lost ancient texts preserved in the Herculaneum scrolls, but we can also be certain that there will be no shortage of significant works that are lost for good. We could perhaps place a few simple constraints, and by a numbers game – there are likely a couple thousand scrolls total in the ruins – find many different ancient texts that fit a short list of random constraints. However, if we get too specific, if we add too many constraints, the odds that a particular thing that we hope to find there quickly becomes very unlikely.
There are also background and sampling biases - in this case, the ancient library was owned by an Epicurean philosopher, and many of the texts that have already been read are on specifically this branch of philosophy. Texts on unrelated subjects almost certainly exist in the library, but may be in the minory. Good initial, near-binary questions for narrowing down texts in the library may be less like “are you looking for philosophy, science, or history?“ and more like variants of “what branch of Epicurean philosophy are you looking for?”
32 bytes, a mere 256 bits, has more configurations than atoms in the universe. Anything made from atoms will necessarily exist in a quantity far fewer than this. If you have a couple hundred binary constraints, you likely could search the entire universe for the item you seek and come up empty-handed.
Shaping Rocks and People
Rocks of different shapes may be suited for different uses as tools. While rocks may be extremely abundant on Earth, they are in finite supply, and of course vastly smaller than the number of atoms on Earth, which itself is vastly smaller than the number of atoms in the universe. A few dozen binary constraints on the shape of a rock that decide its use as a tool could easily exhaust the entire Earth’s supply. If you are looking only at rocks within walking distance and close to the surface, expect to be able to place fewer constraints. And if your constraints are tight enough, good luck searching all that area for just the right rock, and good luck finding a new one should you ever need one again. Early humans who wanted better tools could thus not rely on simply seeking out a rock of the right shape, they were forced to shape the rocks themselves.
If anything, the deeply human trait of “tool use” has much less to do with applying nature as we find it to solve our problems, and much more to do with engineering and shaping what nature provides us to better solve our problems. Primates are occasionally seen using sticks and stones as tools, but shaping the sticks and stones to create better tools is certainly a much more meaningful step that is less often observed.

There are many different changes that can be made to an object. The range of things that object has the potential to be transformed into with the right sequence of modifications is vastly larger than the single object it is at the present moment, and this buys a far greater constraint budget.
8 billion people may sound like a lot, but it only takes a mere 33 binary questions to narrow a search to a single person. If you have a few constraints that are uncommon, if you’re looking for someone who’s a one-in-a-hundred person in a few different ways, it might only take four or five such constraints before not a single person is left assuming the constraints aren’t correlated.
Dating apps that have framed modern dating as merely filtering for a perfect person are probably less effective than old-fashioned approaches where two people in the same town simply paired up and made things work. Big cities might provide the illusion of high optionality, but certainly cannot provide exponentially higher optionality. Despite the vast majority of human history lacking birth control, dense urban centers historically have almost always had much lower fertility than more rural areas.
Computational sorting may improve options and reduce incompatibilities, but there’s a very hard limit on how picky people can be, and unless your standards are particularly low you can expect it to be difficult to find someone without any need for adaptation. People also change over time. Eventually if your standards are high enough, your only option is to find someone close enough and make things work. It’s probably best to find someone who’s as close as you can to what you’re looking for and fix whatever incompatibilities that remain.
There is also great interest today in reshoring a lot of manufacturing. This fundamentally requires creating many new industries and businesses that require skillsets that are currently not in great abundance. Not even an AI-accelerated job board website with a billion dollars in VC funds would make a dent in this problem - a company that requires very niche skills may quickly exhaust the world’s entire supply of experts. At some point a training program is the only solution.
If you’re picky, you can only lean on the outside world to solve your problems for you for so long. Solving problems by shaping the world yourself is the most human way forward.
A lighter and less technical article today for Valentine’s Day I guess.