|
25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more... |
Home Projects Up Sitemap Search Blog Forum+Chat About Us Privacy Terms of Use Feedback FAQ Images Services Ads Donate Humor |
|
|
Essays on Complex Systems Part 9 - Artificial Life (A-Life)Definition of Life?The one thing common to everything we generally consider alive is DNA or RNA chemistry. Also, from BioMedia PBS TV show: "Life is an expression of proteins." Structural proteins, locomotor proteins, enzymatic proteins (regulation, constructive and destructive). Richard Dawkins cites self-replication as the key feature of life, and seems to mean of the molecule, not of individuals. Makes sense. (Plus, the DNA molecule is the only thing that really does self-replicate.) His basis for it is that it is the self-replication of DNA that allows mutation and evolution. He is interested in origin of consciousness. (from Charlie Rose, PBS). See Complexity: he wrote an evolution program. Expanded dictionary definition:
There is an obvious truth that at a sufficiently low level, live things are not alive at all, which implies that life is entirely a phenomenon of organization, and is in no way a property of matter. The broadest definition of life would probably be simply: life is a quality of any system that processes information. And a system's "liveliness" is a measure of its complexity. Everything is alive to some extent, in that all matter in some way responds to its environment (processes information), or, at minimum, "changes in response to its environment" (A rock gets wet when rained on). Under a broad definition of life, a computer virus is a life form. It can only survive inside a computer, but that is analogous to saying that we can only survive inside an environment with oxygen and atmospheric pressure. (See, elsewhere, that its lack of initiative argues against its aliveness.) The quality of life as an information processing system is independent of the specific conditions necessary for a particular life form's survival. Our common sense definition of life (as with all our definitions) is what it is because it works in a practical sense, but (as with many of our definitions!) it relies on fuzziness to work. For example, it is commonly said that for something to be alive, it must be able to reproduce. But a single human can't reproduce. It takes two. Does that mean that a single human isn't really alive? Or, exactly what IS alive, the individual human or the cluster of which it is a part (the reproductive pair?, the species?)? However, other animals, which presumably don't consciously categorize at all, seem to have an innate sense of what things are alive and what things aren't. The cues they probably use are warmth, motion, reactivity, smell, ...? On the other hand, we don't really see that innate sense. All we really see is what they are interested in.
Life is Anti-entropic?(see Chaos Under Control, p.353) The universe as a system in which two competing classes of forces produce the complexity through their interactions. (See Self-Organizing Behavior, above). Entropic forces. (Repulsive, disintegrative, destructive) These tend to produce dissolution, dissipation, and destruction of order. Examples: diffusion, electrical repulsion, chemical reactions where lowest energy state is reached by chemicals breaking apart, Anti-entropic forces. (attractive, integrative, constructive, synthetic) These tend to produce coalescence. Examples: gravity, electrical attraction, chemical reactions where lowest energy state is reached when chemicals combine and thus simultaneously produce increased organization, which, being at a lower energy state, is not subject to spontaneous decay. Interesting parallel with the poetic life and death, creation and destruction, forces. It seems as though, if entropy is the tendency towards the lowest and most uniform energy state (it may not be -- defined as maximum disorder?), it does not necessarily mean a tendency towards maximum disorder, since there are many situations where the lowest energy state is actually reached through the production of order. For example, gravity. My intuitive vision of maximum entropy would have the universe progressing towards a state where all the elements are uniformly distributed throughout it in a big cloud, but this will never happen because in that state there would be a huge amount of potential energy. At least as far as gravity goes, the lowest energy state would be produced when all the matter in the universe collapsed into a big ball. So the lowest energy state coincides with a state where distribution is not uniform. So entropy and order may not be opposites. In what manner is life anti-entropic? Or at least anti-disorder? Or how does a living thing differ from a non-living thing in that respect? A living thing exists in a higher energy state, in that it contains structures, chemicals, or organizations that are not at the lowest energy states they could achieve, which therefore could and naturally would be torn apart to lower energy levels by dissipative or entropic forces, and must therefore have processes to maintain its live state. I.e. a living thing is a built thing. However, life is naturally occurring, so it cannot be an accident that just happens to defy laws of nature. It's an isolated pocket where symbiotic coalescive forces are stronger than the dissipative forces, and where their symbiotic relationships provide mechanisms to preserve the organization against the dissipative forces. (The organization resists destruction.) All biological live things die eventually. Why? A basic rule peculiar to the chemistry, where the dissipative forces must eventually tear it apart? Probably so. Each of the chemicals is a storage system which has to be more or less precisely accurate to continue to contribute to the whole system, and which is constantly under bombardment from radiation and other destructive forces. With sufficient attacks, it is probable that a flaw will develop that is fatal to the system's functioning. A test of a system's robustness is the extent to which it can repel, resist, or repair the damage from such attacks. Under a broad definition of life, it probably is not necessarily true that all living things die. An ant colony, if viewed as a living organism on a higher level than the individual ants in it, far outlives any of its ants. And the ant species, if viewed as yet a higher level of life, has existed for millions of years. And if the basis of life, DNA and its related chemicals, is viewed as life (since it is, and they are, after all, chemicals that achieve much lower energy states when torn apart), then it has thrived, propagated, and expanded for a couple billion years or more, carried through the ages by the many varied vessels it has encoded and built to house itself. [Evolution is usually thought of abstractly as pertaining to species, but species is a somewhat arbitrary classification; every individual person alive today has an unbroken chain of ancestors stretching all the way back to the beginning of life on Earth. ] "Life is change. How it differs from the rocks..." -- Jefferson Airplane, Crown of Creation. How does it differ from the rocks? How does something that is alive differ from something that supposedly isn't, such as a rock or a water cloud?
A rock is very fit. What organization it has is very resistant to corruption. It does a good job of continuing to exist in almost any environment, although it can't propagate or do much of anything else. (When a crystal grows, is it propagating, in a way? It's absorbing new material and organizing it according to rules.) And then there's the water cloud. It seems vastly different from the rock because it is easy to see that its organization is mostly random and constantly changing. On the other hand, the rock only has the advantage because it's not fluid at ordinary temperatures. In a sense, the rock is just a solid cloud. But one difference between these non-living things and living things is that the internal organization of the rock and cloud is largely random or determined by easily understood physical forces, and there exist few or no mechanisms for preserving that organization from change, or for making any ordered changes in the organization. So, in effect, they are poor media for data storage, and their internal dynamics are simple, too simple and thus too disorganized to support any form of adaptation, learning, or evolution. Without a "stable, but not too stable" data storage method, and without being able to change the data set in response to feedback from the environment, they lack the "requirements for learning" from above. A tornado does have some stability, so it can store information, and it even has some dynamics that resist disruption of its pattern. It can even spawn other tornadoes, and thus propagate, in a way. Same for hurricanes. It is interesting that they report that a thunderstorm or hurricane is "starting to organize". So life probably is an organization which has the "requirements for learning", and its liveliness lies along a continuum. It is not that rocks or clouds have no life (that is, features of life) at all, but that a thing is indeed less alive if it
The aliveness of something might also be related to the number of factors that can affect its continued existence, the number and types of things that can disrupt its pattern. For a rock, almost everything is irrelevant, but some factors are relevant, like water and temperature, and some rocks do resist erosion better, and thus survive longer. What they can't do is propagate their patterns, but if they could they'd have an advantage. A rock rates very high in stability of storage medium, very low in mutability of storage medium, very low in its ability to repair damage to its pattern, and very low in feedback systems. Its medium is very stable, but its pattern really isn't. It's very stable, but when the right forces do come along, it can't learn, and it's totally at their mercy. I think this is the same conclusion I reached somewhere else here, from another direction. Everything is alive. Some things are just more alive than others. How does this latest definition relate to life's "anti-entropic" properties?
Evolutionary change should be driven hardest, fastest, by periodic cataclysms, environmental conditions almost harsh enough to cause extinction, so that, say, the 10% best fit organisms don't just have some advantage, but that the other 90% are completely wiped out. Whether a species can keep up with change is determined by its child production rate and the mutation rate. More children, either by many children at once or by a short generational cycle, provide more opportunity for variation (and mutations). A TV show noted that a very stable environment doesn't require great or rapid variation in response to changes, and in these situations asexual reproduction is acceptable and can persist. ----- We probably develop from birth in a completely pragmatic manner. We are given various inputs (new situations), and our neurons connect and reconnect until the outputs we produce "work" in the sense of allowing us to function in the world and get what we need. We're just totally programmable and we flop around as babies until our various outputs start bringing the results we need. On this basis, an argument can be made that people are not responsible for their actions: If each faction of society, or each family, (even each individual) has its own culture (which it does), then the individuals produced by, trained by, that subculture may possess learned behaviors that were adaptive in that culture, but are not adaptive, or are even scorned, dangerous, or illegal, in larger society. If a subculture churns out individuals that are trained maladaptively, is it the individual's fault? If not, how do you allocate the blame, and how do you rectify the situation? There is an interesting similarity between this problem and the related problem of passing credit or blame back through the levels in a classifier system using the bucket brigade. The rule that posted the last message (the end result) is the most available to receive the feedback, but much of the real responsibility for its being there at all is distributed among the preceding "stage-setting" rules, and the problem of either reinforcing or extinguishing the sequence is one of propagating the feedback far enough back into the system that it makes a difference in the outcome. This could have huge applications in public policy if means could be found to implement it. The idea that people's reactions and personalities develop in response to the environment existing during their development also raises the question of the existence of free will, somewhat. Clearly there's plenty of it, and learning and development continue presumably throughout life, and people do change and can be "reprogrammed". Whether free will exists or not probably becomes irrelevant: whether change results from internal desire or from external reprogramming is less important than the fact that the changes do occur. But the question of free will has no bearing on the question of what to do with regard to reward or punishment. It doesn't matter whether an individual is responsible or not. An argument can be made for the usefulness or desirability of any feedback system under either assumption. And it seems likely that the same feedback system will probably have similar results under either assumption. All that changes is the presumed mechanism by which the resulting changes are effected. (I.e. whether the model is "punishment/reward" of a willful person or "behavior modification/reprogramming" of a person who possesses no free will, the result is probably the same.) However, something that is not trivial is the probability that what constitutes reward or punishment for a given individual is probably also learned during development. This seems harder to fathom than the existence of free will, and is more relevant: you can't reward or punish unless you know what the individual will interpret as what. And what they consciously like or dislike, or claim to like or dislike, might not actually be reliable indicators of what will motivate or de-motivate them in practice. (The child, as a stereotyped example, who gets into trouble repeatedly because spankings and scoldings, though presumably unpleasant, are better than no attention at all.) Interestingly, most of the standardized punishments and rewards in society are defined the same for everyone, under the probably incorrect assumption that everyone is motivated by, and afraid of, the same things. The "individual" can be considered as just the smallest possible subgrouping within society, which, however, can contain subgroups of any size. And as in bicycle racing, alliances and rivalries among groups will form and dissolve fluidly in response to the benefits to be gained as perceived by the subgroups. With regard to the relative importance of the individual versus the society, subgroups, including individuals, naturally believe that they are very important, but society as a whole, a (probably) intelligent emergent phenomenon in itself, acts contrarily. This is probably one reason that for so long only 19-year olds, who couldn't vote, could be drafted. If everyone were subject to the draft, they'd be very reluctant to vote to go to war. There had to be a small powerless minority that the opinion of larger society could override. It is an interesting question whether a society, an emergent phenomenon resulting from the interactions of individuals, will exhibit its own intelligence, following a course that pursues its own interests -- what are its own interests? -- with total disregard for the interests of the individuals that constitute it. The intuitive obvious answer is yes, with the draft example above as one instance. Is there any example where a society might do something as a whole that does benefit the society as an ongoing organization, but is detrimental, with no compensatory advantages, to every individual in it? A far-fetched example that demonstrates the idea would be a species whose individuals could not reproduce at all unless they were infected with a bacterium that provided some needed function, but that also killed them shortly after reproduction was complete. Another example: the sting of bees, which evolved to protect the hive, but kills the individual bee. A contrary example: good for individuals, but bad for the system: The existence of a welfare system, or of any safety net, probably does actually cause reliance upon it, and dependence, perhaps even more than it was instituted to alleviate. But on the other hand, eliminating it could produce large numbers of desperate people, which isn't healthy for society, either (French Revolution). A problem for policy-makers is that individual people and families might have no interest in what's best for "the system" or what's best over the long term. Furthermore, what's best for "the system" or over the long term may well be dreadful for individuals over the short term. This is a perpetual dilemma for politicians: they probably would do their job best if they did what's best for society (the most good for the most people) over the long term, but it's individual people who elect them, over the short term. Notes about the Game of Life C++ programMost of the language used to describe the Game of Life (including the name) is misleading. Terms that focus on cells, shapes, motion, and birth or death or survival of a cell introduce a biological paradigm with connotations and associations that tend to lead one to focus attention on the wrong aspects of the system and to look for "behavior" in the system based on that paradigm, which it isn't going to have. Also, that paradigm isn't portable to other automata in general. Cells are not dead or alive, nor are they present or not present, and they do not form colonies with populations that fluctuate. Every slot in the Life field grid is a "cell" (if you must) that is always there, in one state or the other. A cell never moves. However, a signal can move from cell to cell. Life is an almost entirely abstract way to study how patterns, pure patterns, can behave. Thus the interest value of finding a self-reproducing pattern lies in proving that a simple pattern, essentially mathematical and certainly not biologically living, can be found that can propagate itself according to simple rules. It can even be thought of as a simulation of physical reality, only governed by different rules. A cell turning on or off can be likened to the creation or destruction of matter out of or into empty space. No one knows exactly what rules cause these physical events to happen, but the fact that they do makes space analogous to a Life field, as a big array (of space) where particles can come into being or disappear, and where some such patterns persist and some don't. Life patterns, like matter or energy, are like waves in a medium. A glider is a disturbance that moves through the grid. Its change in configuration as it moves could be compared to a physical property such as spin. And it interacts with other configurations in characteristic ways with characteristic products. The Life field itself is very similar (probably identical) to one of Stu Kauffman's genetic circuits. It's possible that patterns could develop with some very interesting characteristics, but it's unlikely to occur at the cellular level or in very small formations. It's more likely to occur at the level where you can no longer see the dots (that is, a huge field that you view from a distance so you aren't distracted by looking at the dots). Even there, however, it's probably no more likely to occur than in biological evolution, so you may have to wait millions of years for anything to happen. So if there is to be any exercise related to this, it must be in trying to engineer such formations. It's 100% deterministic and 100% predictable. A given state always produces the same sequence. If you could see physical reality at the atomic level, you would have the same problems determining the physical boundary where one thing ends and another begins, and also the same problems determining which parts of the system belong to which level of description. When a cluster of individuals forms a pattern, you tend to think of it as a single entity on a larger scale, which is appropriate if it's more convenient, if the behavior of its component parts at that level is irrelevant, and especially if its behavior makes it a component of a still larger system. But watch out: First, any grouping is a pattern, but unfortunately, the easiest patterns to watch and recognize recurrences of are the symmetrical ones, which may not be the most interesting. Second, there's no way to know exactly what the boundary of your "pattern" is. Some patterns leave behind small independent clusters, and either do or don't grow back to reclaim them. Where you begin watching the process can determine what part of the pattern you consider to be a legitimate part of it and what part is just random junk lying around. There are two different types of clusters that might also be significant. In one, the cells are dependent on each other's existence for their own. Other clusters are mere groupings. Phase transitions may be an example of a naturally occurring, non-arbitrary, dividing line between levels of description. Make summary of how or when you know a phase transition has occurred. We easily recognize with common sense when it is appropriate to abstract a portion of a set of data as a new single entity. When using common sense, what are the cues we use to isolate an object from its surroundings? How do we separate figure from ground?
The Life patterns I've seen are not robust; they are unable to survive having a dot added or subtracted without it altering the entire structure and drastically altering the future development of the pattern. Something to look for: a persistent structure with a self-defense system. See Langton's self-reproducing automaton (Complexity), interesting for possible exploration. The Life field is like a neural net where the connections are implicit in the physical proximity: each cell can be on or off, and has 8 inputs (neighbors), and 8 outputs (neighbors). Its peculiarity is that it outputs back to the same neighbors it inputs from. To Do from LIFE.CPPWrite routines to calculate lambda for a given set, and to produce sets with a given lambda. Try using a genetic algorithm to evolve Class IV rule sets with the longest transients (must have a way to measure when a set has died or become chaotic). Things you could base state changes on: neighbor count, neighbor patterns, neighbor state sum. It should be possible to construct a string that encodes both the states of the surrounding points and their positions. See my strand() that performs an "and" operation on the two strings. This would make it easy to implement position-dependent Moore neighborhood rule sets. See paper notes in A-LIFE file. might be able to reduce # of rules required for a position-dependent set by using don't care bits in the comparison strings. That's also how you could code a 3-cell neighborhood in a rule intended for 5-cell neighborhoods. Or a 4-cell Von Neumann in an 8-cell Moore. Could allow user to grade random automata (possibly by splitting <space>=next into 2 different commands (good/bad and move to next)), then crossbreed the rules of good ones to produce automata of the greatest interest. After LifeRule is stable, write a mating constructor. Maybe allow loading all .rul files at once into big array, for ensuring uniqueness. Or write a utility to test for duplicate sets. Arrange glider guns in battle.bmp so they fire at each other. Try setting up a life field in Excel. You can use color by specifying a number format using color. You could make it so new random rules are created every 100 generations, for just viewing as a series. The calculation is one-way only. You can't derive what the previous generation was. Could use clipboard for transferring the DIB to a bitmap editor and back, but using temp.bmp is just as easy. This whole program assumes a 2-state automaton. Allowing > 2 states per cell involves a whole new approach to the rule table organization. See Complexity for clues. In the rule table below, read the intersections as: If the cell is in the given state, and the given condition exists, then in the next generation the cell will be in the state shown at the intersection. Condition could be neighborcount or anything else. Try to figure out a file format that can be used for any number of states and conditions. And rewrite LifeRule so that it deals with this more general type of automaton. You need a different condition-determining function for each method you want to use to define the conditions. To start with, assume that Langton's more complex rules still used neighborcount, but with > 2 possible states. You can't. When there are > 2 states, the concept of what is a neighbor has to change. There are always 8 neighbors, and they aren't just on or off, they're in all different states!
... The standard Life rules, translated to this type of table:
It may be possible to encode the standard rules as follows, for position-dependent rules, as an "if" clause, and a "then" clause, the state transition. The "if" clause encodes a possible neighborhood using the 9 grid positions in order, including a slot for the central point: 100000000 0 means if the point's current state is 0, and the upper left corner of its grid is in state 1, the point remains at 0. This would be unnecessary, since you wouldn't need table entries where the state didn't change. Unfortunately, this shows how much complexity is added by allowing for position dependence. For Standard rules, you would need a rule for each possible configuration where 2 or 3 neighbors are in state 1 (140 of them, see Life.xls). [End of LIFE.DOC.] ChaosDoes "chaos" exist?How would you tell whether a time series is chaotic or just has an unimaginably long cycle? I don't think there's any way to tell. The "bifurcation diagram" supposedly contains cycles of all possible periods—i.e. an infinite number of cycles with periods from 1 to infinity. Misc.Can't remember why I made a note to remember Hofstadter's game of "Mediocrity", where you play for the highest score, but the middle score wins the single game. Then, at the end of several games, the player who won the most games by most often being "middlemost" still doesn't win the match: the middle player wins again. So too-great success at either level results in losing the match. A Computer Chronicles (PBS show) described how one company in Ireland or Scotland claimed success with a "case-based" AI system, as opposed to rule-based or neural nets. I imagine classifier systems would probably be considered to be rule-based. The case-based system relied on a database of case histories, its "case base", upon which it based its judgments. They didn't discuss any specifics about how it worked. Creation and destruction can be two sides of the same process. In evolution, nature creates a sequence of existing forms by destroying all the others! (But that's really not complete in itself, since the system also requires a non-destructive mechanism of change.) In the category of "Useful Programs That I Can't Write": An electrical power grid might be compared to an unanalyzable gas line, but even more unstable because it is already in continual oscillation. Could some grid crashes be due to onset of chaos in its oscillations? If so, a program that could detect chaotic instability at its onset before it can amplify, and either damp it or shut down the failing power station (2 recent power grid crashes were due to human failure to do this) would be important. What would you detect? The analogy would be to detect a time series that approximates that of a dripping faucet as you slowly turn up the faucet: steady dripping, then uneven with period-doubling, etc. But what is the electrical equivalent? The only things that can vary are voltage (and thus current) and frequency. If voltage started to swing wildly around its nominal value, it could quickly hit zero on one of the downswings and be unable to get restarted? If frequency varied, you would look for a developing chaotic time series in the time between the voltage peaks: - - -- -- -- ---- ---- ---- ---- etc. I'm not sure that any of these are possible, but one book mentioned chaotic electrical flow in a single resistor carrying a small current, so it does occur, and it would seem that a large power grid should be even more susceptible. Also, if each power station in the grid monitors only its own operation, it might be useful to have a master monitoring program that receives and analyzes voltage and frequency data from all the stations in the grid so that the propagation of an irregularity can be tracked and caught early. That is, a pattern might be evident in the whole grid that no individual station would detect. One test whether chaos is the cause might be whether the crash occurs only when demand (and generation) is rising. A pan heating on the stove can become unstable and start rocking, but only while heat is being applied: it requires energy input.
|
|
|
|
|