Courses/CS 461/Emergence

From CSWiki

Jump to: navigation, search

Contents

[edit] Introduction

For a more complete discussion, see my paper Emergence Explained.

The Dictionary of the Philosophy of Mind defines emergence (or actually emergent) as follows.
Properties of a complex physical system are emergent just in case they are neither (i) properties had by any parts of the system taken in isolation nor (ii) resultant of a mere summation of properties of parts of the system.
A similar definition may be found on the NECSI website.
Emergence is...

1) ...what parts of a system do together that they would not do by themselves: collective behavior.

2) ...what a system does by virtue of its relationship to its environment that it would not do by itself: e.g. its function. … This … aspect of emergence … is related to the first aspect … because the system can be viewed along with parts of its environment as together forming a larger system. The collective behaviors due to the relationships of the larger system's parts reflect the relationships of the original system and its environment.
In other words, emergence according to these views has to do with properties that an aggregate has that its elements individually don't have. The exclusion of properties that are "resultant of a mere summation of properties of parts of a system" is intended to eliminate from the notion of emergence such properties as mass. One doesn't want the mass of an aggregate to count as an emergent property since it is simply the sum of the masses of its parts.

(It is worth asking why one wants to exclude properties such as mass from being considered emergent. After all the mass of most entities is not exactly the same as the sum of the masses of their components. See Emergence Explained for details since this a much longer discussion.)

[edit] Defining emergence

I would define emergence much more loosely. A phenomenon is emergent if it may be described in terms that do not rely on its implementation. This is not a standard definition. According to this definition, virtually any property of a entity is emergent, including, for example, its mass.

This approach to emergence puts much of the burden of deciding when the term emergent is appropriate on when one can talk about an entity at all. That is, if one has the ability to treat something as an entity, then any of its properties that can be described without recourse to describing how it is put together are emergent. It is a much more difficult issue to decide what should qualify as an entity, i.e., a thing. For example, we would probably not want to say that the air molecules in the cubic foot of atmosphere at location (x, y, z) at time t is an entity. Again, this is explored in more depth in Emergence Explained.

But we all have a reasonably good intuition about what entities are. So let's just talk about emergent properties.

[edit] Static emergence

When one speaks of the properties of an entity one imagines a thing that has properties. Typical (and long-standing) examples of emergence of this sort are the saltiness of salt and the liquidity of water. Neither sodium nor chlorine are salty, but sodium-cloride (table salt) is. Thus, saltiness is taken to be an emergent property. Similarly, neither hydrogen nor oxygen at room temperature and pressure are liquid. Yet H2O is. Again, the property of being liquid is taken to be emergent. These are examples of static emergence since the entities being discussed are static and stable. They have the relevant properties simply by virtue of their existence.

Saltiness and liquidity satisfy our definition of emergence as given above because they may be characterized independently of how salty or liquid substances have been constructed. This is an interesting issue to examine.

When looked at more closely, what we mean by saltiness is the ability to stimulate the salt receptors on our tongues. Anything that can do that would be considered salty. When put in these terms, it is clear why saltiness is understood independent of its implementation. Something is salty if it passes an external test, i.e., that the salt receptors on our tongues respond to it. It doesn't matter how the salty substance manages to achieve that effect. All that matters is that the effect is achieved.

Presumably the case is similar for being a liquid. I don't know whether there is a formal chemical definition of what properties a substance must possess to be considered a liquid. If there is no such formal chemical definition, then our intuitive sense of what liquid means will have to do. If there is a formal chemical definition, that's even better. In either case, the property of being a liquid is (presumably) defined independently of how the substance is constructed. In that sense the property of being a liquid, like the property of being salty, is an emergent property.

This notion of static emergence makes emergent much less mysterious than it is often made out to be. An automobile, for example, is emergent in that it has the property, among others, of being able to accelerate from 0 to 60 in a certain number of seconds. It's components don't have that property. Similarly, a house has the property of having a certain number of bedroom. Its components, i.e., sheet rock, studs, etc. don't have that property.

