If a tree casts a shadow is it telling the time? Russ Abbott Department of Computer Science, California State University, Los Angeles, Ca, USA [email protected] Abstract. Physical processes are computations only when we use them to externalize thought. Entities provide nature with a way to preserve structure over time. We think in terms of entities because they are so central to how the world is. Computation is the performance of one or more fixed processes within a contingent environment. We reformulate the ChurchTuring thesis so that it applies to software rather than to computability. When suitably formulated, agentbased computing in an open, multi-scalar environment represents the current consensus view of how we interact with the world. But we don’t know how to formulate multi-scalar environments. Keywords: agents, agent-based, agent-based computation, Church-Turing thesis, Church’s thesis, computing, computation, environment, ideas, interaction, interactive computation, models, multi-scalar environment, thought, thought externalization, thought tools, unconventional computation. 1 Introduction In the preface to the first edition of the International Journal of Unconventional Computation, the editorial board1 welcomed papers in “information processing based on physics, chemistry and biology.” But the Board left undefined what it means to say either (a) that a physical, chemical, or biological system is doing “information processing” or (b) that information processing is “based on” physics, chemistry, or biology. In this paper we explore these issues by focusing on these questions. What is computation? How can computation be distinguished from other natural processes? Abbott What is the relationship between ideas and computations? What is the relationship between a computational process and the environment within which it occurs? What is the relationship between ideas and how nature is organized. Our conclusions will be that physical processes are considered computation when we treat them as externalized thought and that computation itself involves the playing out of fixed processes against a contingent environment. We argue that the notion of entities is central to how nature is organized and that our notion of entities corresponds to this organization. We re-interpret the ChurchTuring Thesis: programs represent how we understand rigorous thought to be expressed. We then agree with Wegner2 that the agent-based model of computation is the right way to think about interaction with an environment. But we claim that we do not yet know how to model multi-scalar environments. 1.1 Is Google reading my email? That’s the first question in the Google Gmail help center3. This question arises because Gmail places ads next to email messages, and the selection of ads is based on the contents of the messages. Google’s answer to this question has Putting Complex Systems to Work 1/28 varied over time. On March 13, 2006, the posted answer was as follows. Google computers scan the text of Gmail messages in order to filter spam and detect viruses, just as all major webmail services do. Google also uses this scanning technology to deliver targeted text ads and other related information. The process is completely automated and involves no humans. [Emphasis added.] In other words, Google’s computers are reading your email—but no human beings are. That most people find this reassuring illustrates the intuition that it’s what goes on in the mind of a human being that matters to us. One might object that if a computer is reading one’s email (and storing its contents in a database), a person might read it later. That’s quite true, and the fact that only Google computers (and not Google employees) are reading one’s email when selecting ads does not guarantee one’s privacy. But if no person ever reads one’s email, then most people will not feel that their privacy has been violated. After all, email is read by a number of computers as it passes from sender to receiver. No one has ever worried about that. The moment of violation occurs when some living human being becomes consciously aware of one’s personal information. treats messages as character strings; no meaning is extracted. The kind or reading that Google computers do extracts (or attempts to extract) meaning so that related ads can be displayed. This raises the question of what we understand by the term meaning. That’s clearly a larger topic than we can settle here, but our short answer is that our intuitive sense of meaning has something to do with an idea or thought forming in a mind.* At this stage in the development of technology, most people don’t believe it makes sense to say that an idea has formed in the mind of a computer—or even that a computer has a mind. We may speak informally and say something like “the computer is doing this because it thinks that.” But when we say these sorts of things, we are deliberately speaking metaphorically.†4 Until we start to think of computers as having minds that have subjective experience, minds in which ideas can form—then most people will feel comfortable with Google’s reply that its computers, but no human beings, are reading one’s email. 1.2 Thinking and thought tools If a tree grows in a forest, but no one counts its rings is it counting years? Is it performing an unconventional computation? If a tree grows in a forest but no * But, one might argue, the kind of reading that occurs when a computer transmits a message along a communication channel is qualitatively different from the kind of reading that occurs when a Google computer determines which ads to place next to a message. The former Abbott † This is different from the formal semantics sense in which meaning refers to a mapping from an expression to a model. We are taking what Dennett calls the intentional stance. Although computers don’t (and given current technology can’t) take an intentional stance, our attributing such a perspective to them reflects what we will refer to later as our externalization of though. Putting Complex Systems to Work 2/28 one knows it’s there, is it instantiating the idea of a tree? These questions have the same sort of answers as does Bishop Berkeley’s famous question: if a tree falls in a forest with no one around to hear it, does it make a sound? Berkeley’s question is not as difficult as it seems. Our answer, which is different from Berkeley’s,* is that one must distinguish between physical events and subjective experience. If a tree falls in a forest, it generates (what we call) sound waves whether someone is there to hear them or not. But if no one is there to hear the sound, if no being has a subjective experience of the sound, then no sound will be heard. The same holds for ideas. Like the subjective experience of a sound, the idea of a tree exists only as a subjective experience. If no one has that subjective experience, then a tree without anyone knowing about it will not be instantiating the idea of a tree. Even if one were to grant that the idea of a tree is exactly the right way to describe that particular aspect of nature, that idea exists only as an idea, and it exists only in the mind of someone who is thinking it. Ideas exist only as subjective experience. In saying this we are taking an explicitly anti-Platonist stance: there is no realm outside the mind in which ideas exist on their own. that an idea is something that occurs only in someone’s mind. The ideas in this paper exist only in the mind of the author and the minds of the readers as the author and readers are thinking them. These ideas don’t exist on the paper or on the computer screens on which these words appear. They don’t exist in the computer memory in which these words are stored. Just as the moment at which an invasion of privacy occurs is when some being-with-a-mind learns something personal about us, an idea exists only when someone is thinking it. We go to such lengths to make this point because our position is that computations are ideas that we have externalized in a way that allow us to use physical processes to perform them. When a tree grows rings, it just grows rings. But when we use that tree-ring growth as a way to count years, i.e., to help us work with ideas such as the idea of a year, then we can say that the tree has performed a computation—an unconventional one. When a computer runs is it computing? Our answer is the same. A computer is computing only when it is understood to be performing some externalized mental activity. Otherwise, it’s just an arena within which electrons are moving about. This is not intended as mystical or profound—just a statement of the brute fact The internalization and then the externalization of thought One may trace one thread through the history of thought as its internalization followed by its externalization. Berkeley’s answer is that it makes a sound because God, who is always everywhere, hears it. Seeking knowledge externally. Initially we looked outward for answers to ques- * Abbott 1.3 Putting Complex Systems to Work 3/28 tions about how to make sense of the world. Not knowing what else to do, we looked to sources of what we hoped were authority: priests, oracles, prophets, sacred writings, divinities, etc., to tell us what thoughts to install in our minds. We often fought with each other about whose sources of knowledge were right. In a New York Times op-ed piece5 Lorenzo Albacete, a Roman Catholic priest, articulated the position of those who fear the use of religion as a source of knowledge. For [nonbelievers], what makes Christianity potentially dangerous [is] its insistence that faith is … the source of knowledge. In other words, Christianity—and faithbased religions in general—are considered dangerous by nonbelievers because they ask their adherents to give up the right to examine externally supplied ideas but instead to adopt them “on faith” and to install them uncritically in their minds.* Seeking knowledge internally. As Albacete notes later in the same piece, by the time of the Roman Empire, the use of religion as a source of ideas about how nature works had been discarded by enlightened thinkers. Greek and Roman philosophers believed that they themselves could be a source of knowledge about the world.† * † If such ideas are understood by the faithful as God’s gift to mankind, one might think of this as the Trojan Horse approach to knowledge. Unfortunately, this news seems not yet to have reached significant portions of the contemporary world. Abbott The step from looking for external sources of knowledge to supposing that perhaps we can figure things out for ourselves is what we are referring to as the internalization of thought—attributing to oneself the power to produce thoughts of value and rejecting the notion that thoughts must originate externally to be valid. The externalization of internally generated knowledge. The next step is the attempt to externalize the knowledge (or at least the ideas) that are generated internally. We argue that much of computation, both conventional and unconventional results from an attempt to externalize internally generated ideas. We also sketch out our perspective on the relationship between ideas and nature, namely that our idea-driven approach to knowledge necessarily mirrors nature’s approach to generating the subject matter to which those ideas are intended to apply. In particular, nature builds complexity from the bottom up. Each new level of abstraction consists of new entities, new properties, and new functionalities—although these entities, properties and functionalities are not labeled as such. We tend to understand nature reductively, i.e., from the top down. 1.4 To come Section 2 continues the discussion of thoughts and introduces the notion of thought tools, for which it provides a brief history. Section 3 steps back from the relationship between ideas and computing and discusses entities as fundamental to nature. Section 4 build on the Putting Complex Systems to Work 4/28 discussion of entities to discuss thought externalization today and how ideas tend to be the top-down mirror of a bottomup nature. Section 5 considers how computation might be defined. Section 6 discusses the agent-based computing paradigm as more than just an approach to programming and modeling but as common to many of the ways we think about both thinking and our interaction with nature. 2 Historical tools for the externalization of thought In this section we sketch a brief history of thought externalization. 2.1 Time computers Historically we have used natural processes to help us externalize and express our ideas about time, i.e., the daily, monthly, and yearly cycles of the earth, moon, and sun. Not to beat this point into the ground, day, month, and year are ideas. As ideas, they exist only in the mind—no matter how accurate or true they are as descriptions of nature. The first time-computers were the actual processes that corresponded to our thoughts. The rising and setting of the sun were the physical events that we used to keep track of the mental events: the start and end of a day. Similarly for the moon. Yearly events such as river floodings and the comings and goings of the seasons helped us keep track of the mental event: the yearly cycle. This is a somewhat subtle point. Our ideas about time presumably resulted from our observations of the events referred to above. The only reason we thought about a day was because of the Abbott daily cycle of the sun. But once we invented the idea of a day, we turned the tables on the underlying phenomena and used the sun’s rising and setting to represent that idea. Reality became for us the embodiment of our ideas. It didn’t take us long to invent more sophisticated means for tracking time. The sundial, for example, is an analog computing device. The position of the sun’s shadow is an analog for the mental event time-of-day which corresponds to the physical relationships between the relative positions of the sun and the earth. With the sundial we started to arrange physical materials to help us track our thoughts. In building sundials we set up shadow casters, which in conjunction with the sun and the markings we made on the surface on which the shadow is cast, helped us track (our ideas about) the passing of the day. Presumably building our own shadow casters was a fairly easy step from using pre-existing shadow-casters, e.g., trees, for the same purpose. Hence our title: if a tree casts a shadow, is it telling the time? 2.2 Number and space computers Number computers. Apparently we started to count quite early. Bones with notches carved into them appeared in western Europe 20,000 to 30,000 years ago. There is evidence of the use of a tally system—groups of five notches separated from each other. With tally systems not only did we mark physical materials to help us keep track of numbers (which are also mental events), we also invented ways to make counting Putting Complex Systems to Work 5/28 easier by the way in which we arranged these marks, i.e., in groups. Soon we invented the abacus. With these primitive computers we separated the computational process from its dependency on natural processes. Sundials and astronomical masonry depend on the sun and the stars. Counting depends on nothing other than human activity. Once we invented computational devices that were independent of non-human physical processes it was a short step to written notation. By approximately 3,000 BC cuneiform writing on clay tablets using positional notation was known in Babylonia. Space computers. Besides time and numbers, the Pythagoreans in Greece and Euclid in Egypt developed ways to think about space. We know that early geometers thought about construction issues. The straight edge and compass were their (human-powered) thought tools. They used them to externalize, to create representations of, and to manipulate the ideas of straight lines and circles. Is it reasonable to call abaci and geometers’ tools computers? Even though abaci and geometers’ tools depend entirely on human activity to make them “run,” we feel justified in calling them computers because they are used according to mechanical rules. Even though the source of energy for an abacus is the user, the abacus user follows strict rules— rules which could be automated. 2.3 Thought tools for symbol manipulation Beyond time, numbers, and space, we also built thought tools to represent Abbott symbolic thoughts and relationships. Sowa6 describes the Tree of Porphyry. The oldest known semantic network was drawn in the 3rd century AD by the Greek philosopher Porphyry in his commentary on Aristotle's categories. Porphyry used it to illustrate Aristotle's method of defining categories by specifying the genus or general type and the differentiae that distinguish different subtypes of the same supertype. Another attempt to externalize symbolic thought has been credited to Ramon Lull in the late 13th century. Smart7 describes it as follows. Ramon Lull’s logic machine consisted of a stack of concentric disks mounted on an axis where they could rotate independently. The disks, made of card stock, wood, or metal, were progressively larger from top to bottom. As many as 16 words or symbols were visible on each disk. By rotating the disks, random statements were generated from the alignment of words. Lull’s most ambitious device held 14 disks. The idea for the machine came to Lull in a mystical vision that appeared to him after a period of fasting and contemplation. It was not unusual in that day … scientific advances to be attributed to divine inspiration. He thought of his wheels as divine, and his goal was to use them to prove the truth of the Bible. … In “Gulliver’s Travels,” Swift satirizes the machine without naming Lull. In the story, a professor shows Gulliver a huge contraption that generates random sequences of words. Whenever any three or four adjacent words made sense together, they were written down. The professor told Gulliver the machine would let the most ignorant person effortlessly write books in philosophy, poetry, law, mathematics, and theology. This may be the first use of nondeterminism in computing. Putting Complex Systems to Work 6/28 Soon thereafter William of Ockham discovered the foundations of what were to become De Morgan’s laws of logic. More specifically, from Sowa8: (Ockham, 1323) showed how to determine the truth value of compound propositions in terms of the truth or falsity of their components and to determine the validity of rules of inference … in terms of the truth of their antecedents and consequents. Entities are nature’s way of having and remembering ideas In this section we step back from thought externalization to discuss what we might be having thoughts about. In particular, we discuss entities and the relationship between entities and ideas. Our fundamental conclusions are as follows. 3 Entity formation, i.e., the creation of naturally occurring entities, is an objectively real phenomenon by means of which nature creates entities with new properties and functionalities. To a great extent, idea formation is a parallel process by means of which we (i.e., human beings) create concepts that correspond to imagined or supposed entities and their properties. We create ideas as a way both (a) to understand nature and (b) to build upon nature. 3.1 Entities As discussed elsewhere9 there are two kinds of entities: static and dynamic. Static entities—for example, atoms, molecules, and solar systems— maintain their structure (and hence their reduced entropy) because they exist in energy wells—and hence have less mass as an aggregate than their components.* Dynamic entities—for example, living organisms, social and political organizations, and (strikingly) hurricanes— maintain their structure (and hence their reduced entropy) by using energy they continually import from outside themselves—which makes them famously far from equilibrium. Because of the flow of imported energy, dynamic entities have more mass as an aggregate than the combined mass of their components.† * The creation of ideas and the process of matching them to reality is the essence of science. The creation of ideas and the process of shaping reality to match them is the essence of engineering. † Both processes involve both entities and thought externalization. Abbott Paul Humphreys (1997) suggested a similar notion, which he called fusion. The following is Timothy O’Connor’s summary (2006) of Humphreys’ position. “[Emergent properties] result from an essential interaction [i.e. fusion] between their constituent properties, an interaction that is nomologically necessary for the existence of the emergent property.” Fused entities lose certain of their causal powers and cease to exist as separate entities, and the emergents generated by fusion are characterized by novel causal powers. Humphreys emphasizes that fusion is a “real physical operation, not a mathematical or logical operation on predicative representations of properties.” Speaking poetically one might refer to the energy flowing through a dynamic entity as its soul or spirit. When the energy stops flowing, Putting Complex Systems to Work 7/28 3.2 Entities and specifications Entities have what are often called emergent properties, which are defined at the level of the entity itself. That a government (a dynamic entity) is democratic or that a diamond (a static entity) is hard are properties defined at the level of the government or the diamond. They are not properties of the components of a government or diamond. Describing something in terms of its externally observable properties is common in both software and systems engineering. In computer science, describing something independently of its implement is called a specification. The specifications of abstract data types and early attempts to axiomatize software are early examples. It is now commonplace to write specification documents when describing software systems. Software specifications may be formal (i.e., expressed in a formal language—which is very difficult to carry out in detail.) or informal (i.e., expressed in a natural language—which is common practice) as in a natural language specification of a software system’s API.* Software specifications describe the behavior of soft- * the entity dies. From this perspective a soul or spirit has mass. An Application Programming Interface (API) is the collection of operations that may be performed on a software system via calls to the system by other software. For each API element one specifies how that element may be called, what parameters it is able to accept, the effects of the call on the system (i.e., how the system’s conceptual model will be effected by the call), and the results returned if any. Abbott ware without prejudicing its implementation. In systems engineering, the description of a system in terms of its observable properties is called a requirements specification—again a description of a system in terms that do not constrain the implementation of those properties. Familiar as we—as software and system developers—may be with using specifications to describe software or engineered systems, it may nevertheless seem strange to talk about naturally occurring entities such as diamonds or biological organisms in such an abstract way. One wonders how it is possible to discuss the properties of an entity independently of its components. Doesn’t its internal organization matter? Do such entities spring into existence fully formed?† † Because this seems so mysterious, one may be tempted to look for hitherto unknown mechanisms for self-organization. We see this as a distraction. There is nothing mysterious about how entities form. Naturally occurring static entities form as a result of well understood physical laws: atoms are created from elementary particles; molecules form from atoms; etc. Naturally occurring dynamic entities also form as a result of natural processes. Governments form when people create them—either explicitly or implicitly. Hurricanes form when the atmospheric conditions are right. Selforganization is not the point. Not that all the problems of entity formation have been solved. It is still an open question how one might form a biological cell “from scratch.” There is no known mechanism for producing a cell other than through cell division, i.e., from an existing cell. How did the first cell form? We don’t (yet) know. Putting Complex Systems to Work 8/28 The marvel of entities is not in some seemingly magical process of selforganization; the marvel is that entities exist at all and that they have properties and behaviors that in some sense may be described autonomously. How can something that seems altogether new— like a bird—and that has new properties—like the ability to fly, a property that seems to be defined in terms of the entity itself—appear apparently from nowhere?* 3.3 Entities, their properties, and naturally occurring designs The answer is that the “new properties” that we attribute to entities are really nothing more than ideas in our minds. Properties as such don’t exist in nature. Entities are what they are no matter what properties we attribute to them. The idea of a property doesn’t exist in the mind of nature. Nature doesn’t have a mind. This is not say that an entity’s new properties are fictitious. Hemoglobin, for example, can bind to, transport, and release oxygen. This property, while true of hemoglobin, is not a label one finds attached to hemoglobin molecules. There is no little FTC-approved tag attached to each hemoglobin molecule that says: certified capable of carrying oxygen. Yes, hemoglobin carries oxygen. But the conceptualization of hemoglobin as having that property is an idea in our own * The fact that entities seem to spring into existence in some sense fully formed and that they have properties that seem to be defined selfreferentially is the intuition behind the argument from Intelligent Design. Abbott minds, not in some universal mind that tracks the properties of all entities. Nonetheless, hemoglobin does carry oxygen. And because hemoglobin carries oxygen, a certain form of life (i.e., creatures like us) was able to establish itself on earth. 3.4 Designs and levels of abstraction Suppose we were a contractor for a country that wanted to understand how its government actually worked. We have been asked to produce a complete engineering design description of the government as it currently exists. Presumably, the description would have to include the equivalent of engineering drawings of the government, the components of the government, the components of those components, etc. Since human beings are components of the government, we would eventually find ourselves having to describe the role of hemoglobin molecules in human survival. Each level of such a description would be best understood in terms of what in computer science is called a level of abstraction. For the sake of this example, lets suppose that hemoglobin molecules are black-box components—i.e., biological piece parts—which can be included in our design without our having to build them ourselves. All we care about is their functionality, i.e., their ability to carry oxygen. Thus all we care about with respect to a hemoglobin molecule is its specification, not how it implements the functionality described by its specification. Putting Complex Systems to Work 9/28 Similarly, when we describe how the government functions, we would take the description of the kinds of things that people can do as opaque. As far as the government’s functioning is concerned we don’t care that people keep themselves alive through the use of hemoglobin molecules. Even if in describing a government we were responsible for describing the design of the people who participated in it—and hence had to understand the role of hemoglobin in keeping people alive—when thinking about the functioning of the government itself, we would not be concerned with that aspect of how people are designed.* The important point here is that the design of one level of abstraction, e.g., a government, is expressed in terms of other levels of abstraction, e.g., people, whose designs are expressed in terms of still other levels of abstractions, e.g., hemoglobin. The fact that these levels of abstractions cannot be completely separated does not falsify this picture; it simply complicates it. To falsify this approach to design description one would have to argue that higher levels of design can (and must) be expressed completely in terms of the lowest level elements. In this case, it would mean that the design of a government would be expressed in terms of biological piece parts such as hemoglo* This, of course, is a gross simplification. Governments are concerned, for example, with issues of air quality, which cannot be understood without knowing that human beings rely on oxygen to survive. This is one reason that modeling is so problematic. We discuss this issue elsewhere, see (Abbott, 2006). Abbott bin. Clearly that makes no sense. The structure of a government is defined in terms of roles that are filled by human beings, not by collections of biological piece parts. Designs of all naturally occurring entities† when given in terms of such increasing levels of abstraction are bottom-up designs. The entities under consideration already exist. One is interested only in how they come together to accomplish what they do. Although the properties and abstractions of naturally occurring designs are not made explicit by nature—nature doesn’t document her designs—as they would be were they documented by well-trained engineers, it seems pretty clear that nature’s designs are best understood in terms of such levels of abstraction. In particular: A wolf pack is a pack of wolves, not an aggregation of wolf organs and other biological piece parts. A wolf is a system of organs and other elements, not an aggregation of molecules and atoms. Hemoglobin is a structured pair of proteins and other components, not an aggregation of elementary particles such as electrons and quarks. Our position, then is that nature is an engineer whose design make sense only † We count governments as naturally occurring entities. Governments may be understood as more sophisticated versions of long-standing naturally occurring animal groupings such as flocks, herds, tribes and (bacterial) colonies. Putting Complex Systems to Work 10/28 when understood in terms of multiple levels of abstraction—even though those levels of abstractions are not explicitly labeled as such. Our position also is that nature accomplishes this feat of multi-level design through the use of entities. It is the entities in nature’s creations that carry identity, properties, and functionality—even though they are not labeled as such. 3.5 The role of entities in naturally occurring designs As the preceding suggests, entities are not only objectively real, they are essential to the design of higher level constructs. An entity is what one might call a design meta-construct. Like a class or object in an object-oriented programming language, the notion of an entity refers to a kind of design construct, not to any particular element in any particular design. As a design meta-construct entities play multiple important roles in naturally occurring designs. Entities allow nature to build levels of abstraction; entities provide nature a way to preserve patterns over time; and entities serve as nature’s memory. Entities allow nature to build levels of abstraction. Once a level of abstraction has been constructed (as an entity), nature can then build new levels of abstraction by combining existing levels of abstraction and exploiting their properties and functionality. As we indicated above, it simply makes no sense to speak, for example, of a colony of bacteria as if it were a colony of cell organelles and other cellular elements. In order for nature to build the level of ab- Abbott straction colony-of-bacteria, nature first had to build the bacterium level of abstraction. So even though nature does not label her levels of abstractions the way we do— there are no tags saying “bacterium” attached to bacteria—the levels of abstractions and the properties and functionalities that they implement are real nevertheless. As we argued above, a level of abstraction is a specification, a description of something from a behavioral and external perspective. Another way of putting it is that a level of abstraction is a specification or conceptualization of a set of properties and functionalities. Informally we might refer to such a conceptualization as an idea. In this sense, entities are nature’s way of having an idea. Entities preserve useful patterns of relationships over time. We discuss this in a bit more detail below. For now the idea is that organizing two or more entities into a structure of some sort often creates new functionality. Hemoglobin, for example, consists of two strands of protein. They must be combined into a larger organization before they can transport oxygen. An entity is such a persistent stable structure of components. Entities serve as nature’s memory. If we think of memory as the ability to retain structure, i.e., reduced entropy, entities provide that function for nature. Both static and dynamic entities have reduced entropy (are more structured) than their components would have otherwise. The creation of an entity is the creation of a Putting Complex Systems to Work 11/28 means whereby reduced entropy persists over a period of time. But reduced entropy is only a metric; it is not content. Reduced entropy comes about when some structure is imposed. It is the imposed structure that matters. Entities are a way for imposed structures to persist over time. Consider the difference between the face one may see in a cloud and a similar face on a human being. The face in a cloud is fleeting; no mechanism exists to retain it. The face of a living human being persists. It changes as the person changes, but it persists as a face over time. Entities with their built-in mechanisms for persistence provide a way for nature to retain structures that are imposed over the elements that make up the entity. Static entities impose structures over fixed collections of components. Dynamic entities impose structures over changing collections of components. With dynamic entities nature created a way to remember structures which are separate from the components that the structures organize—quite a trick. 3.6 The reductionist blind spot Isn’t it obvious that higher level entities are composed of lower level entities? Why even bother to say that a flock of birds consists of birds or that a person has organs? Extreme reductionism claims that all explanations can be reduced to the fundamental laws of physics. In10 we quote Steven Weinberg arguing that reductionism is Abbott the view that all of nature is the way it is (with certain qualifications about initial conditions and historical accidents) because of simple universal laws, to which all other scientific laws may in some sense be reduced. … Every field of science operates by formulating and testing generalizations that are sometimes dignified by being called principles or laws. … But there are no principles of chemistry that simply stand on their own, without needing to be explained reductively from the properties of electrons and atomic nuclei, and in the same way there are no principles of psychology that are free-standing, in the sense that they do not need ultimately to be understood through the study of the human brain, which in turn must ultimately be understood on the basis of physics and chemistry. It is this view that the notion of entities disputes. Consider two examples of entities: a solar system and a living biological organism. We claim that neither can be understood strictly in terms of the principles of physics. For one things, neither can even be defined in terms of the principles of physics. How would one define solar system in a definition (or a cascade of definitions) that contained references to nothing but elementary particles and forces? A solar system is not just a collection of elementary particles under mutual gravitational attraction. A solar system consists of one or more stars along with one or more planets orbiting around that (or those) stars. But what is a star, and what is a planet? We claim that neither can be defined without implicitly or explicitly building in our notion of an entity. Putting Complex Systems to Work 12/28 Furthermore, if one talks about proprieties of a solar system, such as a count of the number of its planets, or the length of the year of one of its planets, or whether the orbit of a planet is chaotic, etc., those ideas also rely on the notion of a planet as an entity. Certainly, stars and planets are made up of elementary particles, and certainly it is the force of gravity, an elementary force, that holds it all together. But it is wrong to say that notions such as a solar system are reducible to terms defined at the level of elementary physics. This is not playing with words. The very notion of a solar system is built on the notion of a star and some bodies orbiting it. If one can’t talk about those bodies as entities, the notion of a solar system has no meaning. The case for biological organisms is even more striking. How would one define the term alive using concepts from elementary physics? In our view it makes sense to define alive as a property of dynamic entities. A dynamic entity is alive as long as it persists. But of course, unless one includes the notion of entities, and especially dynamic entities within the realm of elementary physics, that sort of definition is not accessible to the pure reductionist. At a more concrete level, how would one discuss the mechanism through which oxygen-breathing organisms keep themselves alive? To do so, one must talk about hemoglobin and oxygen molecules, i.e., about entities. The requirement that oxygen be carried from the lungs (what are they in elementary Abbott terms?) to the rest of the body and the story of how that is accomplished can’t be told in terms of elementary physical particles. It’s not a matter of quarks, electrons, etc. 3.7 Entities are real, but forces and causes are epiphenomenal All the entities involved in describing the role of hemoglobin in keeping biological organisms alive are made up of elementary physical particles. And all the forces involved are elementary physical forces. But the description of the design of biological organisms as dependent on the property of hemoglobin to transport oxygen simply is not a description that can be told in the language of elementary physics. Isn’t this a contradiction? We are not claiming that the particles and forces of elementary physics are not relevant to either solar systems or biological organisms. They are essential. As we discussed in11 forces and causality that one might like to attribute to entities found on levels higher than that of elementary physics are epiphenomenal. There are no higher level forces: there is no vital force; there are no sun gods. How can one insist that higher level entities are real elements of designs when they have no causal force? Hemoglobin transports oxygen. One can’t just say that an aggregation of elementary particles that make up oxygen bound to hemoglobin float along. Furthermore, one must talk about the heart as the source of power that pumps the hemoglobin through the body along a network of arteries and veins carried in a stream of fluid. None of that can be de- Putting Complex Systems to Work 13/28 scribed in the language of elementary physics without implicitly or explicitly importing the notion of an entity. If one is provide an accurate description of how the body works, that description must talk about oxygen and hemoglobin. We claim that it is reasonable to describe the mechanisms that describe the functioning of oxygen-breathing organisms as principles of biology. We also claim that those mechanisms are separate from and cannot be reduced to those of elementary physics. These are mechanisms that are described on the level of blood vesicles, oxygenation, pumps, lungs, hemoglobin, etc. The structures that have been built to support oxygenbreathing organisms are new creations in much the same way that the mechanisms built into computer software are new creations. The principles of biology must indeed be implemented by mechanisms that operate on the level of elementary physics. But one could never derive the fact that biological organisms depend on hemoglobin-carrying oxygen being pumped though the body from the principles of elementary physics. Implementation of the laws of the higher level sciences by those of elementary physics is not the same as reduction of those to those of elementary physics. (We discuss the difference between implemented by and reducible to in the following section.) It is entities that serve as the ontological components in terms of which the laws of the higher level sciences are expressed. Entities are physically real, and entities obey laws that must be implemented by but cannot be reduced to Abbott those of elementary physics. The reductionist blind spot is the failure to see and understand the reality and significance of entities. The reductionist blind spot derives from the confusion caused by the fact that although entities are objectively real, interactions—i.e., forces and causal relationships—among higher level entities are epiphenomenal. 3.8 Patterns are implemented by but are not reducible to the elements they organize The notion of implemented by but not reducible to deserves some attention. A computer program is implemented by the operations defined by the programming language in which it is written. But the functionality of the computer program is not reducible to those operations. Although an algorithm is composed from a set of basic operations, it is neither derivable from nor a logical consequence of those. Similarly a musical composition is implemented by the notes of the scale. But the melody and harmonies of a musical composition are neither derivable from nor reducible to those notes. In these cases, as in nature, raw materials and fundamental operations are organized into specific patterns to create something new. The patterns built into such designs are separate from and not reducible to the components and forces that those patterns arrange. Although algorithms and musical compositions are important (or useful or enjoyable), neither is an entity according to our definition. Algorithms and musical Putting Complex Systems to Work 14/28 compositions don’t persist on their own. In general, though, even though not all patterns are entities, all entities embody patterns. As we noted above one of the roles that entities plays in nature is that they are nature’s way of preserving patterns over periods of time. As our examples have illustrated, elements arranged in a pattern often have properties that are separate from the properties of the underlying elements. These pattern-level properties are often not even describable in the language used to describe the underlying elements. This may seem profoundly obvious, but it seems to be a point that we tend to forget. 4 Thought externalization, science, engineering, and computer science 4.1 Science and thought externalization As human beings we approach nature with a mind that works with ideas. One of the most pervasive and central ideas in our repertoire is that of a thing, i.e., an entity. This is entirely understandable. We evolved the ability to think in terms of entities because entities are so central to how nature works. A description of how we use our ability to think to understand nature is a description of how science proceeds. Science may be understood as a search for an explanation of how nature works. Since we apprehend nature at an intermediate level—at least initially—we nei- Abbott ther see nor know how nature built up the various levels of abstraction that we encounter. So what do we do? We observe phenomena, which we attempt to describe in terms (ideas) that fit the phenomena. Much of early biology and chemistry followed this pattern. These disciplines organized and catalogued biological and chemical entities respectively into the well known biological taxonomies and periodic table of chemical elements. In effect we developed specifications of the phenomena that we observed. This differs from the job of writing a system or software specification in that an observational specification attempts to describe a system as it exists, not a system as we want it to be. But this is the primary difference. In both cases, one develops an autonomous specification of phenomena on the level at which they are observed and independently of their implementation. Once we have such a specification, instead of developing software or engineering a system that has those properties as software developers or systems engineers would do, we (as scientists) look for underlying mechanisms that we hope will explain how nature brings about the specified phenomena. In other words, science is the reverse engineering of nature. 4.2 Term externalization: converting a phenomenological definition to a physical definition Frequently the process of looking for an implementation of a phenomenological- Putting Complex Systems to Work 15/28 ly-based specification leads to a clearer understanding of the original idea. As Scerri12 points out in his review of the development of the periodic table, chemists originally thought that chemical elements were characterized by their atomic weights. We now know that it is the number of protons that characterizes a chemical element. Thus the intuitive, phenomenological, and informal idea of a chemical element—as a particular type of matter that has certain chemical properties—was made precise by understanding that atomic substances are best grouped according to the number of protons they contain. In a completely different realm, we now think of a year as the time it takes the earth to make a complete orbit around the sun—not a cycle through a sequence of weather periods or a certain number of days. In both of these examples, ideas that started out as specifications of observable phenomena (a chemical element is a class of identically behaving substances, and a year is a traversal though a one cycle of a weather pattern) were redefined in terms of the level of abstractions that could be seen as implementing the observed phenomena. A chemical element is now defined in terms of protons, and a year is now defined in terms of the orbit of the earth around the sun. Our own definition of entity follows the same pattern. There is no generally accepted definition of entity in the philosophical literature. What do in (Abbott, 2007)13 was to define entity in physical Abbott terms as a persistent phenomenon with either more or less mass and with lower entropy than the participating elements would have on their own. Given such a definition, some things that one might think of as an entity no longer qualify. A year, for example, does not qualify as an entity under this definition. Nor does the number 3. But in attaching concepts to nature one often pays such a price. To take a favorite example from philosophical functionalism, we now define the term jade to refer to two distinct chemical compounds, jadeite and nephrite, whereas we originally thought of the term as unitary in reference. 4.3 Engineering as thought externalization Engineering, especially the engineering of large systems, may be understood as something like dream externalization. We think, “I want a system that does this, this, and that—i.e., with these properties and behaviors.” Like all thoughts, dreams of this sort, no matter how dressed up and legitimized in terms of formal requirements are still nothing but ideas in our minds. Yet when our ideas involve imagined systems, we want more than just pretty mental pictures. We want material embodiments of our ideas. We want to have the ideas in our heads converted into physical reality. We want to externalize our ideas and to make them materially concrete. And we often succeed— spectacularly. Much of what we experience in our post-modern 21st century lives is the result of successfully externalized dreams. Putting Complex Systems to Work 16/28 But let’s consider what it means to externalize a thought of something that by definition doesn’t exist. There is no externalize button on our foreheads which, when pressed, causes our ideas to materialize as physical reality. One cannot simply imagine something and expect a material embodiment of it to spring into existence. Furthermore, even when we build something that reflects our ideas, it is impossible to create an external replica of a thought. Nothing outside our heads is a thought. The best we can ever do in externalizing a thought is to create something that we can understand as representing—or perhaps embodying— that thought. Consider a word processing computer program. We design word processors to (appear to) operate in terms of characters, words, paragraphs, etc. Characters, words, and paragraphs are ideas. Word processors operate (when described at one reasonable level of abstraction) in terms of character codes, sequences of character codes bounded by white space character codes, and sequences of character codes bound together as what the word processor may internally refer to as a paragraph data structure. What we do when we attempt to externalize an idea is to mold elements of physical reality into a form onto which we can project the idea we want to externalize. That’s all we can ever do. We can never do more than mold existing reality. But even though we cannot incarnate our ideas as material reality, we can mold physical reality in such a way that it has—or at least appears to have— Abbott properties a lot like those of the ideas we want to externalize.* Thus there is always a tension between (a) building something out of real physical substance (even if that substance involves bits) and (b) externalizing one’s thoughts about what one wants. This tension is easiest to describe with respect to software—but it is true of every constructive discipline, including systems engineering. When one writes software, one is writing instructions for how a computer should perform. That’s all one can ever do: tell a computer first to do this and then to do that. The this and that which the software tells the computer to do are the computer’s primitive instructions. But what we want in the end is for the computer’s this-ing and that-ing to produce a result that resembles some idea in our heads. Thus in software (as in any engineering discipline) our creations always have two faces: (a) a reality-molding face whereby the software (or the engineering design) tells the computer (or other material substance) what to do and (b) a thought externalizing face which represents our ideas about what we want the result of that molding process to mean. The eternal tension is to make these two faces come together in one artifact. * My wife, an English professor, objected to my claim that word processors don’t work with paragraphs. They do such a good job of manipulating text in a way that corresponds to her sense of what a paragraph is, that she wants to credit them with working with actual paragraphs. Putting Complex Systems to Work 17/28 In much the same way as science tends to find bottom-up definitions for what start out as top-down ideas, the two faces of our software and engineering creations often come together as the implementation becomes the definition of the conceptual. Most likely we will soon think of paragraph as meaning whatever MS word produces—although we will continue to distinguish between paragraphs that are well-structured and illstructured semantically. 4.4 Thought externalization in computer science Every computer application represents the externalization of thought. The thoughts that have been externalized and that are being manipulated are the thoughts that are represented by the conceptual model implemented by the application. More importantly every programming language is a tool for externalizing thoughts. Programming languages allows us to externalize our thoughts about symbolic structures and behaviors in the form of computer programs. A programming language is also a computer application. As a computer application, it implements a conceptual model; it allows its users to express their thoughts in certain limited ways, namely in terms of the constructs defined by the programming language. But all modern programming languages are also conceptually extensible. Using a programming language one can define a collection of concepts and then use those concepts to build other concepts. In particular object-oriented programming languages allow their users to create symbolically Abbott what nature does when it creates new entities. We are still learning to use the power of computers to externalize thought. In one way or another, much of softwarerelated research is about developing more powerful, more specialized, faster, easier to use, or more abstract thought tools. We also develop increasingly powerful languages in which to externalize and work with our thoughts. The more we learn about externalizing our thoughts the higher we ascend the mountain of abstraction and the broader the vistas we see. Work in externalizing thought includes declarative programming (e.g., logic programming, functional programming, constraint-based programming, rulesbased systems such as expert systems, etc.), meta and markup languages such as XML and its extensions and derivatives, the Unified (and Systems) Modeling Language (UML and SysML), and the Semantic Web and the OWL Web Ontology Language for externalizing how we look at the world. With OWL we are working in a tradition that dates back to Porphyry—and before. Domainspecific applications also represent externalization of how we think about those domains. Thought tools for the manipulation of images, sounds, videos, etc. have externalized ways of thinking about those domains. Because software can be about an extraordinarily wide range of possible thoughts, computer science has had to face the reality-vs.-thought confrontation Putting Complex Systems to Work 18/28 more directly than any other human endeavor.* And possibly because software as text seems to be the only example of an artifact that directly embodies both aspects of this tension, computer science has been relatively successful in finding ways to come to grips with this problem. Computer science has developed languages in which we can both express our thoughts and control the operation of a computer. We invented so-called higher level programming languages (Fortran being one of the earliest) in which one could write something like mathematical expressions which the computer would evaluate. We invented declarative languages (Prolog is a good example) in which one could write statements in something like predicate calculus and have the computer find values that make those statements true. We combined Prolog and Fortran when we invented constraint programming (which has not been as widely appreciated as it deserves) in which one can write mathematical statements of constraints which the computer ensures are met. We invented relational databases in which one can store information about entity-like elements—along with their attributes and their relationships to each other. We invented languages that allow one to query those databases more or less on the level of that conceptualization. * Much of the perspective on entities outlined in Section 3 is simply the application of software development concepts to nature. Abbott We invented object-oriented programming languages—which led naturally to agent-based and now service-oriented environments—in which one writes programs that consist of interacting entities. At the application level, virtually every computer program—from a payroll program to a word processor to an image processing program—embodies an ontology of the world to which that application applies. To help us write application programs we invented tools and frameworks that define meta-ontologies within which one can create a desired ontology. We did all this by writing programs that tell computers first to execute this instruction and then to execute that instruction. The gap between the underlying computer and the languages in which we write programs is often enormous. But that doesn’t mean that we can forget about the computer. No matter what else it is, and no matter how well our programs (seem to) express the thoughts in our heads, a program is nothing unless it tells a computer which instructions to execute and in what order. In the end, that’s all a computer program is: a means to tell a computer what to do. A computer program is always a way of shaping reality. But a computer program is written in such a way that it shapes reality to come close to embodying ideas in our minds. Computer programs are prototypical examples of how top-down conceptualizing mirrors bottom-up reality shaping. Putting Complex Systems to Work 19/28 One may think of Computer Science may as applied philosophy:* one can think about virtually anything as long as one can express those thoughts in a form that can be used to control the operation of a computer. Similarly, one may think of the computer as a reification machine: it turns symbolically expressed abstract thought into concrete action in the physical world.† As a reification machine, the computer’s interface between thought and action is the computer program. When we write in a programming language we are expressing our thoughts in the programming language—to the extent allowed by the language. When a computer reads what we have written, it takes our writings as instructions about what operations to perform. One’s hope is that the result will correspond to the original thought. 4.5 Thought externalization in systems engineering Although systems engineering, like computer science defines itself as the externalization of thought, systems engineering is just beginning to focus on the issue of direct thought externalization. Model-based development, e.g., SysML, attempts to allow systems engineers to think in a language that both expresses their thoughts and molds at least a virtu* † Fred Thompson, one of my early mentors, is now Emeritus Professor of Applied Philosophy and Computer Science at Cal Tech. With virtual reality we complete the cycle: generating real physical signals with the intention of producing particular subjective experiences. Abbott al reality. But systems engineering is at a significant disadvantage. In computer science we write in languages that control real computers.‡ There are no systems engineering languages that generate real physical systems. The reality that SysML molds is a virtual reality at best. When software developers (a) write a computer program, (b) load it into a computer, and (c) press the Start button, the computer becomes the program they have written. There is nothing comparable for systems engineers. We don’t have a systems engineering language and a device into which descriptions written in that language can be loaded that will become the system the language is describing once one presses a Start button. The closest systems engineering can come to this dream is to write in a language that represents a model of a physical system. But models aren’t reality. Programming languages succeed because they are grounded in the reality of an actual computer executing actual instructions. Models, in contrast, are always divorced from reality. One can’t ever model all aspects of a system. So one chooses what one considers a system’s most important aspects and models those. But that’s always dangerous. See the discussion in (Abbott, 2006) about the difficulty of looking downwards. ‡ UML is an unfortunate step back from computer science’s traditional loyalty to executable languages. Putting Complex Systems to Work 20/28 5 Defining computation In this section we turn to the question of how to define computation. It is surprisingly difficult to find a well considered definition. The one offered by Eliasmith14 appears to be the most carefully thought out. Here is his definition and his commentary. Computation. A series of rule governed state transitions whose rules can be altered. There are numerous competing definitions of computation. Along with the initial definition provided here, the following three definitions are often encountered: 1. Rule governed state transitions 2. Discrete rule governed state transitions 3. Rule governed state transitions between interpretable states The difficulties with these definitions can be summarized as follows: a) The first admits all physical systems into the class of computational systems, making the definition somewhat vacuous. b) The second excludes all forms of analog computation, perhaps including the sorts of processing taking place in the brain. c) The third necessitates accepting all computational systems as representational systems. In other words, there is no computation without representation on this definition. Contrary to Eliasmith we suggest the following. a) The notion of alterable rules is not well defined, and hence all physical systems are potentially computational systems. b) But, it is exactly the fact of interpretability that makes a physical process Abbott into a computation. (Eliasmith doesn’t explain why he rejects the notion that computation requires interpretation.) Eliasmith requires that the rules governing some identified state transitions must be alterable in order to distinguish a computation from a naturally occurring process—which presumably follows rules that can’t be altered. But all computing that takes place in the physical world is based on physical processes. If we set aside the probabilistic nature of quantum physics, and if we suppose that physical processes operate according to unalterable rules, it’s not clear what it means to say that it must be possible to alter a set of rules. This is not intellectual nit-picking. Certainly we all know what it means to say that one program is different from another—that “the rules” which govern a computation, may be altered. But the question we wish to raise is how can one distinguish the altering of a program from the altering of any other contingent element in an environment?* It is the particular program that is loaded into a computer’s memory that distinguishes the situation in which one program is being executed from that in which some other program is executing. But a computer's memory is the environment within which the computer’s cpu (or some virtual machine) finds it* We don’t address the issue of “hard-wired” computations. How fixed must state transitions be before one is no longer willing to say they aren’t alterable—and hence not a computation? Putting Complex Systems to Work 21/28 self, and a loaded program defines the state of that environment. The cpu (or the virtual machine) is (let’s presume) fixed in the same way that the laws of nature are fixed. But depending on the environment within which it finds itself—i.e., the program it finds in its environment—the cpu operates differently, i.e., it performs a different computation. This same sort of analysis may be applied to virtually any natural process. When we put objects on a balance scale, the scale’s behavior will depend on the objects loaded, i.e., on the environmental contingencies.* In both the case of programs loaded into a computer and objects put in the pans of a balance scale, we (the user) determine the environment within which some fixed process (i.e., the rules) proceeds. This brings us back to our original perspective. A process in nature may be considered a computation only when we use it as a way to work with externalized thought. A physical or otherwise established process—be it the operation of a balance scale, a cpu, the Game of Life, or the sun in motion with respect to trees and the ground—is just what it is, a fixed process.† But for almost all pro- * † When a balance scale compares two objects and returns an “output” (selected from left-isheavier, equal-weights, and right-is-heavier), is it performing a computation? It is if we are using it for this purpose. It isn’t if we are using it as a designer setting for flower pots. Of course many processes—such as the operation of a cpu and the operation of a balance scale—are what they are because we built them to be that way—because we anticipated Abbott cesses,‡ whether we create them or they arise naturally, how the process proceeds depends on environmental contingencies. When we control (or interpret) the contingencies so that we can use the resulting process to work with our own thoughts, then the process may be considered a computation. This is the case whether we control the contingencies by loading a program into a computer, by placing objects on a balance scale, by establishing initial conditions for the Game of Life, or by giving meaning to shadows cast by trees. Consequently we agree with Eliasmith that it must be possible to alter a process for it to be considered a computation, but we would express that condition in other words. For a process to be considered a computation there must be something contingent about the environment within which it operates that determines both how it proceeds and how we interpret the result. In other words, we can always separate a computational process into its fixed part and its contingent or alterable part. The fixed part may be some concrete instances of the playing out of the laws of nature—in which case the contingent environment is the context within which that playing out occurs. Or it may be the operation of a cpu—in which case the contingent environment is the memory ‡ using contingencies that we could control in their environment to help us think. Some quantum processes may occur on their own without regard to their environment— although even they are environmentally constrained by the Pauli exclusion principle.. Putting Complex Systems to Work 22/28 which contains the program that is being executed. Or it may be the operation of a program that a cpu is executing—in which case the contingent environment is the input to that program. A computation occurs when we alter the contingencies in the environment of an fixed process as a way to work with our thoughts. This perspective contrasts traditional (theoretical) computation with realworld computation. Normally, one thinks of a (theoretical) computation as a contingent process—one which is defined in a programming language. Like a Turing Machine it runs for free. We contrast this with real-world computations, which result from non-contingent processes which have built-in energy sources and that operate in contingent environments. 5.1 Non-algorithmic computing A corollary of the preceding is that all computation performed by real-world processes are environmentally driven. Computing involves configuring environmental contingencies, i.e., setting up an environment within which a process (or multiple processes) will play themselves out. We refer to this as nonalgorithmic computing because one’s focus is on how an environment will shape a process rather than on a specific sequence of steps that the shaped process will take. No explicit algorithm is involved. Most of what we call unconventional computation is non-algorithmic. It may seem ironic that what we think of as conventional computation is a constrained form of unconventional computation. We are attracted to it because its Abbott single threaded linearity makes it easy to manage. But nature is not linear. Any computer engineer will confirm how much work it takes to shape what really goes on in nature into a von Neumann computer. Even more ironically, we then turn around and use conventional singlethreaded computers to simulate nonlinear unconventional computation. One might say that a goal of this conference is to eliminate the von Neumann middle man—to find ways to compute, i.e., to externalize our thoughts, by mapping them more directly onto the forces of nature operating in constrained environments. The operations performed by the forces are nature are real-world individual Turing Machines. A general purpose computer is a real-world Universal Turing Machine. 5.2 Turing Machines vs. Turing computability Why can’t we look to Turing Machines (and their equivalents) for a definition of computation which is defined independently of thought? Turing Machines, recursive functions, and formally equivalent models rely on the notions of symbols and symbol manipulation, which are fundamentally mental constructs. Eliasmith’s definition doesn’t— although his definition does depend on the notion of rule-governed state transitions, which appears difficult to define non-symbolically. The saving grace of states and state transitions is that they are intentional; they are our way of thinking about what happens in nature. Symbol manipulation is a purely mental activity. Putting Complex Systems to Work 23/28 But Turing Machines and their ChurchTuring Thesis equivalents offer an important insight. They identify symbol manipulation to be what we intuitively think of as computational activity. The Turing Machine model is our way of externalizing an entire class of mental activities, the class that we intuitively identify as computational. In saying this we are separating (a) the sorts of computational activities characterized by Turing Machines, i.e., the Turing Machines themselves, from (b) the class of functions that these models compute, i.e., Turing computability. The various models of computational activities are all defined constructively, i.e., in terms of the operations one may perform when constructing a computational procedure. Furthermore, the equivalence proofs among the standard models are also constructive. We can constructively transform any Turing Machine into a recursive function and vice versa. Turing Machines, recursive functions, etc. are equivalent as programming languages. Computability theory then takes the generic class of software defined in this way and applies it to the task of computing functions. But this second step isn’t necessary. What’s important about the Church-Turing Thesis is not the class of functions that can be computed but the possible programs one may write, i.e., that Turing Machines, recursive functions, etc. are our way of externalizing a fundamental mode of thought. Our revised version of the Church-Turing Thesis is that to be considered rigorous a thought process must, at least in princi- Abbott ple, be expressible, i.e., externalizable as a software. 6 Agent-based computing The Turing Machine model is single threaded—as are the single processor von Neumann computers that we built based on it. But many of our computer science (and other) thought models are either parallel, asynchronous, or nondeterministic. Not all rigorously defined models are linear and single threaded. Yet we have been unable to build thought tools to help us externalize these kinds of non-deterministic computational ideas. Attempts to perform nondeterministic computations on a singlethreaded computer result in unrealizable demands for resources.* Four decades ago agent-based computing, an intermediate form of computational framework, began to emerge. (See Dahl15.) Agent-based computing is an attractive form of asynchronicity because it relies on manageable parallelism—asynchronous computing threads that don’t result in an unrealizable demand for computing resources. Its price is chaotic asynchronicity: minimally different event orderings may yield different results. 6.1 Open and far-fromequilibrium computing Goldin and Wegner16 have defined what they called persistent Turing Machines (and elsewhere interaction machines). These are Turing Machines that perform their computations over an indefinite * If we get it to work on a useful scale quantum computing may be the first such thought tool. Putting Complex Systems to Work 24/28 period—continually accepting input and producing output without ever completing what might be understood as a traditional computation—and not ever necessarily computing a function. Results of computations performed after accepting one input may be retained (on the machine’s “working tape”) and are available when processing future inputs. Although Wegner’s focus is not on agentbased computing, his model is essentially that: agents which interact with their environments and maintain information between interactions. From here on we use agent to refer to an object that embodies a program. Goldin and Wegner claim that their “interactive finite computing agents are more expressive than Turing machines.” There has been much debate about this claim. We believe that to ask about the level of computability of agents is to ask the wrong question. We believe that what Wegner and Goldin have done is to have taken implicitly the same stance that we took explicitly above, i.e., to distinguish between the programs one can write and the functions those programs can compute. In making this implicit distinction Wegner and Goldin point out that one need not think of the program that a Turing Machine embodies in functional terms, i.e., as closed with respect to information flow. One can also think of a Turing Machine as open with respect to information flow. This parallels the distinction in physics between systems that are closed and open with respect to energy flows. Wegner has outlined this position recently.17 Complex systems are famously far from equilibri- Abbott um with respect to environmental energy flows. Wegner and Goldin’s interaction machines (and agents in general) are similarly far from equilibrium with respect to information flows. What might one gain from being open to information flows? An illustrative example is Prisoner’s Dilemma (PD). If one were to develop an optimized PD player for a one-shot PD exchange— since it’s one shot, the system is closed—it will Defect. Playing against itself, it will gain 1 point on each side— using the usual scoring rules. If one were to develop an optimized PD player to engage in an iterative PD sequence—the system is open—it will Cooperate indefinitely (presumably by playing a variant of Tit-for-Tat), gaining 3 points on each side at each time. Thus the same problem (PD) yields a different solution depending on whether one’s system is presumed to be open or closed with respect to information flows. 6.2 Agents and their environments Computation involves the interaction of a process with its environment. In all cases with which we are familiar, the environment is modeled as a simply structured collection of symbols, e.g., a tape, a grid, etc. None of these models are adequate when compared to the realworld environment within which we actually find ourselves. We do not know how to model the multi-scalar face that nature presents to us—but almost certainly it won’t be as a tape or a grid. In our actual environment new entities and new kinds of entities may Putting Complex Systems to Work 25/28 come into existence. We are able to perceive and interact with them. We are aware of no formal environmental framework capable of representing such phenomena. We do not understand the ultimate set of primitives—if indeed there are any—upon which everything is built. We have referred18 to these problems as the difficulty of looking upwards and the difficulty of looking downwards respectively. We are just beginning19 to understand the nature of entities and of the multiscalar environment within which they exist. That environment involves entities on multiple levels, but it also involves forces at only the most primitive level. All other interactions are epiphenomenal. This is not simply a layered hierarchy, although it has some layered hierarchy properties. Given our lack of understanding about these issues it is not surprising that we have not been able to develop a formal model of such an environment. Thus a fundamental open problem in computing is to develop a formal model of an environment that has the same sorts of multiscalar properties as our real-life environment. Our revised version of the ChurchTuring Thesis gives us confidence that our current understanding of agents as entities that embody programs is reasonably close to how we think about thinking. We are still quite far from the goal of formalizing appropriate environments within which such agents should be situated. Abbott 6.3 The inevitable evolution and acceleration of intelligence As we saw in the PD example, thinking in terms of open computation model leads to different results from thinking in terms of closed models. Yet both use the same class of possible programs— whatever is programmable in a general purpose programming language. Since open computation models include the class of Oracle machines, computability doesn’t seem like the appropriate perspective when analyzing these systems. Is there another approach? We suggest that the notion of results achieved is more relevant. In the PD case, the result achieved is the number of points scored. Under what circumstances would it make sense to think of an agent in terms of results achieved? In20 we discuss the nature of emergent entities. Static entities persist at an energy equilibrium in energy wells; but the more interesting dynamic entities persist only so long as they can extract energy from their environment. Unfortunately most agent-based computer models either ignore the issue of energy or treat it very superficially. We believe that an integrated theory of energy and information would clarify how information flows enable evolution. A real-world agent would be a dynamic entity that embodied some software. If, through a random mutation, such an entity developed an enhanced ability to extract information from its environment then it will be more likely to survive and reproduce. What evolves in this model is an enhanced ability to extract information from the environment. The need Putting Complex Systems to Work 26/28 of dynamic entities for energy drives evolution toward increasingly more powerful informational processing capabilities.* In this picture, information is being extracted from the environment at two levels. Each individual extracts information from the environment, which it processes as a way to help it find energy. Very simple real-life examples are plant tropisms and bacterial tendencies to follow nutrient gradients. More interestingly, the evolutionary process itself extracts information from the environment, which it then encodes (in DNA) as the “program” which individual agents use to process information from their environment. Thus the real intelligence is in the program, and the real information extracting activity is the evolutionary process that constructs the program.† Can evolution itself evolve? Is there something that will enable an entity to extract information from the environment more effectively? Modern society stores information about how to process information from the environment as science. 7 Conclusion An environmentally sophisticated agentbased paradigm involves agents, each of which has the computing capability of a Turing machine, situated in an environ* † This seems to answer the question of whether evolution will always produce intelligence. It will whenever increased intelligence yields enhanced access to energy. Systems that have attempted to model this process have failed because their environments are too poor. Abbott ment that reveals itself reluctantly. Such an agent in a real-world environment is like an Oracle machine, with nature as the oracle. Combining agents with dynamic entities yields real-world agents, which (a) must extract energy from their environment to persist and (b) embody software capable of processing information flows from the environment. The agent-based thesis is that this paradigm represents how, at the start of the 21st century, we think about our place with the world. Acknowledgment. Many of the ideas in this paper were elaborated in discussions with Debora Shuger. References 1 IJUC Editorial Board, “Preface [to the first edition] from the Editorial Board,” International Journal of Unconventional Computing, (1, 1), pp 1-2, 2004. 2 Wegner, P. et. al., “The Role of Agent Interaction in Models of Computing,” Electronic Notes in Theoretical Computer Science, 141, 2005. 3 Google, Help Center, undated. Accessed March 12, 2006: http://mail.google.com/support/bin/answer.py?answ er=29433&query=faq&topic=0&type=f. 4 Dennett, Daniel (1989 reprint edition), The Intentional Stance, Bradford Books, MIT Press. 5 Albacete, L. “For the Love of God,” New York Times, Feb 3, 2006. 6 Sowa, J. “Semantic Networks,” http://www.jfsowa.com/pubs/semnet.htm, June 2, 2006, revised from S.C.. Shapiro (ed) Artificial Intelligence-Encyclopedias, John Willy & Sons, Inc, 1992, pp 1493-1511. 7 Smart Computing, undated. Accessed February 20, 2006: http://www.smartcomputing.com/editorial/dictionar y/detail.asp?guid=&searchtype=1&DicID=18707& RefType=Encyclopedia. Putting Complex Systems to Work 27/28 8 Sowa, J., “Existential Graphs,” 2002. Accessed February 20, 2006: http://www.jfsowa.com/peirce/ms514.htm. 9 Abbott, R., (2006) “Emergence Explained: Abstractions,” Complexity, September 2006. Abbott, R., (2007) “Putting Complex Systems To Work, Symposium on Complex Systems Engineering, January 2007. http://cs.calstatela.edu/wiki/images/b/b6/Abbott.pdf. Abbott, R. (2007) “Emergence Explained: Entities,” in preparation. 10 Abbott, R., (2006) “Emergence Explained: Abstractions,” Complexity, September 2006. 11 Abbott, R., (2006) “Emergence Explained: Abstractions,” Complexity, September 2006. 12 Scerri, Eric (2006), The Periodic Table: Its Story and Its Significance, Oxford University Press. 13 Abbott, R. (2007) “Emergence Explained: Entities,” in preparation. 14 Eliasmith, C, “Computation,” entry in Dictionary of the Philosophy of Mind, C. Eliasmith (ed.). May 11, 2004 http://artsci.wustl.edu/~philos/MindDict/entry.html. 15 Dahl, O-J and K. Nygaard, “Simula: an ALGOLbased simulation language,” Communications of the ACM, (9, 9), 1966, 671-678. 16 Goldin, D. and P. Wegner, “Behavior and Expressiveness of Persistent Turing Machines,” Computer Science Technical Report, Brown University, 1999, http://www.cs.montana.edu/~elser/turing papers/Behavior and Expressiveness of PTM.pdf. 17 Wegner, P. and D. Goldin, “Interaction, Computability, and Church’s Thesis,” British Computing Journal, 1999. Weinberg, S., “Reductionism Redux,” The New York Review of Books, October 5, 1995. Reprinted in Weinberg, S., Facing Up, Harvard University Press, 2001. Accessed May 2005 18 Abbott, R., (2006) “Emergence Explained: Abstractions,” Complexity, September 2006. 19 Abbott, R., (2006) “Emergence Explained: Abstractions,” Complexity, September 2006. 20 Abbott, R., (2006) “Emergence Explained: Abstractions,” Complexity, September 2006. Abbott Putting Complex Systems to Work 28/28
© Copyright 2026 Paperzz