Complexity and the Economy

Home > Other > Complexity and the Economy > Page 23
Complexity and the Economy Page 23

by W Brian Arthur


  Schneier, Bruce, “Cryptography: The Importance of Not Being Different,” IEEE

  Computer, 32, 3, 108–109, 1999.

  Suderman, Peter, “Quit Playing Games with my Health Care System,” Reason, April 5, 2010.

  Tabb, William, The Restructuring of Capitalism in our Time. Columbia University Press, New York, 2012.

  White, Lawrence J. “The Credit Rating Agencies and the Subprime Debacle.” Critical Review, 21 (2–3): 389–399, 2009.

  Zuill, Lilla, “AIG’s Meltdown Has Roots in Greenberg Era.” Insurance Journal, 87, March 3, 2009.

  [ 118 ] Complexity and the Economy

  CHAPTER 7

  The Evolution of Technology within

  a Simple Computer Model

  W. BRIAN ARTHUR*, AND WOLFGANG POL AK**

  New technologies are constructed—put together—from technologies that already exist; these in turn offer themselves as building-block components for the creation of yet further new technologies. In this way technology (the collection of devices and methods available to society) builds itself out of itself. I call this mechanism of evolution by the creation of novel combinations and selection of those that work well combinatorial evolution, and describe it in detail in my 2009 book, The Nature of Technology: What It Is and How It Evolves. It differs from Darwin’s mechanism, which relies on the gradual accumulation of incremental changes due to variation and selection.

  Can combinatorial evolution be demonstrated “in the lab?” In 2005 Wolfgang Polak and I decided to test combinatorial evolution by designing a computer algorithm that starts from a set of primitive logic circuits (Nand gates) and combines these randomly. If the resulting circuit does something logically useful it is retained and encapsulated, then thrown in the mix as a building block for further random combination. We found that over time increasingly sophisticated circuits came into being by this process of successive integration, and we ended up with a plethora of sophisticated adders, comparators, and exclusive-ors. Combinatorial evolution could indeed create sophisticated technologies, but it does this by first creating simpler ones as building blocks. Our results mirror biology’s finding [2] that complex features can be created only if simpler ones are first favored and act as stepping stones. We also found evidence that the resulting collection of technologies exists at self-organized criticality. The results show the power of this form of evolution. The paper appeared in Complexity, 11, 5, 23–31, 2006.

  * Santa Fe Institute, Santa Fe, New Mexico.

  ** Fuji Xerox Palo Alto Laboratory, Palo Alto, California.

  New technologies are never created from nothing. They are constructed—

  put together—from components that previously exist; and in turn

  these new technologies offer themselves as possible components—building

  blocks—for the construction of further new technologies.1 In this sense,

  technology (the collection of mechanical devices and methods available to a

  culture) builds itself out of itself.2 Thus in 1912 the amplifier circuit was constructed from the already existing triode vacuum tube in combination with

  other existing circuit components. The amplifier in turn made possible the

  oscillator (which could generate pure sine waves), and these with other com-

  ponents made possible the heterodyne mixer (which could shift signals’ fre-

  quencies). These new components in combination with other standard ones

  went on to make possible continuous-wave radio transmitters and receiv-

  ers. And these in conjunction with still other elements made possible radio

  broadcasting.

  In its collective sense, technology forms a set or network of elements in

  which novel elements are continually constructed from existing ones.3 Over

  time, this set bootstraps itself by combining simple elements to construct

  more complicated ones and by using few building-block elements to create

  many. This evolution is driven not just by the availability of previous tech-

  nologies. It is driven by the large collection of human needs and also by needs brought into being by technologies themselves. Particular needs (in actual

  human history for food, transportation, cures for diseases, communication,

  and the drainage of fields and mines) are satisfied by simple technologies at

  first and then by more sophisticated ones that replace these simpler ones.

  Technologies that are replaced (think of horse transportation) become obso-

  lete and in so doing may render other technologies that depend on them (car-

  riage making and blacksmithing) obsolete, so that new elements not only add

  to the network but engender what Schumpeter called “gales of destruction”

  [1] . All this happens of course through the agency of the economy (which we

  1. The idea that novel technologies are constructed from components—technolo-

  gies—that already exist was observed by Ogburn in 1922 [8] . And Kaempffert in 1930

  noted that novel technologies are “composites of mechanical elements that accumulated as part of the social heritage” [9]. See Arthur [10] for a fuller and more rigorous treatment of this idea.

  2. We can therefore say that in its collective sense technology is self-producing, or autopoietic. (The term “autopoietic” was coined by Maturana and Varela [11].) This assertion that technology creates itself from itself requires a qualification. At bottom all technologies are created from harnessed phenomena [10, 12]. But phenomena are harnessed into use via existing physical devices and methods—by existing technologies. Thus, providing we think of phenomena as being harnessed by existing technologies and we bracket the human activities that create new technologies, we can say that technology creates itself.

  3. This network is more properly defined by what brings what into existence—what makes what possible—and not just by what components are contained in each new

  technology.

  [ 120 ] Complexity and the Economy

  can think of in shorthand as an organizational structure for arranging how technologies meet needs) and through the human agency of engineers, scientists, and developers.

  It would be possible to explore this evolution of technology by historically

  examining its build-out piece by piece over the course of human history. In

  this article we take a different course. We model the build-out of technology

  by constructing a simple artificial world within the computer. In this world the technologies—the elements that build out—are logic circuits. (Logic circuits

  have the advantage that their function can be described exactly, and there are simple rules for forming them by combination.) We imagine that our artificial world has certain logical needs (for the ability to perform the exclusive-or function, say, or to be able to add 3-bit numbers), and these can be potentially satisfied by suitable logic circuits, providing they can be created. Starting from a primitive technology (in most of our experiments a simple NAND circuit), new circuits—new technologies—are constructed by randomly wiring

  together existing ones and testing the result to see whether they satisfy any

  existing needs. If a circuit proves useful—satisfies some need better than its competitors—it replaces the one that previously satisfied that need. It then

  adds to the active collection of technologies and becomes available as an ele-

  ment for the construction of still further circuits. In this way elements con-

  stantly add to the set of active technologies as they find uses and leave again if rendered obsolete by others. And in this way the collection of technologies bootstraps upward by first creating simple technologies that satisfy simple

  needs, then from these more complex technologies that satisfy more sophis-

  ticated needs.

  We ask several questions. What are the properties o
