Top Banner
Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal (Harvard) Attila Kondacs (MIT) Catherine Chang (MIT)
34

Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Programming Methodology for Biologically-Inspired Self-Assembling

Systems

Otherwise known as “Amorphous Computing” or “Swarm Computing”

Radhika Nagpal (Harvard)

Attila Kondacs (MIT)

Catherine Chang (MIT)

Page 2: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Goal: create self assembly system

Goal: Design system to coordinate emerging technologies such as: self-reconfiguring robots, self

assembling nanostructures, … Difficulties: unreliable cells,

variations in cell numbers, environment changes, etc..

Systems with low fault tolerance cannot handle such difficulties

Page 3: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Two main questions

How do we take a global goal and translate it into local interactions between identical agents?

How do we engineer robust, predictable behavior from large number of unreliable agents?

Page 4: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Answer: General Idea

System uses ideas from morphogenesis and developmental biology

Principles of system formalized with programming languages

After global goal has been specified, global-to-local compilation creates one agent program, which is sent to all (identical) agents

Agents run program using basic cell primitives (routines), and hopefully goal is reached

Page 5: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Motivation / Background

Micro-electronic Mechanical Devices (MEMS). Ex: paint on airplane wing that can change shape depending upon shear, programmable tissues.

These applications require control over large number of individual elements

Page 6: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

MEMS

Challenge: Need to coordinate individual goals toward common global goal

Current MEMS methods inadequate because they rely upon external devices such as global clock, coordinate beacons. What if these devices fail?

Current methods also intractable for very large number of agents

Current MEMS systems very expensive, require complex and precise elements / interconnects

Page 7: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Advantages of Biology

Biological systems are incredibly robust in the face of constant death of parts.

System can be constructed from large number of inexpensive, unreliable, mass produced parts

Attempt to mimic how biological agents produce complex pattern and shape during morphogenesis (development of form)

Ex: epithelial cells create skin, capillaries, gut, neural tube, etc…diverse range of structures

Page 8: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

System 1: 3d Self-assembling system

General Overview of Process: Self-assembling system is given a desired global

shape, represented abstractly in “folding” language Representation is automatically compiled to

produce agent program Agents run program using 5 basic primitives,

inspired by observation of cell differiation in Drosophilia

Page 9: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Global Shape Representation

Global shape is specified in Origami Shape Language (OSL), a system developed at MIT that can construct a large class of flat folded shapes

Language works with points, lines, regions

Folding operations can generate new lines, new points created by new intersections between lines

Example: cup shape

Page 10: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Origami Shape Language

Page 11: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Compilation

After global shape has been determined, program is compiled and sent to individual agents

Global operations translated into local operations Folding operations translated into biological

primitives 5 primitives of individual agents: gradients,

neighborhood query, cell-to-cell contact, polarity inversion, flexible folding.

Page 12: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

“Gradients”

Idea is analogous to gradient from chemical source

Used by agents to measure distance, determine local direction, make geometrical inferences

Gradient creation: agent send gradient to its local neighborhood with value 0. Agents in neighborhood sent gradient to their neighbors with value 1. And so on… Higher value = weaker signal

Page 13: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 0 – make paper square

Page 14: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 1

Page 15: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 2

Page 16: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 3

Page 17: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 4

Page 18: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 5

Page 19: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 6 – unfold it

Page 20: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Fold 7

Page 21: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Conclusion: So what?

Nagpal et al believe their 3d self assembly system is unique for the following 4 reasons:

Global to local compilation General purpose local primitives Robustness Analogies to biology

Page 22: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Unique System Features - 1

1. Global-to-local compilation – allows global goal to be described in an abstract level origami shape language. Then paper folding mathematics is applied to narrow down list of possible shapes.

Agents are sent a compiled program to generate probable global goal

Page 23: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Unique System Features - 2

2. General-purpose Local Primitives – local agents only use a small but powerful set of local primitives.

Gradients can be applied to other problems

Examples: gradients can be used in topological pattern formation, design of ad-hoc sensor networks, discovery of global coordinates without beacons

Page 24: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Unique System Features - 3

3. Robustness – agent programs are robust because they do not depend upon global coordinates, synchronous operation, and can tolerate some amount of agent death.

Robustness achieved by large and dense agent populations

Rely on average rather than individual behavior Trade precision for reliability

Page 25: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Unique System Features - 4

4. Analogies to Biology – agent program is scale independent

If agent programs do not differ, this implies not much genetic difference

Therefore, must observe development process to gain insight into morphology

Page 26: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

System 2: 2d shape assembly

2d goal shape specified as a set of overlapping circles. Circle model is powerful, can be constructed from any polygonal 2d shape using computer graphics techniques

Page 27: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Agent Primitives

After constructing circle network, goal is to grow all circles in network, given an initial circle (agent)

Primitives of agents Create gradients Exchange messages with immediate neighbors Reproduce by placing child agent in random position

within fixed radius Die

Page 28: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Agent Types

All high level operations formed from combinations of these primitives

Methodology: 2 important types of agents

1. Grower (circle center) – grow children to expand the network

2. References point – receives and sends gradients to help other agents triangulate their positions

Page 29: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Overview of process

Grow reference points to establish local coordinate system

Use local coordinate systems to determine locations of next circles to grow

Expand to those locations Repeat

Page 30: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Competitive Mechanism

When a grower or reference point agent dies, how do we replace it?

Neighbors of agent “compete” with each other to assume leadership role

Agents send out gradients to determine their own “fitness levels”

Agent with highest fitness level = leader. If leader survives for time > threshold, competition phase ends. All neighbors become passive. No more “fitness level” measuring

Page 31: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Example

Black cells are leaders

Gray cells are losers

White cells still competing

Page 32: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Results

Conclusion: high density of cells needed for good shape replication

Specifically, density directly affects “reference point” placement, which is essential to the process

Future: place bounds on error from insufficient agent density? maybe can extend this self assembly system to 3d?

Page 33: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Conclusion

Results of “amorphous computing” are somewhat amorphous / foggy

No “real” experiments conducted Opinion: Seems more like exercise in design

than actual research. Form your own opinions by reading the

papers.

Page 34: Programming Methodology for Biologically-Inspired Self-Assembling Systems Otherwise known as “Amorphous Computing” or “Swarm Computing” Radhika Nagpal.

Interested?

Programming Methodology for Biologically-Inspired Self-Assembling Systems, Nagpal, Kondacs, Chang, AAAI Spring Symposium on Computational Synthesis: From Basic Building Blocks to High Level Functionality, March 2003.

Kondacs, Biologically-inspired Self-Assembly of 2D Shapes, Using Global-to-local Compilation, International Joint Conference on Artificial Intelligence (IJCAI), 2003.

MIT Amorphous Computing http://www.swiss.ai.mit.edu/projects/amorphous/