In the early 60s Edward Lorenz was working on one of the first computational weather prediction models. Many of the early explorers, new to computer programming, were getting bitten by limits of the machines and software. Lorenz, the story goes, was running a numerical computer model to redo a weather prediction from the middle of the previous run as a shortcut. He entered the initial condition shortening it in a way he didn't think would matter given the accuracy it was measured to (say 0.504 rather than 0.504103)
"At one point I decided to repeat some of the computations in order to examine what was happening in greater detail. I stopped the computer, typed in a line of numbers that it had printed out a while earlier, and set it running again. I went down the hall for a cup of coffee and returned after about an hour, during which time the computer had simulated about two months of weather. The numbers being printed were nothing like the old ones. I immediately suspected a weak vacuum tube or some other computer trouble, which was not uncommon, but before calling for service I decided to see just where the mistake had occurred, knowing that this could speed up the servicing process. Instead of a sudden break, I found that the new values at first repeated the old ones, but soon afterward differed by one and then several units in the last decimal place, and then began to differ in the next to the last place and then in the place before that. In fact, the differences more or less steadily doubled in size every four days or so, until all resemblance with the original output disappeared somewhere in the second month. This was enough to tell me what had happened: the numbers that I had typed in were not the exact original numbers, but were the rounded-off values that had appeared in the original printout. The initial round-off errors were the culprits; they were steadily amplifying until they dominated the solution." 1
Small changes to an input that was iterated many times created a big change in the output. He presented it at a conference causing someone in the audience to comment a single flap of a seagull's wings could change the weather forever. Lorenz started using that in his talk changing it to the more poetic single flap of a butterfly's wings in Brazil setting off a tornado in Texas.
The image resonated with many existing notions about complex systems including science fiction where a time traveler steps on a bug and returns to a vastly changed future. From there it has managed to become an embedded concept - usually used to describe chaotic and large inefficient systems. The problem is it isn't always true. In fact it's usually false.
Chaotic systems are often less sensitive to change than other systems. Run a stream of water in your sink. The motion in the flow is extremely chaotic - no computer could keep up with the details. Stick your finger in for a second. The overall flow changed while your finger was present, but quickly returned to its normal chaotic level almost immediately after you took it out.
The climate system is extraordinarily complex. Predicting weather in advance has made incredible progress thanks to better models, hardware, and software. It turns out there's probably a limit to how far models can predict based on fundamental changes in the atmosphere. They aren't butterflies. Butterfly wing flaps are quickly dampened out by thermal motions of the surrounding air. To make a change you need big butterfly - a really big butterfly .. the equivalent of several massive thunderstorms taking place in areas you can't predict ahead to the necessary accuracy. A butterfly flap equivalent of several thermonuclear explosions.2
Inefficient complex systems tend to heal themselves. The Internet, the way food used to be grown and distributed .. almost any large scale process before it was made "efficient" .. tend to be much more robust than efficient systems where "wasteful" redundancy has been removed. I worry we're witnessing some of that now as the result of a large perturbation to numerous systems.
People often come away with the idea that you can manipulate a large complex system if you only can figure out what breed of butterfly to use and exactly when and where to turn it loose. It's a fool's errand. Instead you need to study these systems to learn if it is possible to steer them and how you might do it. The real insight may be you need to change the system itself rather than its inputs.
The same is true for complex efficient systems. A very small change can crash them. High efficiency can be the enemy of robustness. Of course systems can be too inefficient - the trick is to find the right balance to build robust systems.
________
It's easy to build simple systems where butterflies are very effective. Lorenz's weather program was simple and easily influenced and it's really easy to find simple expressions that are hair trigger sensitive.3
__________
1 E. N. Lorenz, The Essence of Chaos, U. Washington Press, Seattle (1993), page 134
2 a few times 1015 J - several hundred kilotons to one megaton. A large thunderstorm is in the ballpark.
3 I won't spell it out, but if you're comfortable with differential equations consider y'' - y = 0 (say y(t) is position as a function of time) with the initial conditions y(0) = 1 and y'(0) = -1. The solution is simple and predictable.
Now imagine you have a measurement error and y'(0) = -1 ± ε where ε is small. Different, eh? :-)
Comments