f technology evolution

  in our artificial system? By what steps does the network of technology evolve?

  Do some technologies emerge as enabling ones (like ore smelting or the tran-

  sistor) that have many uses in further combination, so that usefulness in gen-

  erating further technologies is highly skewed? Do we see Schumpeterian gales

  of destruction? And if we start from a primitive technology, can our system

  artificially create combinations of elements that satisfy complex needs: that

  is, could our system evolve from one primitive circuit to satisfying a need say for 4- or 8-bit addition? (Note that our interest is in studying the evolution of complex artifacts and not in the engineering problem of generating efficient

  logic circuits for Boolean functions; that has been solved.)

  We pay some attention to this last question. In real life, complex technolo-

  gies are created both from the existence of simpler ones and from the particu-

  lar needs that brought these simpler building blocks into being. Radar could

  not have been invented without the building blocks of electronic amplification and wave generation—and the needs that brought these simpler functions

  into existence. We should therefore not expect complicated circuits to appear

  without intermediate elements and without the simpler intermediate needs

  t He evolu t ion of t ecHnology [ 121 ]

  Table 1. NEEDS ARE COMMON LOGIC FUNCTIONS FOR

  2 ≤ n ≤ 15, 1 ≤ k ≤ 8, AND 2 ≤ m ≤ 7

  Name

  Inputs

  Outputs

  Description

  not

  1

  1

  Negation

  imply

  2

  1

  Implication

  n-way-xor

  n

  1

  Exclusive or, addition mod 2

  n-way-or

  n

  1

  Disjunction n inputs

  n-way-and

  n

  1

  Conjunction n inputs

  m-bitwise-xor

  2 m

  m

  Exclusive or on m input pairs

  m-bitwise-or

  2 m

  m

  Disjunction on m input pairs

  m-bitwise-and

  2 m

  m

  Conjunction on m input pairs

  full-adder

  3

  2

  Add 2 bits and carry

  k-bit-adder

  2 k

  k + 1

  Addition

  k-bit-equal

  2 k

  1

  Equality

  k-bit-less

  2 k

  1

  Comparison

  that generate these. There is a parallel observation in biology. Complex organismal features such as the human eye cannot appear without intermediate

  structures and “needs” or uses for these intermediate structures [2, 13].

  We find that the collective of technology in our system can indeed boot-

  strap itself from extreme simplicity to surprisingly complicated circuits. We

  find, as we would expect, that most technologies created are not particularly

  useful as building blocks, but some turn out to be key in creating descendant

  technologies.

  We find avalanches of replacement—Schumpeter’s “gales of destruction.”

  These follow a power law, so that the collective of technology shows evidence

  that it exists at self-organized criticality. And we find that the system arrives at complicated circuits only by first satisfying simpler needs and using the

  results as building blocks to bootstrap its way to satisfying more complex ones.

  THE EXPERIMENTAL SYSTEM

  We view each run of our artificial system as an experiment. Each experiment

  starts with only primitive components (usually one, an elementary logic gate), and the computer generates new circuits by randomly wiring together several

  components in a noncyclic way. A component can be a primitive logic gate or

  another circuit that has been created from this and has been encapsulated

  (think of it as a chip with designated input and output pins). We specify in

  Table 1 a set of needs or goals, useful logical functions to be achieved possible by the combinations. These are akin to the needs that drive technology evolution. Ideally we would like these needs to be generated by agents who occupy

  [ 122 ] Complexity and the Economy

  an artificial world in which logical functions such as adders or comparators have proved useful. But we avoid this complication and simply list a set of useful logical functionalities that suitable circuits, if they appear, might achieve.

  Using an artificial system that asks for logical functionalities and provides

  ways for them to be realized has the advantage that needs and technologies

  can be easily compared. Each need for a particular logical functionality can be represented by a specific truth table: a set of desired output values for every possible set of input values presented. And each circuit created—each technology—provides a function that can also be represented as a truth table: for

  every set of binary values provided to its input pins it produces particular

  binary values on its output pins. Thus we can easily match experimental tech-

  nologies with our list of needs. We can also think of a technology’s behavior, its truth table, as the phenotype of this technology. Its genotype is the architecture or internal circuitry that realizes this function. Many different genotypes can generate the same phenotype.

  Our computer model, then, consists of a set of primitives, a set of tech-

  nologies or components constructed from primitives and from other compo-

  nents, and a set of needs to be fulfilled. [We normally use only one primitive, a NAND gate, with phenotype ¬( x^ y).] The essence of the experiment is simple. In each evolutionary step novel circuits are created from existing

  ones by randomly wiring together between 2 and 12 circuits selected from

  all previously existing technologies according to a choice function that specifies probabilities of selection. Different phenotypic versions of the new cir-

  cuit are created by selecting different internal wires in different orders as

  output pins. At each time there is a set of existing technologies that best

  match each of the needs or goals (have least incorrect entries in their truth

  tables). Each candidate circuit is tested against these to see if it improves

  upon them. It may do so by better matching a need’s truth table, or if it has

  a function identical to that of an existing circuit, by costing less. (The cost of a circuit is determined by the number of its components and by their respective cost.) In either case it replaces the circuit it has improved upon both

  directly and in all circuits where that circuit is used as a component. It is

  also encapsulated: it becomes a new component that can serve as a building

  block for possible further combination. In this way the set of encapsulated

  technologies builds out. A need is satisfied if a new technology with its exact truth-table has been found. And a newly created circuit of course cannot

  replace one of its own components. Useful components are named (e.g.,

  tech-256 or full-adder-121) and can be used in higher level technologies.

  Components that exactly implement a need are given mnemonic names

  describing that need (e.g., 3-bit-adder). Details of our implementation of

  these general algorithmic steps are listed in a section below.

  The correspondence to the real world requires some comment. New tech-

