Well I think we now know how this works. I think rule 30 is a great example. When we build stuff, we operate according to fairly narrow sets of rules that let out current science and technology understand what's going on.
But nature is under no such constraint. It uses all kinds of rules from around the computational universe. That means, like in rule 30, it can sort of effortlessly produce all the complexity that it wants. After I started building mathematically, my kind of power tool, I spent about a decade using it to try to understand the implication of it for kinds of science. Indeed, there are lots of long standing problems in physics and biology and elsewhere in science that once starts to be able to crack. That's very exciting.
It's one thing to understand something about how nature works, but how about building stuff for ourselves? How about technology? Well there's something very interesting here. You see, mostly in technology what we do is to try to construct stuff step by step always making sure we can foresee what's going to happen. That's the traditional approach in engineering. But once we've seen what's out there in the computational universe, we realize there actually another possibility. We can just mine things from the computational universe.
In a sense, the whole idea of technology is to take what exists in the world and harness it for human purposes. That's what happens when we take materials that we find out about, whether it's magnets or crystals, whatever. We find technological uses for them. It's the same in the computational universe. Out there, there are things like rule 30, that behave in remarkable ways and that we can effectively harness to make out technology. Rule 30 is the great randomness generator. Another rule might be great for some kind of network routing, or image analysis, or whatever.
As we've developed Mathematica [For those who may not be acquainted with the software Mathematica, we include a short video of Version 8. If you cannot see the embedded video, here is the link: http://youtu.be/HQAVb-P2xEk] and even more so Wolfram Alpha, we've increasingly been using this idea.
Mining The Computational Universe
Not creating this by explicit engineering by the kind we normally think of, but instead mining it from the computational universe. In effect, searching zillions of possible simple programs to find ones that turn out to be useful to us. Now once we have these programs, there is no guarantee we can readily understand how they work. We have someway of testing that we they do is what we want, but their operations can be as mysterious and look as complex, as what we often see in nature.
So it's been interesting in the last few years, watching the advance of this idea of mining the technology from the computational universe. It's not too easy to trace everything that's happening but in more and more places, it's catching on. My guess it that in time, this approach, this sort of new kind of technology, will come to dwarf all the is produced by all that step by step traditional engineering. It's not just technology that's involved.
Here's an experiment that we did a few years ago in the artistic domain. Scanning through lots of rules in the computational universe to find ones that create music in different styles. In a sense using the fact that there's an underlying rule and logic to each piece, but yet as a result of rule 30 type phenomenon, there's complexity and richness that we as humans respond to.
Actually, it's funny, I had thought that a big thing about humans is that they're the creative ones, computers aren't. But actually I keep on hearing from composers and so on, that they like this site, because it gives them ideas, inspiration for pieces. So, out there in the computational universe there's in effect a whole sort of seething world of creativity ready for us to tap.
It's interesting how this sort of changes the economics of things. Mining the computational universe, make creativity cheap. It means we don't have to mass produce we can mass customize. We can sort of invent on the fly on a mass scale. Actually, there are things coming for example in Wolfram Tones that will make a very direct use of this. [If you would like to see a short video on this software for generating musical styles, here is the link: http://youtu.be/t3Z9hfm0pPY]
I wanted to go back to world-views a bit, because there's some development in my world-view that I have to explain, to talk about things I'm expecting might happen in the future. How can we understand this sort of remarkable phenomena that we see in rule 30 and in lots of other places? From my explorations in the computational universe, I came up with a hypothesis that I call the principle of computational equivalents. So let me explain it a bit.
|principle of computational equivalents|
When we have a system like rule 30 or like the system here, like something in nature, we can think of it as doing a computation. In effect we feed in some input at the beginning, then it grinds around and eventually out comes some output. The question is how sophisticated is that computation?
Well we might have thought that as we make the underlying rules for a system more complicated, the computations it ends up doing, would somehow be progressively more sophisticated. But here's the big claim of the principle of computational equivalence, that that isn't true. Instead after one passes a pretty low threshold, and one has a system that isn't obviously simple in its behavior, one immediately ends up with a system that's doing a computation that's as sophisticated as anything.
So what that means is that all these different systems, whether it's rule 30 of it's a fancy computer, or a brain, they're all effectively just doing computation that have the same level of sophistication. So there's an immediate prediction then from the principle of computational equivalents. There's this idea of universal computation. It's really the idea that launched the whole computer revolution, due to Alan Turing and friends. You might have thought that every time you want to do a different type of computation, you'd need a different system, a completely different system. But the point of universal computation is that you can have a single universal machine that can do any type of computation. That's what makes software possible. That's the foundation for essentially all computer technology today.
The principle of computational equivalence has many implications. One of them relates to universal computation. It says that not only is it possible to construct a universal computer, but actually it's easy. In fact, pretty much any system whose behavior isn't obviously simple, will manage to do universal computation. One can test that. Just look for example at these simple programs like rule 30, and see if they're universal.
We don't yet know about rule 30 in particular, but we do know that for example, a program very much like it rule 110 is universal. A few years ago we found that even among the Turing Machines, the very simplest one, that shows not obvious simple behavior, but still has a very simple rule, is also universal. Now we might have thought that to build something as sophisticated universal computer we'd have build all kinds of stuff. We, in effect, have to have this whole civilization that figures out all of these different kinds of things. But actually, what the principle of computational equivalents says and what we found out is true, is that actually out there in the computational universe, it's really easy to find universal computation. It's not a rare and special thing. It's ubiquitous. For example, it would be easy to mine from the computational universe, say for the particular case of practical importance, making molecular computers for instance.
We will continue with Stephen Wolfram's lecture in our next installment in this series.