We are so used to building things that have properties that their components lack that we find this phenomenon quite familiar. Much of civilized society is built on our ability to do just this kind of creative engineering.

[edit] Agent-based modeling and dynamic emergence

Static emergence focuses on emergent properties. Phenomena may also be considered emergent. Arguably, this sort of emergence is even more important than static emergence, as vital as static emergence is to our lives. Emergent phenomena are phenomena that appear dynamically and that may be understood in dynamic rather than static terms.

Most agent-based models illustrate emergent phenomena. For example, Schelling's segregation model exhibits the emergent phenomenon of the formation of segregated neighborhoods. That result can be described independently of the mechanism that brings it about.

Most agent based models are intended to illustrate that some simple low-level behaviors (rules) will bring about results that may be described in their own terms at a higher level. Often one notices the higher-level phenomena first and then wonders why they occurred. Building an agent-based model that produces those phenomena as it follows what appear to be reasonable rules (that are often seen as not designed to produce those results) is a way of showing how the higher level effects might have been produced. (Clearly the fact that any particular model produced some particular results is no proof that those results were produced in the real world by those lower-level rules.)

At other times one wonders what effect some low level rules might have. An agent-based model can be built to find out. One builds a model in which agents follow the proposed rules and then sees what higher level phenomena appear, if any.

[edit] Geosynchronous orbit: a very simple example of dynamic emergence

An interesting and very simple example of dynamic emergence is a satellite in geosynchronous orbit. When in a geosynchronous orbit, a satellite appears to remain stationary above one spot on the earth's surface—which is always on the equator. But how does that happen? The satellite is not tethered to that spot—although it behaves as if it were.

A satellite in geosynchronous orbit is in an orbit that causes it to make one revolution around the earth every 24 hours. It would follow the same orbit no matter how fast the earth is rotating on its axis. Yet because the earth rotates on its axis (also) once every 24 hours, the net effect is that the satellite appears stationary. That is an emergent phenomenon.

This is a very simple emergent phenomenon, but it satisfies our notion of what it means to be emergent, i.e., that the property of interest can be described independently of its implementation. In this case the property is that the satellite remains stationary with respect to the earth's surface. This effect is achieved (implemented) by placing the satellite in the appropriate orbit.

[edit] Computer software as producing emergence

The definition of emergence as inhering in properties that may be described independently of their implementation should bring to mind something with which all computer scientists are familiar: software specifications, software APIs, and more generally, what has been called information hiding—the distinction computer science makes between the definition of some functionality and the manner in which that functionality is implemented. This is exactly the point of emergence.

Part of the "magic" of software is that it is able to produce functionality that is not simply derivative of the underlying computer. Part of the attraction of writing software is that one can create code that does something that appears to be new and original. When someone uses that software, it is the new functionality that matters, not the implementation.

Although software developers justifiably take pride in how they implement some functionality, the creative rush comes from realizing that one can create something new, something that acts differently in the world from anything that came before. It is the opportunity to think of and then create new functionality that makes software development so exciting and attractive. When one writes software, one is exercising the power of emergence.

[edit] Exchange: a very simple example of emergence in software

More mundanely, here is a very simple example of emergence in software.

temp = x;
x = y;
y = temp;

These three lines of code exchange the contents of x and y. Yet not one of them has that effect by itself. Not only that, there are many ways of exchanging the value of two variables. For example,

list.push(x);
list.push(y);
x = list.pop();
y = list.pop();

The point is that the functionality exchange(x, y) stands on its own. We all know what it means to exchange the values of two variables. We don't have to describe how it's done to understand its meaning. If necessary one could even specify what exchange means in terms of pre-conditions and post-conditions. We don't care how it's done as long as the result is as specified.

Virtually all computer software is emergent in this sense: what matters is the functionality that the software produces, not the way it produces it.

So emergence is not at all a mysterious phenomenon for software developers. What we do every day, what we are paid to do, is to write software that produces emergence.

[edit] The fundamental difference between traditional programming and agent-based modeling

Multiple threads. Concurrent processes make agent-based modeling both far more difficult to predict and far more open to the emergence of surprising effects.

Personal tools