April 22, 2023•1,247 words
There are three separate dimensions to any dynamic environment: complication, complexity, and chaos1. I'm going to explain what these dimensions mean, and why it's so important to keep track of them, in this post, and if you're willing to read on and bear with me, I'm eventually going to apply them to make some statements about "AI" and the limitations of the future impact of algorithms and binary computing in general.
- Complication is when a system follows a large number of specific rules.
- Complexity is when a system's dynamics are defined by the interlocking interactions between rules, though the rules themselves may be few and/or simple.
- Chaos is when the rules or parameters defining a system's dynamics are unknowable, unquantifiable, or immeasurable in advance, and so any model of the system is unable to fully predict its dynamics.
To keep things clear, I'm going to explain what I'm talking about with games as examples, but note that any kind of dynamic system can exhibit these dynamics, and the implications are far-reaching.
We'll start with a game that exhibits none of these qualities -- Tic-Tac-Toe. We can call this a simple system. The rules are few and straightforward, and even very young children can learn and understand them fully. There is no degree of random variation or chance, and the optimal strategy can be easily explained to the point where nobody can improve on it -- if two players who both apply the optimal strategy face each other in tic-tac-toe, the game is guaranteed to end in a draw. This makes it an attractive game for young children (who are learning about the theory of games) or for various types of computing/game theorists (who need toy problems to optimize against or study exhaustively) but obviously there is little demand for competitive play or any kind of serious "scene".
The popular drinking card game Kings makes a great example of a complicated game. Each turn, a new player draws a card, and must perform some action based on the specific card drawn. Each card denomination has its own associated rules, and some cards start what are essentially minigames of their own, with their own rules. In addition to all that, drawing a king allows any player to make up a new rule that will be in effect for the rest of the game! However, as long as a player has memorized the rules, playing optimally is simply a matter of paying enough attention to complete every action requested by a fresh card.
By contrast, Chess is a complex game. The rules are generally straightforward and intuitive, beyond a few that apply in strange (and rare) edge cases, so it's perfectly possible for a normal person to pick up a working familiarity with the rules in an afternoon or so. However, the best chess players spend years or even decades studying, practicing, and theorizing about the game. Though the official rules of chess fit comfortably in a 25 page pdf, hundreds if not thousands of books have been written about tactics and strategy in the game, and new ones are always coming out. This is because the apparent simplicity of chess's rules conceals a wealth of detail in the implementation -- the interactions between rules, and the sheer size of the "possibility space" of available actions in most situations, are signs of a system with great complexity emergent from its dynamics.
For a chaotic game, we can turn to an old classic -- the Cooper's Hill Cheese Race from Britain. The rules are as simple as can be -- chase the cheese tumbling down the hill, and win by (rarely) catching it or (more commonly) crossing the finish line first (optionally, participants can also try to avoid injuring themselves or others on the hill, but if they really cared about that, they'd just watch instead). However, it is impossible for any observer to predict the outcome of any specific race in advance, much less the details, or the specific course of any participant or even of the cheese itself. Why is this? It's because the level of potentially relevant parameters greatly exceeds the amount of detail that any observer (or participant) can feasibly measure. Anything from the specific level of moisture on any given patch of grass, the specific pattern of wear on any contestant's show, the detailed geometry of the wooden casing protecting the prize cheese, or the mental and emotional state of any contestant could provide a significant contribution to the final result.
Why does all this matter? It matters because not only are these three distinct dynamics, no one of them is easily reducible to a state of any of the others. For example, chess players spend a great deal of time and effort memorizing "openings" -- somewhat pre-scripted ways to start a game with a powerful position. In some ways, this is an attempt to turn a complex system, with myriad possibilities for any turn, to a complicated one--a single series of ideal moves. But as any novice player quickly finds out, it's not enough to just memorize the opening and go from there, because any opponent with a superior knowledge of the theory of the game can disrupt or counter your moves. To prevent that, you as the player must also approach the full complexity inherent in the game, and stay flexible and adaptable in order to protect against any unexpected threats and exploit new opportunities.
Similarly, a chaotic system cannot be reduced to a complex one. For example, imagine trying to build a computer program that could accurately simulate a cheese race and provide advance details of the outcome, right down to who wins, what path the cheese takes, and even who ends up with which painful injury. The number of variables at play would be insane! You'd need to accurately account for details like the specific effect of the 3 strong ales that one participant pre-gamed the race with on his mental state, or the kinetic friction of another participant's shirt against the grass as she tumbles down the hill. To get something approaching accuracy, you'd just about have to account for the starting state of every atom in the vicinity, and run a fully detailed physics simulator over the entire timespan of the race. And if you missed some details, or your simulator wasn't capturing reality in the right way, you could still end up significantly wrong!
Ultimately, of course, the real world itself provides such a wealth of intricacy and detail that it is a chaotic system--in fact, the most chaotic system we know of! Acting within it therefore necessarily involves navigating a fair amount of uncertainty and ambiguity, and because no model of real events can ever capture its full intricacies perfectly, no model can hope to accurately simulate real-world phenomena to a perfect level of detail, and over time any creeping error and uncertainty will overwhelm the model's ability to make specific predictions. This has important implications for the future of computing in general, as I will be exploring in upcoming posts. Stay tuned!
I'm going to use some very specific definitions of these words, that aren't necessarily in line with their dictionary definitions or any of their uses elsewhere as scientific terms. Just to make things clear, this isn't to quibble or redefine any existing concepts, but I need these words to refer to the concepts I'm talking about here, so I'm taking them. ↩