Spatial Computing & the challenge of Engineered Emergence Jacob Beal

advertisement
Spatial Computing
& the challenge of
Engineered Emergence
Jacob Beal
(& Jonathan Bachrach)
MIT CSAIL
1
Networked devices are
filling our environment...
2
Networked devices are
filling our environment...
3
Networked devices are
filling our environment...
How do we program aggregates robustly? 4
Outline
●
What is Spatial Computing?
●
Continuous Space Programs
●
Proto & Amorphous Medium
●
Engineered Emergence
5
Spatial Computers
Robot Swarms
Reconfigurable Computing
Definition
Biological Computing
Sensor Networks
Cells during Morphogenesis
Modular Robotics
Continuous
Proto
Emergence
6
More formally...
●
A spatial computer is a collection of
computational devices distributed
through a physical space in which:
–
the difficulty of moving information between
any two devices is strongly dependent on the
distance between them, and
–
the “functional goals” of the system are
generally defined in terms of the system's
spatial structure
Definition
Continuous
Proto
Emergence
7
More formally...
●
A spatial computer is a collection of
computational devices distributed
through a physical space in which:
–
the difficulty of moving information between
any two devices is strongly dependent on the
distance between them, and
–
the “functional goals” of the system are
generally defined in terms of the system's
spatial structure
Definition
Continuous
Proto
Emergence
8
Graphs
Amorphous/
Continuous
Crystalline
(e.g. CAs)
(w. Dan Yamins)
Definition
Continuous
Proto
Emergence
9
space complexity
density
Graphs
jitter
grain size
Amorphous/
Continuous
Crystalline
(e.g. CAs)
(w. Dan Yamins)
Definition
Continuous
Proto
Emergence
10
space complexity
density
Graphs
spatial computing
jitter
grain size
Amorphous/
Continuous
Crystalline
(e.g. CAs)
(w. Dan Yamins)
Definition
Continuous
Proto
Emergence
11
Example App: Mobile Streaming
Definition
Continuous
Proto
Emergence
12
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
13
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
14
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
15
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
16
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
17
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
18
Geometric Program: Channel
Destination
Source
(cf. Butera)
Definition
Continuous
Proto
Emergence
19
Why use continuous space?
●
Simplicity
●
Scaling & Portability
●
Robustness
(we'll come back to this in a bit...)
Definition
Continuous
Proto
Emergence
20
Amorphous Medium
device
neighborhood
Continuous space & time
●Infinite number of devices
●See neighbors' past state
●
Definition
Continuous
Approximate with:
●Discrete network of devices
●Signals transmit state
Proto
Emergence
21
Computing with fields
source
destination
gradient
gradient
width
distance
+
dilate
<=
Definition
Continuous
Proto
Emergence
22
Computing with fields
source
destination
gradient
gradient
width
distance
10
37
+
dilate
<=
Definition
Continuous
Proto
Emergence
23
Proto
Global
platform
specificity &
optimization
device
neighborhood
discrete
approximation
Device
Kernel
Definition
Continuous
Proto
Emergence
Local Discrete
(def gradient (src) ...)
(def distance (src dst) ...)
(def dilate (src n)
evaluation
(<= (gradient src) n))
(def channel (src dst width)
(let* ((d (distance src dst))
(trail (<= (+ (gradient src) (gradient dst)) global to local
d)))
(dilate trail width)))
compilation
24
Proto's Families of Primitives
Pointwise
Restriction
restrict
+
Feedback
41
delay
Neighborhood
7
+
nbr
any­hood
48
Definition
Continuous
Proto
Emergence
25
Modulation by Restriction
source
destination
10
coord
10
channel
(5
,7
)
gradcast
Definition
Continuous
Proto
Emergence
26
In simulation...
Definition
Continuous
Proto
Emergence
27
Why use continuous space?
●
Simplicity
●
Scaling & Portability
●
Robustness
150 devices
2000 devices
Definition
Continuous
Proto
Emergence
28
Other Approaches
●
Lots of C hacking...
●
Regiment / WaveScope
●
●
●
Viral: TOTA / Smart Messages / Paintable
Computing
Pattern formation: [Coore] / [Nagpal] /
[Kondacs] / [Stoy] / [Goldstein], ...
Abstract: Kairos, EgoSpaces, Logical
Neighborhoods, “views”, ...
Definition
Continuous
Proto
Emergence
29
On to Emergence...
●
What is emergence?
–
Greater than the sum of its parts?
–
Unpredictable from local interactions?
–
Only definable for the aggregate?
Definition
Continuous
Proto
Emergence
30
“Engineered Emergence”
Routine design of the behavior of
aggregates of unreliable devices with
complicated interaction patterns.
Definition
Continuous
Proto
Emergence
31
“Engineered Emergence”
Routine design of the behavior of
aggregates of unreliable devices with
complicated interaction patterns.
?
Definition
Continuous
Proto
Emergence
32
Not quite...
●
Nature's toolkit is still better
Proto is good for library building: global-tolocal + modulation by restriction
Definition
Continuous
Proto
Emergence
33
st
1 : Flocking
13 lines of Proto
Definition
Continuous
Proto
Emergence
34
nd
2 : Self-Healing Gradients
14 lines of Proto
Definition
Continuous
Proto
Emergence
35
nd
3 : Dispersion
3 lines of Proto
Definition
Continuous
Proto
Emergence
36
Together: Guided Flocking
8 lines of Proto = 38 total
Definition
Continuous
Proto
Emergence
37
Four Useful Principles
●
Self-Scaling
●
Sparseness
●
Gradual degradation
●
Failure simplification
Definition
Continuous
Proto
Emergence
38
Gradual Degradation
●
●
Decoupling by low sensitivity to
–
Implementation details
–
Parameter values
–
Conditions of execution
Use when you don't understand or can't
control the environment.
Definition
Continuous
Proto
Emergence
39
Gradual Degradation:
Implementation Details
●
Plane wave at different resolutions:
100
10,000
1,000
Definition
Continuous
Proto
Emergence
40
Self-Scaling
●
●
Decoupling through geometry:
–
specification of behavior (units)
–
implementation details (coordinate system)
Use when you don't know the relationship
between the behavior you want and the
details of its implementation
Definition
Continuous
Proto
Emergence
41
Failure Simplification
●
●
Decoupling by preferential selection of
preferred failure type
Use when you don't understand or can't
prevent failures
We're used to preventing failures.
What if we just manage their impact?
Definition
Continuous
Proto
Emergence
42
Self-Scaling, Failure Simplification:
Neighborhood Ops
Definition
Continuous
Proto
Emergence
43
Sparseness
●
●
Decoupling by making unwanted
interactions rare.
Use when devices need to make noninterfering decisions independently.
If at first you don't succeed, just try again.
Definition
Continuous
Proto
Emergence
44
Sparseness: Symmetry Breaking
●
Temporary leadership via 1/f noise
Definition
Continuous
Proto
Emergence
45
Contributions
●
●
●
●
●
Many networks are spatial computers
Continuous-space geometric programs
are simple, scalable, and robust
Proto compiles global descriptions into
approximate local implementations
Emergent behaviors can be engineered
with by modulating regions
Four useful principles for engineering
emergence
46
Download