[Cellular Automata with Live Input] - A New Kind of Science: The NKS ForumA New Kind of Science: The NKS Forum
Pages:1
Cellular Automata with Live Input
(Click here to view the original thread with full colors/images)
Posted by: Jesse Nochella
Attached below is a preliminary implementation of what I call live cellular automata.
On page 947 of NKS wolfram leaves a note about the continual injection of randomness into CAs. And in the forum here Jason Cawley gave us Interactive CAs where the rules applied are what changes. In an LCA, all the all the cells are subject to change, but the official rule stays the same. LCA's are a very powerful conceptual tool as well as a practical one for modeling all kinds of systems
The basic idea behind any live system is that some process occurs, but instead of the process ending with the result that was determined, any result can happen.
How this turns out for cellular automata is that certain cells are "forced" to be a certain color. Other than that, the evolution goes on as normal. This particular framework uses one-dimensional cellular automata because it is easy to implement and conveys what is going on very well.
Most all of the simple systems we observe in nature have at least some kind of pertubaton, being not determined by the process we are looking at, but determining at least some part of that process. And I think that we may be able to show all kinds of new complex phenomena with very simple forms pertubation.
Also, I think that we may be able to finally in an easy way model the kind of selective pertubation that seems to occur in brains, where some of the output contributes to some of the pertubation.
And ultimately, as I discussed in my thread about causal precursors here, I also think that LCA's can be fruitful in modeling physics.
There's lots of work to be done on the implementation of it though. The final idea brewing in my mind is a sort of network model dealing with sparse arrays, or something like that. Oh, and it's really fast, too.
But that's to come, right now it's really, really slow. Really slow. Well, have fun with it!
Posted by: Jesse Nochella
The output of an LCA can be viewed as a slice of some larger network, where the forced cells are actually caused in a deterministic way by interactions with hidden parts of the network.
Under this projection, one might imagine an LCA whose actual network has a large, intricate layout with all sorts of complex topological features. Outside of the slice may occur all kinds of rich behavior. The only constraint is that somehow the cells of the slice must occur as they do.
As this happens, then formally, this LCA slice becomes a sort of subset of all these possible larger networks. And likewise, all these networks become a subset of the LCA slice as a constraint.
Well, this isn't a new idea at all, but the point here is that In an LCA there is more going on, because somewhere in this network a cellular automaton rule is being applied. This accounts for some of the information that we are trying to categorize when we break it down into formal subsets.
And so in the end, all we need to specify is the "live" input for what imposes the constraint. We don't need to specify the whole LCA.
And what this does as a realization is let us see how information can realistically be controlled and fine tuned in a system like our own brains and elsewhere. And more or less this is what I think is actually happening when, for instance, we try to perform some physical action, or retrieve some piece of memory. It's like: "just keep those neurons in that particular arrangement of firing, and the rest happens automatically".
I'm sure that idea isn't new either. In fact, it seems to be one of the more intuitive thoughts about the brain that one can think of. But the point about LCA's is that they model this phenoenon quite accurately. They decide what happens on the inside according to some definite process, but leave the origins of the process unknown.
And the realization that comes from this is that whenever we want to find the origins of some behavior coming from a system as complex as ourselves, we can only go as far as finding the conditions under which that behavior occurs. And if we're going to build any sort of model for whatever system determines those conditions, then that model must be less than universal. Because if it is universal, then any attempt to model that system will inevitably run into computational irreducibility undecidability – two things that guarantee a realistic, complete, and consistent model impossible to make
This limit falls short of what most people traditionally try to do in science. If asked to find the origin of complex behavior associated with, say, brain activity, the usual response is a model as sophisticated as a brain that somehow is supposed to account for the complexity because of its own complex structure.
Now, we know about all this and why it doesn't work from NKS. It's sort of an implication of the PCE that complexity ultimately originates from rules that are simple. But the point about modeling that I make is that the concept of using a system with live input to capture phenomena is a powerful one. It helps us to define the seperation between the complex system generating the behavior and the particular features of that behavior that we're trying to capture. All any model is supposed to do is capture just a few features, so it never really boils down to the actual mechanism. Live systems are not only good for the kind of reduction that ordinary CA models traditionally use, where, say the cells of the cellular automaton correspond to more complex units like biological cells or particles; they are also good for the kind of environmental reduction that spells out under what conditions such phenomena occur in. This is a crucial feature to have when modeling systems like brains where the causal origins of an event can be arbitrary and are for the most part undecidable.
Posted by: Jesse Nochella
Attached below is *way* better code, as promised, but way late in my opinion.
Next is still more effecient code and hopefully an easy way to specify matricies containing blocks of cells, randomly placed, regular; for making patterns of stuff in general.
Don't evaluate all the cells in the examples at once; I'd reccomend looking at most of them though. Just ideas, etc. should follow up on this soon with more.
Posted by: Jesse Nochella
The above promised things have not yet been achieved. For faster code I imagined splitting the perturbation table into runs where some would need replacements, and others did not; then to just run the necessary functions in turn to get the whole plot, using CellularAutomaton where replacements weren't necessary.
Conceptually, Specifing matricies that have certain probabilities of tiling patterns, I cannot currently see through.
Along with these two things are several other projects that I think would be very cool done:
LiveCellularAutomaton function that allows one to specify the rules applied, the forced conditions, and the cells returned in a completely arbitrary way. Using, say, SparseArrays.
Like this:
CellularAutomaton[(an array that determines what rules are applied where), (an array that determines what cells are forced what colors), (an array that determines what cells to return)
While it may be a bit more complicated to specify a simple, say elementary rule, it's not that much different.
Say as a function, any integer is assumed to correspond to a sparse array specifying that the elementary rule to be applied is applied anywhere, say SparseArray[{{_}->30}], and it would be just like Mathematica's built in CellularAutomaton function.
Initial conditions are replaced with perturbation, This can also be done with a sparse array. Cells not specified in the sparse array are left unchanged
'What to return' may have already been done well enough. A sparse array might be really convenient.
Streaming cellular automaton applying rules in real-time.
Could correspond to audio stream; video, maybe even a kind of 3 dimensional medium (a block of something or just an array of nodes)
Some examples that I can imagine:
A one dimensional rule, on a display firing upward in real time as audio is recorded.
A two dimensional rule acting on a filtered video feed (where say, oh for limits make it monochromatic, and only cells bright enough in the video feed translate into perturbation). Say some thing like Life of Star Wars-type rules focusing on a steady image of the palm-face of my hand, in a dark room with a single light source coming from behind the camera. As the rule evolves periods eventuate around the edge of my hand automatically, the brighter the light, the more the perturbation, these periods not only change, but for the most part emerge more rapidly, I think. As I move my hand there is a slight afterimage of where it was previously sitting on the screen, of course. If I move my hand in a circle i suppose some other interesting periods would form. It's what seems to happen in our own visual systems so I'm very interested.
A physical medium that responds to change and manipulation could tell us loads of information about the surrounding environment. How fast can the lump of smart clay on the table tell you're lying? How fast can a tree tell that it's ecosystem is failing? If you can get a good idea about where a person has been by their hands, what about a pool of sensors?
Sound's a bit crazy, but of course at the same time we all know that these ideas are, indeed, interesting and well, crazy enough to be on the right track in some way. The concept of live input into simple programs is what all of these projects embody.
Forum Sponsored by Wolfram Research
© 2004-2008 Wolfram Research, Inc. | Powered by vBulletin 2.3.0 © 2000-2002 Jelsoft Enterprises, Ltd. |
Disclaimer
vB Easy Archive Final - Created by Xenon and modified/released by SkuZZy from the Job Openings