Research Description |
|
Flocking, commonly referred to as 'coordinated animal motion' is a particularly
evocative example of emergence: where complex global behavior can arise from
the interaction of simple local rules. Flocking Algorithms are based on behavioral
patterns in nature found in bees, flies, frogs, birds, fish, ants, and
any other flocking animal, including humans.
The underlying idea behind flocking algorithms is that complex behavior
can emerge from a seemingly normal set of rules obeyed locally by each individual
organism in the flock.
Generally speaking, these rules can be summarized as:
- Alignment of direction of motion with that of neighbors.
- Matching of speed with that of neighbors.
- Spatial cohesion with neighbors.
- Collision avoidance.
Aside from being interesting in and of itself, the study of flocking lends
itself immediately to the study of animal behavior, distributed computing, and
collision avoidance. In the most fundamental sense, a flocking simulation is
an example of a chaotic system; it's a completely deterministic system which
is sensitive to initial conditions.
Some of the most extraordinary natural occurrences of flocking behavior and
systems are found in the domains of colonial insects, namely, ants. Without
centralized planning and very minimal communication, complicated, coordinated,
goal-oriented behavior often arises from the interactions of many of these
simple insects.
The level of efficiency of such autonomous behavior is illustrated by ants and
other colonial insects keen ability to:
- dynamically divide labor amongst members of the colony
- sort and cluster different objects
- forage for food, divide their colony’s resources effectively
- construct complex hives/nests
- cooperate to defeat enemies
All of which would be impossible for a single individual to accomplish. More
specifically, colonial insects fall under the individual-based model for flocking
algorithms, which is a subset of ‘multi-agent systems’ which include
any computational system whose design is fundamentally composed of a collection
of interacting parts. For example an "expert system" might be composed
of many distinct bits of advice which interact to produce a solution. Individual-based
models are distinguished by the fact that each "agent" corresponds
to autonomous individuals in the simulated domain. Individual-based models are
being used in biology, ecology, economics and many other fields of study.
This concept seems abstract, but the collective motion of a flock of birds,
a herd of land animals, or a school of fish is a beautiful and familiar part
of the natural world. But this type of complex motion is rarely seen in computer
animation. So, why are flocking algorithms pragmatic at all? Because they
provide an alternative to scripting the paths of each bird, ant, person, or
animal in a herd individually; they also provide a uniqe and successful model for enterprise business.
|
Examples |
|
Flocking Algorithm Based Robotics:
Brooks began an ambitious graduate program at MIT to build a robot that would be more insect than dinosaur. "Allen" was the first robot Brooks built. It kept its brains on a nearby desktop, because that's what all robot makers did at the time in order to have a brain worth keeping. The multiple cables leading to the brain box from Allen's bodily senses of video, sonar, and tactile were a neverending source of frustration for Brooks and crew. There was so much electronic background interference generated on the cables that Brooks burnt out a long string of undergraduate engineering students attempting to clear the problem. They checked every known communication media, including ham radio, police walkie-talkies and cellular phones, as alternatives, but all failed to find a static-free connection for such diverse signals. Eventually the undergraduates and Brooks vowed that on their next project they would incorporate the brains inside a robot-where no significant wiring would be needed-no matter how tiny the brains might have to be.
They were thus forced to use very primitive logic steps, and very short and primitive connections in "Tom" and "Jerry," the next two robots they built. But to their amazement they found that the dumb way their onboard neural circuit was organized worked far better than a brain in getting simple things done. When Brooks reexamined the abandoned Allen in light of their modest success with dumb neurons, he recalled that "it turned out that in Allen's brain, there really was not much happening."
Animals learn (in evolutionary time) in a similar manner. As do Brooks's mobots. His machines learn to move through a complicated world by building up a hierarchy of behaviors, somewhat in this order:
- Avoid contact with objects
- Wander aimlessly
- Explore the world
- Build an internal map
- Notice changes in the environment
- Formulate travel plans
- Anticipate and modify plans accordingly
http://www.kk.org/outofcontrol/ch3-b.html
Flocking Algorithm Based Generative Visualizations:
Leonel Moura’s displays an especially interesting generative example in
his series:
‘UnManned Art’, and ‘MouraBots’:
- To conceive and improve a set of (12) robots that can produce paintings
and drawings based on randomness and stigmergy: Which relates directly to
flocking, in that it refers to a variety of self-organization in which agents/individuals
are mobile, and interacting via the environment.
- 'MouraBots' work based on an algorithm that Leonel Moura designed.
A partner on this project, the scholar Henrique Garcia Pereira, coined the
name ‘UnManned Art’ to describe what these robots are doing.
- “In fact my intention was to remove any predetermined aesthetics
or fitness, and let the robots interact throughout the ambient (the paper
or canvas) in order to allow the emergence of form. Based on simple rules
- essentially responding to environmental change - these robots create their
forms, not mine.
Of course that in the context of art we can relate these works with the
surrealist experiences of automatism and particularly the 'cadavre exquis',
the paintings of Pollock or the concept and practices of the situationists
known as 'derive' and psicogeography. But by using autonomous robots I believe
to introduce a fundamental rupture, a paradigm change, not only in art,
but in the anthropocentric view of the human culture.
These robots demonstrate that 'man is not the measure of all things'. And
by doing this they contribute to a new vision of the universe and of mankind
crucial for survival.”
- MouraBots is a simulation of the most original art, that of nature which
we are forced to recognize as such. For example, a spider web, a honeycomb
or a shell pattern, all reveal complex designs. That are a consequence of
emergence and self-organization and translate into flocking based Algorithms,
which are at work everywhere.
examples of imagery
The "Voronoi paintings":
click for larger view of 'algorithms on canvas'
Flocking Algorithms as a Basis for Original Musical Scores:
Their software works by treating music as a type of 3D space, in which the dimensions are pitch, loudness and note duration. As the musician plays, a swarm of digital "particles" immediately starts to buzz around the notes being played in this space - in the same way that bees behave when they are seeking out pollen.
Swarm Music is an improvisation and composition system inspired by the behaviour
of insect swarms. The individuals in Swarm Music, however, are not bees or termites,
but musical events. A musical event inhabits Music Parameter Space where each
dimension corresponds to a musical variable such as pitch, pulse, duration and
loudness. Events are attracted towards each other and to events left behind
by other swarms. And like real swarms, the individuals also take care not to
bump into each other.
As the events swarm around each other, constantly varying
melodies, harmonies and rhythms are produced. Attracting events captured from
an external source enable humans to interact with the swarm. Insect swarms have
a remarkable ability to organise themselves despite being leaderless and the
simplicity of each individual. This phenomenon is called self-organisation,
and Swarm Music demonstrates that these principles apply to music too.
(http://www.timblackwell.com/)
Examples:
http://www.thecool.freeserve.co.uk/Recordings/RainTrance.ram
http://www.thecool.freeserve.co.uk/mp3s/BigBlipExcerpt1.mp3
Enterprise Business Application:
The industrial management paradigm has relied on top down control of all activities
within an organization. And for good reason. At the birth of the 19th century
factory, a single engine would drive all of the factory's processes through
a system of interconnected belts. Everyone had to perform their job with
numbing precision or they could bring the entire factory to a halt. People
were filling roles for which machines had yet to be invented. Roles that
required no independent thought and forbid independent action and decision-making.
Whole systems of education, policy, culture, and livelihood coalesced around
this operating principle. (This is admittedly a gross simplification, but
will suffice for purposes of this article.) We are still struggling under
this behavioral model.
See full article:
In order for an enterprise to avoid falling into a strictly hierarchical, bureaucratic model by default, a set of rules must be found that can be employed by each Agent in the system (whether a customer, producer, or investor) so that the enterprise emerges through these countless interactions: This in juxtaposition to creating a mechanical shell of an organization from the top and then filling it with compliant employees. The Agent-based system would allow temporary hierarchies (we call them ad-hocracies) to coalesce about the nuclei of wealth-generating projects for varying durations. The structure emerges as a result of the autocatalytic interaction of the enterprise's network, or web.
The web flocks as an evolutionary imperative to survive and thrive. The rules evolve and so does the emergent behavior, but there is no one-to-one correlation between the rules and the emergent properties.
Our team took a first cut at what these rules might be. The most difficult thing to keep in mind during the process was the "nonlinear" relationship between the rules that the Agents (or Knodes, as we refer to Knowledge Nodes in our network) would follow, and the resulting emergent properties of the network, or enterprise as a whole. For example, if diversity is an emergent feature we wish to foster, it's tempting to build diversity into the behavior of individual Knodes. It's much more difficult to try to think through what types of individual behavior might result in collective diversity.
We had no opportunity, due to time and systems constraints, to devise a means of testing our hypothesis, either in silico, in vitro or in vivo. For this work to gain more value, its premises should be subjected to further scrutiny, simulation and testing.
The Emergent Behavior We Seek
We imagine that a healthy, emergent ValueWeb™ enterprise will exhibit, among others, these properties:
Diversity of Knodes and products
Ability of Knodes to cycle between being producers, customers, and investors within the web
Knodes will find themselves being cross-utilized in the web across a wide range of projects and product lines
The web as a whole tells its own story; speaks for itself; and every Knode can learn this story, or song
- The web generates wealth
- The web is self-correcting
- The web is anticipatory
- The web is sustainable (these last three properties come from the Appropriate Response model)
- The web develops structure around certain interactive group sizes:
- The "Active, Passionate Flock" or cell, (7±2)
- The "DesignShop Flock", (50±25)
- The "Mother Flock", (125-300) (Above this level, competition for resources tends to stress the local environment, creating a natural splitting and division of the flock into smaller groups)
A First Cut at the Rules
These are the things that each Knode decides for itself:
What the "local neighborhood" is (a collection of investors, producers, consumers of some interactive group size. Each Knode may have several overlapping or non-overlapping neighborhoods to which it belongs).
What to value--a personal definition of "wealth".
It's current "state": skills, values, blocks, activity, anticipation.
These are the rules that each Knode follows:
If another Knode does something you value, emulate it.
Send regular "here's my current state" messages--communicate your current state to your neighborhood.
Hunt for and discover resources and opportunities.
Once discovered, communicate these as a part of your current state message.
Look outward to identify new ideas, toys, tools and techniques.
Once identified, communicate these as a part of your current state message.
Tell the story of the purpose of the web to new Knodes you run into (which may or may not be a part of the current web/flock that you belong to).
Family and immediate neighborhood come first.
Critical mass:
If the neighborhood flock is too small for critical mass, join another one.
If the neighborhood flock is too large and noisy, split off.
Align with and converge upon the currently highest wealth-generating opportunity (from your value vantage point) that you are aware of, based on current state messages you receive from other Knodes.
Always ship a product from your experiences to your local neighborhood. A product is actually a specific subset of a current state message.
Reply to current state messages you think are valuable, even if it's just to say, "thanks, that was valuable." DON'T respond to current state messages which you think are not valuable
Flocking Algorithms in the World of Computer Animation:
The 1992 Tim Burton film ‘Batman Returns’ was the first. It contained
computer simulated bat swarms and penguin flocks which were created with modified
versions of the original boids software developed by Craig Reynolds.
Ken Rinaldo & Mark Grossman built an Artificial Life Sculpture, a creature
called Senster a computerized sculpture, which was able to dynamically
sense it's environment and, under software control, modify its behavior
based on past experience and current environmental inputs.
http://www.ylem.org/artists/krinaldo/works/flock/
java source code
|
References/Links
|
|
Early Pioneers - Craig Reynolds:
The term 'boids' which comes from bird oids, was first coined by Craig Reynolds
in 1986 as the name for his computer simulation of Flocking:
http://www.red3d.com/cwr/boids/index.html
For well over a decade now, scientists from many different disciplines have used the computer to experiment with metaphors and algorithms to help us understand how life and all of its complexity has emerged, survived and evolved. Some of these silicon-based art forms have taken on such convincing and surprising behavior, that they have acquired the general name of Artificial Life. At one level, these algorithms appear as games; the famous game of Life is one example, while the Maxis corporation game, SimCity is another. A
lternately they appear as a bottom-up approach to robotic intelligence that views robots as a cooperating and competing system of components instead of some all-powerful, centralized decision-making brain struggling for omniscience. A-Life techniques have been applied to solve intractable mathematical puzzles, and have even been used by software to write and evolve its own code. (For a layman's description of the history of A-Life, read Steven Levy's Artificial Life; for a slightly more advanced but very rewarding look at the field, read Christopher G. Langton's Artificial Life: An Overview; for a description of software that anyone can use to design A-life systems, read Mitchel Resnick's Turtles, Termites and Traffic Jams)
In the mid 80's Craig Reynolds applied the principles of A-life to the phenomenon of birds flying in coordinated flocks. The challenge was to uncover simple rules that each bird (or boid) could follow that would produce flocking as an emergent behavior. Flocking is not a quality of any individual bird; it only emerges as a property of a group of birds. Each bird acts as an independent Agent and obeys the simple rules. Reynolds identified three simple rules for each boid to follow within some given global parameters, and the result was an uncanny facsimile of flocking behavior unfolding itself on his computer screen. The phenomenon has been applied repeatedly on screen in SIGGRAPH animations, for the penguins in Batman and the Wildebeest stampede in Lion King. To see the Java code behind boids, click here:
code sample.
The programming language of choice for various simulations of flocking algorithms
is Java, due to the benefits of and stability of object-oriented languages,
like portability and speed.
|