Amorphous computing
Encyclopedia
Amorphous computing refers to computational systems that use very large numbers of identical, parallel processors each having limited computational ability and local interactions. The term Amorphous Computing was coined at MIT in 1996 in a paper entitled "Amorphous Computing Manifesto" by Abelson, Knight, Sussman, et al.

Examples of naturally occurring amorphous computations can be found in many fields, such as: developmental biology
Developmental biology
Developmental biology is the study of the process by which organisms grow and develop. Modern developmental biology studies the genetic control of cell growth, differentiation and "morphogenesis", which is the process that gives rise to tissues, organs and anatomy.- Related fields of study...

 (the development of multicellular organisms from a single cell), molecular biology
Molecular biology
Molecular biology is the branch of biology that deals with the molecular basis of biological activity. This field overlaps with other areas of biology and chemistry, particularly genetics and biochemistry...

 (the organization of sub-cellular compartments and intra-cell signaling), neural networks
Neural Networks
Neural Networks is the official journal of the three oldest societies dedicated to research in neural networks: International Neural Network Society, European Neural Network Society and Japanese Neural Network Society, published by Elsevier...

, and chemical engineering
Chemical engineering
Chemical engineering is the branch of engineering that deals with physical science , and life sciences with mathematics and economics, to the process of converting raw materials or chemicals into more useful or valuable forms...

 (non-equilibrium systems) to name a few. The study of amorphous computation is hardware agnostic -- it is not concerned with the physical substrate (biological, electronic, nanotech, etc.) but rather with the characterization of amorphous algorithms as abstractions with the goal of both understanding existing natural examples and engineering novel systems.

Amorphous computers tend to have many of the following properties:
  • Implemented by redundant, potentially faulty, massively parallel devices.
  • Devices having limited memory and computational abilities.
  • Devices being asynchronous.
  • Devices having no a priori knowledge of their location.
  • Devices communicating only locally.
  • Exhibit emergent or self-organizational behavior (patterns or states larger than an individual device).
  • Fault-tolerant, especially to the occasional malformed device or state perturbation.

Algorithms, tools, and patterns

(Some of these algorithms have no agreed-upon names. Where a name is not known, a descriptive one is given.)
  • "Fickian communication". Devices communicate by generating messages which diffuse through the medium in which the devices dwell. Message strength will follow the inverse square law as described by Fick's law of diffusion
    Fick's law of diffusion
    Fick's laws of diffusion describe diffusion and can be used to solve for the diffusion coefficient, D. They were derived by Adolf Fick in the year 1855.- Fick's first law :...

    . Examples of such communication are common in biological and chemical systems.

  • "Link diffusive communication". Devices communicate by propagating messages down links wired from device to device. Unlike "Fickian communication", there is not necessarily a diffusive medium in which the devices dwell and thus the spatial dimension is irrelevant and Fick's Law
    Fick's law of diffusion
    Fick's laws of diffusion describe diffusion and can be used to solve for the diffusion coefficient, D. They were derived by Adolf Fick in the year 1855.- Fick's first law :...

     is not applicable. Examples are found in Internet routing algorithms such as the Diffusing Update Algorithm
    Diffusing update algorithm
    DUAL, the Diffusing Update ALgorithm, is the algorithm used by Cisco's EIGRP routing protocol to ensure that a given route is recalculated globally whenever it might cause a routing loop. It was developed by J.J. Garcia-Luna-Aceves at SRI International. According to Cisco, the full name of the...

    . Most algorithms described in the amorphous computing literature assume this kind of communication.

  • "Wave Propagation". (Ref 1) A device emits a message with an encoded hop-count. Devices which have not seen the message previously, increment the hop count, and re-broadcast. A wave propagates through the medium and the hop-count across the medium will effectively encode a distance gradient from the source.

  • "Random ID". Each device gives itself a random id, the random space being sufficiently large to preclude duplicates.

  • "Growing-point program". (Coore). Processes that move among devices according to 'tropism' (movement of an organism due to external stimuli).

  • "Wave coordinates". (from the DARPA PPT slide, to be referenced). To be written.

  • "Neighborhood query". (Nagpal) A device samples the state of its neighbors by either a push or pull mechanism.

  • "Peer-pressure". Each device maintains a state and communicates this state to its neighbors. Each device uses some voting scheme to determine whether or not to change state to its neighbor's state. The algorithm partitions space according to the initial distributions and is an example of a clustering algorithm.

  • "Self maintaining line". (Lauren Lauren, Clement). A gradient is created from one end-point on a plane covered with devices via Link Diffusive Communication. Each device is aware of its value in the gradient and the id of its neighbor that is closer to the origin of the gradient. The opposite end-point detects the gradient and informs its closer neighbor that it is part of a line. This propagates up the gradient forming a line which is robust against disruptions in the field. (Illustration needed).


  • "Coordinate formation" ([ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-1666.pdf Nagpal]). Multiple gradients are formed and used to form a coordinate system via triangulation.

Researchers and labs

  • Hal Abelson
    Hal Abelson
    Harold Abelson is a Professor of Electrical Engineering and Computer Science at MIT, a fellow of the IEEE, and is a founding director of both Creative Commons and the Free Software Foundation....

    , MIT

  • Jacob Beal, graduate student MIT (high level languages for amorphous computing)

  • Daniel Coore, University of West Indies (growing point language, tropism, grown inverter series)

  • Tom Knight, MIT (computation with synthetic biology)


  • Zack Booth Simpson, Ellington Lab, Univ. of Texas at Austin. (Bacterial edge detector)

  • Gerry Sussman, MIT AI Lab

  • Ron Weiss, Princeton (rule triggering, microbial colony language, coli pattern formation)

Documents

  1. The Amorphous Computing Home Page
    A collection of papers and links at the MIT AI lab
  2. Amorphous Computing (Communications of the ACM, May 2000)
    A review article showing examples from Coore's Growing Point Language as well as patterns created from Weiss's rule triggering language.
  3. Amorphous Computing Slides from DARPA talk in 1998
    An overview of ideas and proposals for implementations
  4. Amorphous and Cellular Computing PPT from 2002 NASA Lecture
    Almost the same as above, in PPT format
  5. Infrastructure for Engineered Emergence on Sensor/Actuator Networks, Beal and Bachrach, 2006.
    An amorphous computing language called "Proto".
  6. Self-repairing Topological Patterns Clement, Nagpal.
    Algorithms for self-repairing and self-maintaining line.
  7. Robust Methods of Amorphous Synchronization, Joshua Grochow
    Methods for inducing global temporal synchronization.
  8. Programmable Self-Assembly: Constructing Global Shape Using Biologically-Inspired Local Interactions and Origami Mathematics and Associated Slides Nagpal PhD Thesis
    A language to compile local-interaction instructions from a high-level description of an origami-like folded structure.
  9. Towards a Programmable Material, Nagpal Associated Slides
    Similar outline to previous paper
  10. Self-Healing Structures in Amorphous Computing Zucker
    Methods for detecting and maintaining topologies inspired by biological regeneration.
  11. Resilient serial execution on amorphous machines, Sutherland Master's Thesis
    A language for running serial processes on amorphous computers
  12. Paradigms for Structure in an Amorphous Computer, 1997 Coore, Nagpal, Weiss
    Techniques for creating hierarchical order in amorphous computers.
  13. [ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-1666.pdf Organizing a Global Coordinate System from Local Information on an Amorphous Computer], 1999 Nagpal.
    Techniques for creating coordinate systems by gradient formation and analyzes precision limits.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK