A Method of Forming Self-Healing
Patterns on Amorphous Computing
A Preliminary Proposal
The Amorphous Computing Group
Many identical “agents”
Mass produced – Not reliable and no global
clocks or beacons. “Throw at a problem.”
Connected in changing, unpredictable ways.
Goal: Coherent, robust behavior to achieve
Researchers’ inspiration from living things
Examples of life from engineering standpoint:
Bees build a hive
Wolves hunt in packs
People build civilizations
Cells, roughly identically programmed, create
Abundance of Microelectronic devices and
Cilia clean rooms
Advances in biotechnology
We are able to “reprogram” genetic
information of cells
Can grow quickly and cheaply
Don’t have concepts to allow us to engineer
how life does
Yet good processors, mobile, sensing.
Research at MIT
Biology: Morphogenesis and self assembly
- Use insights to understand biological
Sensor Networks: Amorphous computers.
More from a CS perspective.
Specific Project Area
Radhika Nagpal, Daniel Coore: Complex
Made of lines and endpoints.
Determine distance and orientation
Lauren Clement – Self-healing lines
Agents in line die – reform line
Nagpal deals only with points and lines
Ex. Of How to Build a Line
Fixed, randomly placed agents.
Build a line connecting two given points
Idea of gradient to tell distance
Constant local communciation:
- Random ID
- Successor ID
- Gradient value
Ex. How to Build a Line
Endpoint A initiates gradient
Each agent determines max gradient value,
stores “successor ID”
Gradient reaches Endpoint B, line back
Successor Grad = 41
Grad = 35
Self-Healing Method 1
Endpoint A never stops outputting gradient
Gradients and successor ID’s expire
Line redrawn over and over
Advantages: Can handle multiple gaps, good
for large gaps
Disadvantages: Redraw whole line when gap
Self-Healing Method 2
Only send gradient value once and then
When break detected, successor listens,
predecessor initiates gradient.
Advantages: Good for small holes
Disadvantages: Cannot handle multiple
breaks with one gradient
Extend Clement’s algorithms to deal with
– Requires sending, receiving, storing multiple
Way to choose method
- Gradient to tell size of gap.
Integrate into Nagpal’s compiler.
And if possible
Enable Nagpal’s compiler to output to MICA Motes
4MHz Processor, wireless radio communication,
sensors, batteries, TinyOS
Able to get number of motes (>= 50)
- $, production ability
Able to drive LED’s on motes.
Able to get Nagpal’s algorithm to program
motes (too much work?)
Find out detailed specifications for MICA Motes. March 2003.
Understand algorithms and existing code for Nagpal’s compiler
and Clement’s self-healing methods. April 2003.
Full design with a design document. July 2003.
Obtain motes. August 2003.
Have first draft of code ready for testing. October 2003.
Have final version of code working: December 2003.
Have the motes tested running the programs produced by the
compiler: February 2003.
Have thesis written and finished: April 2003.
Access to code and the people who wrote it