&nbs
p; nologies in the real world are indeed combinations of existing ones, but

  t He evolu t ion of t ecHnology [ 123 ]

  nowadays are rarely invented by randomly throwing together existing components. Loosely however we can think of each step in our process as a set of

  laboratory tests that investigates a novel idea. Or more exactly we can think of our process as corresponding to that used in modern combinatorial chemistry

  or synthetic biology, where new functionalities are created from random com-

  binations and tested for their usefulness [3] . This process builds up a growing library of useful elements that can be exploited for further combination.

  We can also think of this process more generally as an algorithm, not for

  solving a particular problem but for building up a library or repertoire of useful functionalities that can be combined to solve problems. The algorithm

  mimics the actual evolution of technology by first constructing objects that

  satisfy simple needs and using these as building blocks to construct objects of progressively higher complication.

  EXPERIMENTAL RESULTS

  The most complex circuits invented within 250,000 steps in our basic experi-

  mental design were as follows:

  8-way-xor, 8-way-and, 8-way-or, 3-bitwise-xor, 4-bit-equal, 3-bit-less,

  and 4-bit-adder.

  A more streamlined design, discussed below, created an 8-bit adder (which

  adds 8 bits to 8 bits correctly, a not uncomplicated achievement). Within the

  basic design different runs of the experiment invented circuits in different

  order and not all of these circuits evolved in the same experiment run.

  Early in the experiment simple goals are fulfilled. We see from Figure 1,

  that even for simple circuits non-obvious implementations are invented.

  These circuits then become encapsulated for further use.

  As the evolution proceeds more complicated circuits begin to construct

  themselves from simpler ones. The 2-bit-adder circuit shown in Figure 2

  uses the supporting technology TECH-712. The latter circuit is an example of

  a technology that is useful toward satisfying a goal but that does not itself

  satisfy the goal 2-bit-adder (because the low-order (left) output bit is com-

 

‹ Prev