The State of NKS in 2006
This talk was given as the keynote at the NKS 2006 Conference in Washington D.C.
I'm pleased to be with you all here today. I think this is going to be a very interesting three days. I'm looking forward to it. And this year we've still got a small enough group that we can all meet at least a fair fraction of people here. Which is nice.
Well, it's now four years since I published the NKS book. And 25 years since I started working on the science that's in it.
But it's definitely still early days for NKS. We're still early in the NKS paradigm shift.
The turbulence of the very beginning is dying down. And now we're starting the period of progressive steady growth.
There's a huge amount going on. In all sorts of different areas. By all sorts of different kinds of people and organizations.
I think things are going really well. A couple of papers a day get published about NKS-related work. And they're getting better and better.
It seems like more and more people are starting to really understand what NKS is about.
I think the picture of what NKS means, and how it's going to develop, is getting clearer and clearer.
I think this morning I'd sketch a little of what I've seen. And there'll be a lot more to see at the rest of this conference.
So where should we begin? Well, at the core of NKS is a new field of basic science. Concerned with exploring the computational universe.
For me it started with the experiments on cellular automata that I did nearly 25 years ago. Taking the first steps in the computational universe. Systematically enumerating the simplest possible programs.
And seeing what they did.
And pretty soon discovering things like rule 30.
That completely violated my intuition. And gave us a first hint of the richness of what's out there in the computational universe.
It must have been fun a few centuries ago when people were exploring the earth. And finding all sorts of strange life and strange geology.
Or when people first got to use telescopes to see what's out there in the astronomical universe.
Well, in our times we get to explore something in many ways much bigger: the computational universe.
And this is the core of NKS: to make a science based on that.
It's in some ways like a natural science: it starts by just going and seeing what's out there in the computational universe. Recording the strange and wonderful things we see. Developing the best methodologies. Classifying what can happen. And then deducing general principles. And gradually building up a whole intellectual framework.
Well, these are the stages that most of the successful sciences have gone through. And I have no doubt that one day the core of our science will be just like a physics, or a chemistry, or a biology today. With a certain collection of key phenomena, principles, and methods.
It's really exciting to be seeing a science at this stage. And to be involved in it.
Years ago I wasn't sure how this would all work out. But now I feel a complete inevitability about it.
The computational universe will be explored. A great science will be made of it. And it will be a defining feature of the history of our intellectual development.
Like mathematics, the intellectual core of all this is something quite pure. Something that can be investigated for its own sake, within its own intellectual structure, and with its own achievements.
But from this pure core come all sorts of applications—that I think are going to have dramatic effects.
I think there are really four kinds of applications: models, technology, creations, and concepts.
And all of them we're seeing lots going on with—and we'll see lots at this conference.
Let's talk a little about models. They're really what got me started studying NKS in the first place.
I wanted to be able to explain and understand things in nature and elsewhere. To decode how all this complex stuff we see works.
And it didn't take long to get excited about this. Because when one explores the computational universe one almost immediately starts to see all sorts of amazing things—that look incredibly like things in nature that one's never known how to explain before.
But making models is a tricky process. One might think there's always just one right model and all the others are wrong.
But it doesn't work that way. A model is an idealization. And whether one thinks a model is right depends on what one's choosing to look at, and what one's choosing to ignore.
In the mathematical traditional of science, one's typically focusing on numbers: can we make a model which'll agree with such-and-such a number about our data?
But particularly when one's looking at more complex behavior, individual numbers are a pretty bad way to characterize what's going on. One really needs a new framework for thinking about models, and modeling.
There are a few parts to it. First of all, one of the great lessons of NKS is that simple models can work—even when what they're explaining seems very complex.
Insisting on having a simple model is a great way to be more honest about modeling. You set things up so that you only put a little bit in, but you get a lot out. You don't get to patch your model—so that in the end you don't get out any more than you put in.
And when you're dealing with simple models it's usually in a sense a lot further from one model to another: so you're either going to get the right answer, or a very wrong answer.
Another big lesson of NKS is computational irreducibility: the idea that even given a set of rules—or a model—it can take an irreducible amount of computational work to find out the consequences of the model. So this means we end up having no choice but to investigate our models by simulating them.
But it also means that we don't get to reverse engineer the data to find our models.
And I suppose one of the commonest questions about NKS is this. In my book, and in lots of papers people have written, there are nice examples of NKS models for all sorts of systems.
But then people say: OK, so this is all very nice. But I have some data: how can I find an NKS model for it?
Well, finding models is hard. It always has been in science. And NKS now shows that at some level it kind of has to be.
I mean, we have ideas like statistics, that take families of nearby models, and tell us how to find the ones that are best for fitting our data. But nothing like statistics—or even neural nets or genetic algorithms—is going to let us really be creative in finding models. It's just going to tell us the model that's the best fit with a particular structure.
Well, with NKS, we have a bizarre new way to find models. The key is a core NKS fact: that even very simple programs can do complex things. So that means that when we see a complex phenomenon, it's not impossible that there might be a simple model for it. Simple enough that we could find it just by searching for it in the computational universe.
And that's something new we can do in NKS: just look in the space of—in a sense—all possible models, and search for one that corresponds to what we're interested in.
From the point of view of traditional science, this seems kind of crazy. I mean, nobody would ever find all those partial differential equations just by searching the space of all possible models. But if the models are simple enough that one can enumerate them—well, then one can really progress. And I'll talk a bit later about some places where really interesting things are going on with this.
It's kind of interesting, though, to see the way people respond to this stuff. It seems kind of weird and unscientific to have an actual procedure for doing science.
I mean, people are getting used to the idea that one can use genetic algorithms or something to find models for messy real-world situations. But for basic physics? Surely there can't be a systematic way of finding models for that?
And if you do find a model by using a systematic method, surely it can't be built from the "right stuff." I mean, everyone knows that planets solve differential equations to work out where to go.
Of course they don't. It's just a description. Like a cellular automaton would be.
And one of the things that's happening is that slowly people are realizing that things like cellular automata—and other simple programs—really can be reasonable models. It's kind of a social process. People have to get comfortable with a certain form of description.
It's like mathematical proofs. Which are supposed to be ever so objective. But really are about trying to explain to people—in terms they accept—why such-and-such a theorem is true.
Partly what'll really drive the acceptance of NKS models is people knowing more about pure NKS—being more comfortable with the kinds of things that happen in the computational universe.
But ultimately the test of any model is whether it explains or predicts the things one's interested in.
And as the character of models changes, the expectations about that change too. I mean, modeling has really been dominated by the "let's get the numbers right" philosophy of calculus.
But there are plenty of places where that's pretty obviously not the point. When one tries to model an explosion for computer graphics, it's not relevant whether there's the right exponent in the energy cascade. The question is: does it look right? This kind of thing comes up all the time in biology and in the social sciences. We know there's some phenomenon or another. We want to figure things out about it. But we have no way to characterize it with numbers.
Sometimes people have found ways to do things with numbers. In economics, for example. Or, more recently, in medicine. And then that's what every model concentrates on. Even if doing that misses some of the bigger phenomena.
Well, so with NKS—and with this bizarre idea of searching for models—we can do something better. And I think from this we're seeing the very beginnings of some major redefinitions of fields. Where—with methods from our science, rather than from math—we get to ask some different kinds of questions. And get some different kinds of answers.
I'll come back and talk about what's happening with models in particular fields a bit later. But let me now turn to an area that I think is really exciting for NKS right now: technology.
I think with NKS we get to define not only a new kind of science, but also a new kind of technology.
So what is technology? Well, it's about taking things we can find—say in nature—and applying them for our purposes. Like taking liquid crystals, and using them as displays. Or taking hydrodynamic effects, and using them for flight.
Well, now we get to mine the computational universe for things we can use. Searching for programs that achieve the objectives we want.
Sometimes we'll implement those programs as algorithms in software. Sometimes we'll implement them as procedures for humans or machines to follow. And sometimes we'll implement them as structures for atoms or something.
Technology as it's practiced today tends to be based on the usual scheme we have for engineering. Of progressively building things up to do what we want to them to do. At each step being able to work out the consequences of what we're setting up.
Well, out in the computational universe it's only some programs that you can work with that way. Only some programs have the kind of computational reducibility that one needs to be able to foresee what they're going to do.
And in a sense the most interesting programs are computationally irreducible: there's no way to shortcut what they do. And in a sense these are the programs that make the richest use of their resources.
Usually when we write programs for software, we're building them up step by step. But there are a lot of other wonderful programs out there in the computational universe that one'll never reach that way.
But if we just start enumerating programs, we can find them. Now, at first it seems completely crazy to think about building software, for example, just by searching for programs. But again it's a core NKS fact that makes it make sense.
The fact that even programs that are very simple can do highly complex and interesting things. Programs that are simple enough that one can find them by just enumerating all possibilities.
Well, I can tell you that there are some terrific programs to be found that way. In fact, there are lots that have been inside Mathematica for years. That we've found by doing searches.
For 18 years we've used my favorite rule 30 cellular automaton as our random generator. And it's good NKS data that it's performed so well. Recently we actually did some big searches that found some other simple programs that work even better for randomness generation in certain cases.
And we've also found programs that we use for hashing, for function evaluation, even for arithmetic operations.
No human would ever have made these things. But they're out there in computational universe. For us to find once we understand enough about that universe, and get the right methodology to do searches for them.
I'll talk some more about technology in a little while. But let me turn to another big application that's emerging for NKS: what one might call automated creativity.
It's been obvious from the beginning that things like cellular automata can make patterns that are artistically interesting. Patterns that we as humans like, and find meaningful... though would never have come up with ourselves.
And in the past couple of years there's been lots of NKS work on generating form for all sorts of creative purposes. The three biggest areas have been visual art, architecture, and music.
Like here's a simple demonstration of making three-dimensional architectural forms from a very simple program. It's just a variant of a standard 2D cellular automaton. But you can see that as you change the details of it, you get all sorts of different elaborate forms.
It's all again just a consequence of the basic NKS fact that simple programs produce rich and complex behavior. That out in the computational universe all sorts of very different things go on.
But it's critical to the forms we make that the rules underneath are simple. And that every part of what we create comes from the same rules.
Because that's what gives an integrity—a coherence—to the forms. They're not just random: they're created in a way that in a sense makes sense—that follows definite rules. Yet even though there are definite rules underneath, the final forms have a certain irreducible complexity—and continually surprise us.
Out in the computational universe, it's as if each program is a different world, with its own unique natural laws. And when we look at the forms each program creates, we're seeing the natural forms those laws lead to.
We're seeing in a sense the beauty of nature—but not nature from of our world, but from all sorts of possible worlds out in the computational universe.
In a sense each world involves different ideas, and creates its forms in different ways. And normally we might expect that it'd take lots of human effort to come up with all those different ideas.
But our science lets us automate that: it gives us the idea of looking at all possible programs—all possible rules for creating forms.
And that really changes the economics of creativity. It makes it easy in a sense to mass-produce custom forms, each with their own particular ideas and nature.
We did a little experiment last year based on that that many of you may have seen. We were thinking about the very practical problem of producing unique ringtones for cellphones and things. And we realized that one could do that by mining the computational universe. In a sense by sampling the musical stories of possible worlds out there in the computational universe.
Here's the site we built.
Each time you press a button it goes out in the computational universe, and tests maybe a thousand possible programs, to find one that fits the musical style you've asked for.
Inside, what it's doing is conceptually very simple. It's picking a cellular automaton rule. And it's turning the pattern the rule makes on its side. And then it's using it as a score, picking out black squares to play as notes.
There's lots of detail in how to pick scales and instrumentation and so on. And that makes quite a difference to how we perceive what it produces. Not every piece that comes out is good. But a surprising number are. Often they're elegant. Inventive. And what's crucial is that they have a certain logic—a certain integrity. Because, after all, they're made from definite simple underlying rules. Where the end of the piece is made with the same rules as the beginning, so in a sense it has to hang together with it.
We'll hear at this conference, I think, some very interesting musical pieces created with this technology. And if you didn't know, I don't think you'd ever guess that these pieces were made with simple programs. You'd think a human had to have created them.
It's like a Turing test situation: I think we've gotten to the point where you can't tell if the music was made by a human or a computer. But what's remarkable—and without NKS completely unexpected—is that it's not just made by a computer. It's made by very simple rules—a very simple program—on the computer.
You know, one of the core principles of NKS is what I call the Principle of Computational Equivalence. That above some threshold, all systems—including us—end up being equivalent in their computational sophistication.
I really liked a comment about Tones made by someone in our community. That after one's heard the music they make, cellular automata seem a lot more like us. In a sense from our experience of art, we're absorbing a core scientific fact.
In time, I think, we're going to end up seeing all sorts of creative forms produced by simple programs. All sorts of things from out in the computational universe.
Well, in the past, in our art we've become used to things like symmetry and repetition. They're a key part of our everyday experience. And we build up quite a lot of our model of the world from them.
But in the future I think we're going to be exposed to many other forms from the computational universe. And we'll end up in a sense absorbing the character of the computational universe from that.
The experiments are just beginning, but I think, for example, we're going to be seeing lots of buildings whose forms were created by NKS methods, from simple programs. And there'll be a certain freshness to these forms. Yet—and this is a crucial part—the forms will in a sense make sense. They'll have a logic to them, because they will have been made from simple rules. And I've no doubt that we'll perceive that logic. We'll find the buildings comfortable and understandable, because, consciously or not, we'll sense their logic. A bit like how in ordinary classical architecture we often sense the mechanical logic of what seem like ornamental forms.
Now of course in creating buildings there's always certain functionality that has to be achieved. And the situation there is very much like in technology—or in modeling. And to find what one wants—to find something that achieves one's purposes—one has to search, to explore, in the computational universe. But the core NKS fact is that this is something one can realistically do. In our Tones project, it could have been that one would have to search trillions of programs to find ones that are musically interesting, and fit certain musical styles. But that's not how it works. The computational universe is rich enough that one doesn't have to go far at all. There's a huge diversity of wonderful stuff to mine even very close to the surface.
Well, OK. At the beginning I mentioned four broad classes of NKS applications: models, technology, creations, and concepts. Let's talk a little about concepts.
Like any paradigm shift, NKS brings up new ways of thinking. Both new kinds of questions. And new, surprising facts about the world. That break one's old intuition.
Like we always used to think if one saw, say, some complex phenomenon that it must have a complex explanation. But now we know that that isn't true.
Now of course it's difficult to absorb an idea like that. I think the best way is to experience it, over and over again. Perhaps by doing one's own computer experiments, and seeing it first hand. Perhaps just by seeing other peoples' experiments, or art, or whatever.
But if one really absorbs the NKS idea that complex things can have simple causes, it has a lot of consequences for one's view of the world. Many of which I think we still have to see.
So what about other NKS ideas? Like computational irreducibility. Or the Principle of Computational Equivalence. Even the idea of definite simple rules for things, that one can enumerate.
All of these lead to changes in our world view—that give us different ways to think about things, and different things to think about.
There's now been a fair amount of work done with NKS on longstanding questions in philosophy. About the nature of knowledge, and being, and free will, and things. And I think there's real progress being made.
Because with NKS we've been able to take problems that for literally thousands of years have just seemed like debates, and cast them in much more definite scientific terms, where we can really start to make solid progress on them.
And when we start thinking in NKS terms, there are lots of much more immediate applications too. There's been quite a bit done now in trying to understand business processes and business structures in NKS terms. Understanding what NKS means for the structure and operation of organizations.
In the past, we've usually thought for example that strategies are things people have to think of. But with NKS we start thinking about enumerating all possible strategies—about sampling the strategies of the computational universe.
And then by knowing pure NKS—by knowing the features of the abstract computational universe—we can start to make general conclusions about the consequences of structures when they or their competitors adopt possible strategies.
It's really a remarkable thing—that has come home for me more and more in the last couple of years: given almost any kind of industry or problem, NKS gives us a new and different way to approach it. Often we have to dig down to the foundations, and look at what the most basic questions are. But then NKS gives us a different way to look at those questions. Or perhaps gives us different questions.
Well, that's what paradigm shifts are supposed to do for one. But it's really working. And I think in the next few years we'll see more and more things coming out of this.
You know, another area where I think it's inevitable that NKS is going to show up a lot is in education. Practically every day someone contacts us about how to do NKS in education, often in elementary education.
It's all sort of a consequence of the core idea of NKS: that one starts from the simplest rules, the simplest programs. And the point is that those rules—those programs—are simple enough that it's easy for kids to understand what they are.
And by now there are lots of five- and six-year-olds who've worked out cellular automata by hand. Then started to explore them on a computer.
It's a pretty interesting situation. A young kid can start exploring the computational universe. And seeing things no one has ever seen before. Noticing things not even the fanciest scientists have noticed.
If the history of science had been different perhaps every kid from ancient Babylon on would have worked out cellular automaton patterns. Just like they work out obscure parts of the multiplication table.
But that's not how the history went. So now NKS is our new fancy science. But as a lot of people have realized, it's perfectly accessible to kids.
It's neat that one can go from filling out a cellular automaton pattern to seeing something like it in the natural world. It makes science look good.
It's also neat that one can make great pictures—or ringtones—with things like cellular automata. It makes science seem like a creative activity—a craft as well as a technique.
You know, mathematics has had a great deal in education these last couple of millennia. I mean, particularly the way lots of systems have gotten set up in the world, there's some basic math that one really, really needs to function in the world.
But there's a lot of math that's taught that's really taught just because it's good to teach something that involves precise thinking. In the Middle Ages, logic was often involved in filling that role. But today it's historically math that's done that.
Well, with NKS we have another choice. In some ways, kid-level basic NKS is like pre-computer science. Bringing out computational concepts. Often, as it happens, in ways most of the grown-ups don't yet understand too well.
Somehow NKS seems to involve the kind of precision that's characteristic of math. Plus the kind of empiricism that's characteristic of natural sciences. Plus the kind of analysis that's characteristic of the successful exact sciences. All in a very pure form that doesn't require learning lots of other technical details.
It's really a very fascinating educational direction. That I'm happy to say a lot of people seem to be noticing.
We don't yet have all the materials and structures in place. But I think NKS is going to be a wonderful base for education for the next generation. At the college level it'll probably enter as the pure end of computational science. And at more elementary levels it'll enter as something like math.
And if it's done right, I think it can be a crucial ingredient in turning around what's happened to a lot of technical education.
Well, OK, so that was a really quick survey of some general ways NKS can get applied. I wanted now to talk for a little while about more specifics about existing fields.
You know, it's really a remarkable thing. I look at issues of Science and Nature and things each week. And a few years ago, it seemed like most of the articles didn't have much of an NKS angle. But now, it's really incredible how many of them have pretty obvious NKS angles.
Two things have happened. First, I've understood more about NKS, and about how it can be applied. But also, I think, many areas of science have been moving in an NKS direction.
As it becomes possible to take more complex data.
As questions get asked in more precise combinatorial ways. As people do more with simulation.
And I must say I always get a little chuckle when in yet another field people say, "It's remarkable that such-and-such a complex phenomenon really seems to have its origin in such-and-such a simple mechanism." Yup, that's what NKS teaches us. And we'll see it more and more and more.
You know, as I look at sort of direct absorption of NKS, it's interesting to see the different time constants operating in different fields. At a rough level, the more mature the field, the slower the time constant.
Fields that are pretty secure with their methodologies, and have identified some definite set of questions that they can successfully attack... they tend to just keep doing what they've been doing. But fields that are in more drastic change—or are just emerging, and don't even have clear names yet—there the time constants are much shorter, and there's much more immediate NKS absorption.
OK, well what about physics, for example? I'm happy to say that—well, after 25 years or so—cellular automata have now emerged there as kind of a standard type of model in physics. Like fields. Or spin systems. Or whatever.
They seem to get used most in situations where people realize that it's worthwhile to look at the actual evolution of things—not just some kind of pure equilibrium condition. And they're particularly popular when there are obvious discrete elements—like grains of sand, or cars on roads, or atoms.
The models mostly still tend to be very much engineered, though. And I haven't yet seen many things like searches for models.
But cellular automata are now definitely established as models in physics. And so for example physics journals routinely publish what are essentially pure NKS investigations about them.
Of course, there are lots of other simple programs than cellular automata. And we're just starting to see some of those become common in physics. A little with substitution and string rewriting systems. A little with network rewriting.
One of the prides of physics of course is quantum mechanics, and people are always trying to come up with quantum versions of NKS systems. I think some of that will be quite interesting in terms of understanding the structure of things like quantum computing. Though I must say that I remain deeply skeptical about the foundations of all that.
Now, of course, perhaps the single greatest modeling challenge for NKS is fundamental physics. Given that we've seen how much can come even from really simple rules, what about the ultimate question: can everything in our universe come from simple rules?
In the book I started analyzing just what kinds of rules those might be. One has to go, in a sense, below space and time, and way below quantum mechanics, I think. To try to see what it could all be built from.
Now, we don't really know just how simple the rules for the universe might be. It's perhaps the most foundational statement of science—or maybe it's theology—that the universe is ordered enough that there can be rules for it at all. It might not be that way. It might be that the rules are so complicated that every particle in the universe just does its own thing. But we know the rules are simpler than that.
How simple? Well, I think it would be embarrassing if the rules are actually simple enough that we should be able to find them just by searching for them, yet we didn't do it.
I don't know, and I think we can't know yet, just how far out in the computational universe our physical universe is. But I've mounted an effort to try to find out.
It's hard work. It requires building a lot of pretty sophisticated technical stuff. The biggest issue is, in a sense, the long arm of computational irreducibility.
When you start enumerating possible rules for the universe, and running them, many of them are obviously hopeless. They have no notion of space. No notion of time. Or some other obvious pathology.
But it's not that uncommon to find ones that just bubble around. You run them a billion steps. And they still just bubble around. Are they our universe? Or something quite different?
Computational irreducibility says it can be very difficult to find out. And to do our best, what we have to do is in a sense to automate the whole history of science.
We have to take our candidate universe, and try to deduce from it its laws of nature—so we can see if they're the same as the ones for our universe. We've slowly been building some very nice technology for automating making the theorems and the analysis for this. And you'll see some of it in the next version of Mathematica.
But I wouldn't be too surprised if somewhere in the searches we've done on our computers we've already got our universe. We just don't know it yet.
You know, in the last few years since I've stopped being a pure book-hermit, I've reconnected with a lot of my old friends in physics, and I've now talked about searching for the fundamental theory with many of today's leading physicists. On the ground, paradigm shifts are quite striking things. We talk for ages about quantum field theory, and it's easy to communicate. But then we start talking about searching spaces of possible rules. And it's immediately deeply, deeply alien to them.
Not to say that there aren't concepts—particularly with the way string theory is evolving—where there should be points of contact. But the point of view—the paradigm—is deeply different.
I won't be surprised if there are some nice pieces of math from string theory that are useful in understanding at least the simpler cases of the kinds of systems I'm studying. But the general approach—the strategy—is way different.
I don't know what will happen in physics if we manage to succeed with the NKS approach. Some of my friends seem worried about that.
But it's just going to be incredibly exciting if we can—kind of—hold in our hands the rules for our universe. I've tried to think through just what it means if we find out that our universe is the tenth one out of all the possibilities. Or the thousandth. Or the quadrillionth. How should we think about that?
Right now, I don't see how to make science out of it. I don't think it's self-fulfilling that our universe must be simple in the enumeration we come up with. But universality says our universe must be somewhere in the enumeration.
The question is where. And it seems like a question—perhaps the question—of natural science to find out where.
Moving on from physics, let's talk about biology. It's at times made me very nervous, but NKS has gotten involved in a foundational question about biology that's been much in the public eye in the U.S.: just how do biological systems come to be the way they are? Is it all Darwinism and natural selection, or must there be something else?
Well, the main obviously scientific issue is that we see all this complexity in biology. Yet it seems far from clear how Darwinism can account for it. In fact, if we compare the artifacts we create with systems in nature, it seems like our artifacts always tend to look simpler. Which might make one conclude that something somehow superhuman and supernatural must be involved in creating what we see in biology.
Well, of course NKS throws something new into all of them. Because it shows that actually it can be very easy to make extremely complex stuff. We're not used to it, because when we build things ourselves, we tend to stick to rules and systems where we can foresee what's going to happen, and where complexity is kind of locked out.
But when we remove that constraint, then complexity is in a sense easy to get. And I think that's where most of the complexity we see in biology comes from.
It's not the result of huge amounts of work by natural selection. In fact, natural selection tends not to engage well with complexity at all. Instead, it's just a result of the fact that biology ends up exploring the computational universe as it runs through different genetic programs.
And then it's the abstract fact that out in the computational universe complexity is common that makes it show up so much in biology.
So when people ask whether all the wonders of biology can be explained by Darwinism, what we've found with NKS tells us that the answer is no: there's something else going on too. Another effect. Another phenomenon.
But it's not something supernatural. Something carefully designed. It's just an abstract fact that's powerful and important—and beyond our previous science—but still very much something we can address with science.
Of course, the public debate about Darwinism in the U.S. is much more about the role of government in education than it is about science, and I've been pretty nervous about NKS getting involved in any way. But the truth of it is that the intellectual situation is, I think, greatly clarified by what we've discovered with NKS.
Well, OK. What about more practical aspects of biology? I have to say another thing about the computational universe and biology.
You see, one of the things I think is exciting about NKS and biology is that NKS finally starts to give us the possibility of a predictive biology. It could have been that the forms we see are consequences of all sorts of detailed historical accidents, about which we'd never be able to have much of a theory.
But instead what we seem to keep finding is that actually different species just correspond to a kind of uniform sampling of certain parts of the computational universe.
My favorite example is mollusc shell patterns.
There's a simple cellular automaton model that suggests a certain range of possible patterns. Some very simple. But some extremely ornate.
And what one finds among the molluscs of the earth is that they seem to in a sense more or less uniformly sample that corner of the computational universe—sometimes generating simple behavior, and sometimes not.
So if we then abstractly know about that part of the computational universe, we can predict the kinds of elaborate forms that are actually generated.
If all the forms were simple, this wouldn't be so exciting. But being able to say that in addition to the stripes and spots that all sorts of models might give, there'll also be these elaborate tent patterns—that's pretty exciting in the world of science predictions.
I've looked in some detail at mollusc shell patterns. I've also looked at shell shapes.
I've looked some at leaf shapes too. They're a really nice case. Where they're very easy to see. They've been talked about—and used—for millennia. But there's never been really even a shred of a theory about them. It'll be a lot of fun to fill in the map of space of possible leaves, seeing where each one is realized by an actual plant, living somewhere in the world.
You know, with all the discoveries that are getting made in paleontology these days, there's one NKS application that I think would be really fun: predicting dinosaur morphologies.
With the natural-selection idea we're looking for "missing links": organisms that smoothly interpolate between forms we see. But NKS suggests something more dramatic. It lets us imagine predicting possible wildly different forms. I mean, if we look at dinosaurs, who would have expected the stegosaurus? And the idea from NKS would be to understand the complete space of possible skeletons—some no doubt very simple, but some with elaborate structures like stegosaurs. And I think there would be a nice drama to predictive paleontology.
By the way, understanding the space of possible biological forms has direct application in today's world—notably for biometrics. What is the space of possible fingerprints? Or retinal patterns? Or gaits? Can we in effect parametrize things not by some statistical parameter, but by simple programs?
There's a lot that's beginning to happen with what one can call morphological biology. Understanding how the structures of particular tissues get produced. And seeing how to emulate or control them for bioengineering.
But of course the biggest areas of biology today are at the molecular level. And there's lot going on there with NKS.
Trying to understanding motifs for protein folding. Seeing whether the complexity of some proteins can be understood using simple programs.
Trying to see at a systems biology level what the overall architecture of biological systems is.
One thing NKS suggests is that at some level it should only take quite simple rules to make much of the complexity we see. And certainly when people start talking about minimal biological organisms, that's a highly relevant thing to realize.
And indeed when one's dealing with simple microorganisms or viruses, lots of NKS ideas immediately come up. Because one starts to realize that one's potentially sampling quite large swaths of the space of genetic programs. So understanding the structure of spaces of programs—the structure of the computational universe—is directly relevant.
You know, when we look at current biology, there are lots of areas—like cancer and aging—where there are tons of data, and where it just seems like everything must be very complicated. Well, as a number of distinguished biologists have pointed out to me, this is the same kind of situation that existed in genetics at the beginning of the 1950s. But then along came DNA and the idea of digital information... and suddenly one had a framework that made all those complicated phenomena fit together.
Well, so is the paradigm of simple programs what's needed in biology now? Right now we're just drawing these big networks showing how this affects that and so on. And they're getting more and more complicated. How do we understand these? What's the overall architecture? I wouldn't be surprised if the phenomena we've seen in NKS are the key.
You know, I got motivated recently to try to understand one particular example: immunology. It's kind of a typical modern biological field. Tons of detailed data. Tons of effects. But some basic questions still quite unclear.
Like just how does immune memory work? And what goes wrong in autoimmune disease?
I started looking at some of this with an NKS approach. And actually quickly discovered that there's been some nice stuff already done in the field based on my early-1980s cellular automaton work. But what I mostly realized is that I need more data—a different kind of data—to get a real idea of what's happening.
There are perhaps a hundred billion types of antibodies that can exist in us; perhaps a trillion types of T cells. And there are lots of assays that get done for the few hundred specific types of antibodies and so on that are known to be connected to particular diseases. But the question is: what is the complete network of antibodies that have been activated in a person? It's surely a complicated picture. There are antibodies to antigens, anti-antibodies to antibodies. And all that. And there are movies now of T cells interacting with T cells, and so on. And to start really having a global theory I want to see what that whole network is like. I don't know what will come out. But perhaps it'll work a bit like other things we've looked at in biology with NKS: that somehow different cells will end up implementing what amount to all possible programs. I'm not sure. It'll be interesting to see. And I think maybe it's even becoming practical to do the biological experiments.
There are just all sorts of places in biology where NKS seems relevant. Another one is in development. How do all the different cells in an organism develop, and differentiate from each other? They all have the same underlying genetic program. How do they end up behaving so differently? I don't know. But it certainly seems like a very NKSish question.
In neuroscience—in studying the brain—there's also lots of NKS input.
A lot of what's usually done in neuroscience is directly based on traditional physics or electrical engineering. You give certain mathematically parametrized input, then you see what the output is. And the first thing the NKS approach does is to suggest looking at the dynamics of what's going on inside. Not just looking at numbers that come out.
Then looking at complex stimuli, and complex patterns of behavior. And I won't be surprised if a key part of the overall architecture doesn't involve the brain using a whole spectrum of possible simple programs. In effect continually exploring the computational universe to analyze the universe it's presented with.
You know, the idea of looking at what all possible simple programs do seems like a really powerful way to do lots of kinds of analysis. It's like a metastatistics: a method for applying all possible analysis techniques. And I think we're going to see some interesting applications in pattern recognition—not only for traditional types of data like images, but also for types of data that we as humans don't directly get from our senses, like network data in a computer system.
Well, OK, I've said a little about physics and biology. In the parade of traditional sciences, another one is chemistry. And here there's a bunch of NKS-related stuff that's happening.
A key question in chemistry is: given certain rules for reactions, and for constructing things, what interesting molecules can we build? And what NKS suggests is that even if the rules we use are simple, the molecules we build may not be.
And right now, practically every week it seems there's some new strange cage-like molecule or something that's been synthesized.
But what NKS suggests is that we should think about this systematically. Given certain classes of construction rules, what is the whole class of forms we can produce?
It's like a typical NKS technology problem: we'll be able to make all sorts of interesting structures, but now we have to understand which ones fulfill purposes we're interested in.
We can imagine all sort of things. Molecules whose structures in effect perform computations when they bind to other molecules. Active catalysts and so on. Perhaps even some kind of minimal universal molecule. That can be given "input" to make it take on a large range of possible shapes and charge distributions. A bit like the antibodies of the immune system. But much simpler, and programmable without RNA and things.
Moving beyond individual molecules, I think nanotechnology is a tremendously fertile area for NKS. A lot of existing thinking about nanotechnology involves taking the large-scale electronic or mechanical engineering structures that we're used to, then shrinking them down to molecular scales. It's hard to do. But NKS suggests a different approach. It suggests just taking the molecular components we know, with the rules we know they have, and enumerating the possible things they can produce. Not explicitly engineering gears and wheels. But just seeing what can in a sense naturally be built from the components we have.
Without NKS one might have thought that anything that could easily be built—or would easily assemble itself—would be fairly simple. But NKS tells us that that's not the case, and that instead immensely complex things can be made.
At first it may not be obvious what we can use those things for. And the technology challenge is then to match things with purposes.
Somewhere we'll find the minimal nanotech computer. Though it may not at first be easy to recognize. And somewhere, no doubt, we'll find the minimal universal nanotech constructor. And it'll surely be NKS, not traditional engineering methodology, that'll have the best chance of leading us to this.
Increasingly related to nanotech is robotics. One of the things that's happened in the last couple of years is increasing emphasis on modular robots, and swarms of microbots. Things that seem a lot more like systems like cellular automata and so on that we've studied in NKS.
Where it's clear that the main issue isn't the construction of each module, but somehow how they all work together.
Well, this is a perfect kind of NKS situation. It's even one where things are getting streamlined enough in practice that soon it'll be almost like doing a computer experiment. But the point is that we can use NKS to start finding programs that do interesting and useful things.
Like, say, robust locomotion of a modular robot in a complex terrain. Or optimal exploration of a region with a swarm of microbots—no doubt using simple algorithms that show intrinsic randomness generation.
You know, usually we think of algorithms as being run by machines of some kind. But it's increasingly clear that there are situations where it's worthwhile to have algorithms that are effectively run by humans. Whether it's finding optimal ways to organize queues, or military operations, or whatever. And there are starting to be good experiments on using NKS methods to find the algorithms to run—to find procedures for people to follow.
You know, it's funny. I think a lot of our current everyday systems are somehow fundamentally Newtonian. They force a certain regularity and simplicity—computational reducibility. Like trains that run exactly at the hour, in kind of a repetitive sequence.
But increasingly we're starting to see systems that operate somehow just-in-time. Perhaps still with simple underlying rules. But with much more complex behavior. Much more computationally irreducible. Less obviously regular.
And this is surely the future of many things in our world. To seem more random. Yet to operate more robustly, and more efficiently. Using simple rules. But with behavior that we can't immediately understand, without just running those rules ourselves.
Perhaps there are systems that already do that. Like in economic markets. Or crowds. And one of the things that's increasingly happening is that people are realizing that one can use NKS methods to make explicit simple models of what goes on in systems like those.
It's often hard to summarize with traditional math-like individual numbers. And there's more to be done in being able to present complex actual patterns of behavior. But what's critical is to have from pure NKS a framework for thinking about what kinds of can happen.
Newtonian science gave us ideas like momentum and force. That have long ago entered the lexicon of fields like economics. Now we're seeing concepts from NKS like class 4 behavior, and computational irreducibility, that give us another level of conceptual understanding.
You know, I think one of the consistent themes of recent years, across lots of fields, has been the modeling of things that were always just treated as probabilistic and random before. Like of noise in communications systems. Or of traffic in networks. Or of aspects of human behavior.
The criteria for the models are often pretty clear: it's not a question of getting published in a journal, it's a question of solving some important technological problem well. And there's increasing use of NKS methods both to formulate the models, and to find the models. And often also to handle what has to be done on the basis of the models.
Another place where people talk about NKS a lot is in linguistics. People have long asked what the "atoms of language" might be. And of course we have the various kinds of context-free grammars and so on.
But NKS suggests some quite different approaches. In which one imagines language being generated—and understood—by a diverse collection of simple programs. And somehow with that kind of more-general approach one starts being able to ask about lots of generalizations of language—in images, or sounds, or other places, including some in which actually you'll be seeing some interesting technology from us soon.
You know, as I mentioned, one of the features of NKS is that it gives us new insights about old almost-philosophical problems. And somehow in the last couple of years, some of those problems—in different places—have started to seem much more practical and closer at hand. Like design inference—trying to determine whether a system was designed on purpose or not. Whether in discussing the foundations of biology. Or in detecting sinister behaviors in social networks. Or in recognizing viruses or spam. There's also an increasing realization that we're going to be able to see the mechanisms of human thought in action in our brains. So we have to understand what that's going to mean for our perceptions of free will and so on. And we're also realizing that it's inevitable that we're going to start interacting more and more closely with machines. So we have to really clarify how what we do, and how we think and operate, does or does not correspond to what can go on in machines.
There's lots and lots to say. Across so many different fields. It's really exciting. The NKS paradigm really seems to be opening up so many opportunities.
It's worth remembering the foundations, though. Pure NKS. The abstract investigation of the computational universe. It's really nice to see that steadily building up. There are still huge numbers of obvious questions to be asked and answered. But it's beginning to fill in. There are beginning to be more and more things that someone has investigated.
I think the standards of the field are becoming decently clear. Of what it takes to formulate a good, clean question. Of what kinds of systems one can do meaningful studies of. Of what kinds of analysis and presentation are expected.
I think we're starting to build up a great and very long-term store of good pure NKS knowledge. Kind of the analogs of all those facts that have survived the millennia in mathematics. Simple, precise results.
It'll be another few years before pure NKS gets, in a sense, fully institutionally established. And we start to see the torrent of master's and PhD theses and monographs that I'm sure will come. But it's very nice to see—and have represented at this conference—an increasing number of groups around the world doing pure NKS work.
It's interesting how international NKS has already become. It's very clear from this conference. And in a sense it's a testament to the fundamental character of NKS. All one needs is a computer, and the right way of thinking, and one can start to make contributions.
You know, I've thought a lot about how we can best support the development of NKS. As some of you know, I'm a fairly serious student of the history of science. And I always hope to do predictive history of science, and to learn from history what the right and wrong things to do are. Of course, we're fighting computational irreducibility in trying to figure that out.
And of course some things always seem like they're maddeningly slow. But really, from the historical metrics things are going very well. Our science is growing, in many ways just like other major successful sciences before it.
Lots of terrific people—at a variety of different stages in their careers—are entering the field. We're doing some things we hope help.
Starting immediately after this conference we'll be doing our fourth NKS Summer School.
And it's wonderful to see all the good science and good work that continues to be done by alumni of our previous Summer Schools.
This fall, I hope, we're going to start up another little experiment: doing computer experiments, live on the web. Making discoveries right there, in public view.
You know, one of the great American trends over the last couple of decades has been the opening up of lots of activities that used to happen only behind closed doors. But the doing of science is still not something that's visible. Partly because, frankly, it's usually not much of a spectator sport.
But I think with live experiments we have a chance to show the excitement of science actually being done, live. And I think that's potentially going to be quite inspiring to a lot of possible future scientists, and future people in our field.
What else can we do to help? Well, as our science grows, one of the nice things that's happening is that there are starting to be more and more potential institutional homes for people, at student levels and beyond. And in several countries, there's starting to be nontrivial government funding for our science.
We're doing what we can to help all this. Co-mentoring students. Lending our support to proposals, and so on. We've been publishing quite a lot of papers in our Complex Systems journal. And I've been steadily working on a "new kind of publishing" for NKS, which hopefully we'll be able to roll out before too long.
And when it comes to technology applications of NKS—well, I think we have some interesting things that we're developing. Though frankly we have something of a conundrum there. Because the applications are so broad, it's really difficult to see how to tackle them in a manageable way.
Of course, one has to pick applications at the right time. I mean, if we had just invented calculus in Newton's time, it'd be really the wrong thing to invest in making an artificial satellite. That took nearly three more centuries of technological infrastructure development before it started to make sense.
And there are certainly applications of NKS that right now seem as far off as that. But there are much much closer ones. Lots and lots of them. In fact, as I said earlier, I pretty much maintain that given an industry, we can now find a good application for NKS in it. Whether it's drug development, computer design, mechanical structure design, logistics, whatever.
But here's the problem. Each of these applications takes a lot of effort—specialized effort—to really develop and deploy. I suppose it's one of the burdens I bear from spending so many years of my life not as an academic: that I try to think about how to really deploy things in the world. And with this amount of diversity it's very hard. I don't think anyone in the history of technology has yet come up with a good model for doing it. It just takes such different organizations—and different organizational cultures and skills—to do these very different things.
The only common thread is the original NKS methods that are used. After that there's perhaps $1 million, perhaps $5 million, perhaps $100 million, perhaps $500 million, of different specific development.
Well, one thing we're trying to formulate is a way to help other groups to take NKS ideas, and pursue developing them. And so we're trying to set up a kind of angel funding network for commercial NKS applications. Which I'm hoping will get going over the next couple of years.
You know, a bunch of people around this conference have asked me what I'm spending my time on these days. The first thing I think I can say is that now, four years out, I'm close to having recovered from the very intense ten and a half years that I spent working on the NKS book. But now I'm in an intense tool-building phase again.
Somehow all the time I've spent on NKS has made me think a lot more clearly about all the things that can really be done with computation. And at our company I think we're doing some really, really exciting—and surprising—things. That I hope will finally be starting to emerge over the next six months or a year.
I've been spending some time too using the tools we've been building, to do NKS science. And I must say it's been very, very exciting. It's a little like what happened when I started writing the NKS book, using the first versions of Mathematica. There's suddenly now so much more that I can see and do. Building on the foundations we already have. And now I hope with many more people involved.
Well, there's a lot more I could say. And I'm sure after these next three days there'll be even more to say about where our science is going. But I think things are really getting underway very well. As is so often the case, much of it could perhaps have happened earlier in the history of science. But now it's us who get to explore the computational universe. And it'll be us in these next few decades who get to see the effects of that exploration unfold.
I think we're building a great community here to do all this. It's a pleasure to be with you. Let's all have a great time at this conference, and a great time exploring our science in the years to come.