Simplicity: Difference between revisions

From CasGroup
Jump to navigationJump to search
Jfromm (talk | contribs)
New page: '''Simplicity''' is the opposite of complexity and means something is simple, uniform, uncompounded or un-combined. Things of high simplicity are often easy to understand a...
 
Jfromm (talk | contribs)
 
(8 intermediate revisions by the same user not shown)
Line 2: Line 2:
uncompounded or un-combined. Things of high simplicity are often easy to understand
uncompounded or un-combined. Things of high simplicity are often easy to understand
and to explain. Simplicity is one of the highest goals in architecture and engineering, esp. in software engineering.
and to explain. Simplicity is one of the highest goals in architecture and engineering, esp. in software engineering.
== Simple rules and complex behavior ==
Scientists love it when they discover that
* Order emerges from chaos
* Simple equations produce strange attractors
* Simple rules generate [[Complex System|complex systems]]
Why do they love it? Because it is rare. And because
it is the difference in complexity between the rule and
the phenomena which makes scientific theories big:
simple rules with complex behavior are what every
scientist is looking for. Unfortunately useful rules
of this kind are very rare.
Simple programs can generate all sorts of complex behavior.
Well, yes, they can, but only against heavy odds. Most programs
don't generate complex or rich behavior, at least not
the desired one. Otherwise programmers would produce
masterworks all the time, a gem at every keystroke.
Simple programs that produce complex outcome are
the exception, and often the result of hard work
or long search.
More important than the insight that simple programs
can generate all sorts of complex behavior is the
insight that they are the exception.
For one equation that produces a complex strange
attractor there are a thousand equations which produce
only simple behavior. For one Cellular Automata rule
that shows complex behavior there are hundred rules which
show simple, boring behavior. There is only one "Game
of Life".
For one right program that works there are a thousand
programs that don't work. There are a thousand ways
to change a program which will lead to erratic behavior,
but only one way to do it right. A programmer is constantly
busy with finding this way and keeping the program on
the right track (i.e. with debugging or eliminating bugs).
In [[Multi-Agent System|MAS]]s and [[Complex Adaptive System|CAS]]s,
complex systems can arise from interactions between agents.
Complex social outcomes '''can''' result from potentially simple
rules of behavior practiced by individuals.
Yes, they can, and it is fascinating if they do, but again only
against heavy odds.
The [[Boids Model|Boids]] from Craig Reynolds,
Schelling's [[Segregation Model]],
Christopher Langton's Ant, Brian Arthur's [[El Farol Bar Model|El Farol Bar model]],
and Conway's Game of Life, etc. are very nice examples of [[Emergence|emergence]], and their
creators have become famous for them, but there are only a
few models which have this power.
Complex systems usually do not arise from interactions
between agents. Put some autonomous agents together, choose
some rules, and you will probably get conflicts, fights and wars
for free. Maybe simple spatial patterns like stripes, heaps, grids
or simple networks, too. Everything else requires a very long
process of evolution or a sophisticated, deliberate design.


[[Category:Basic Principles]]
[[Category:Basic Principles]]

Latest revision as of 15:02, 7 December 2008

Simplicity is the opposite of complexity and means something is simple, uniform, uncompounded or un-combined. Things of high simplicity are often easy to understand and to explain. Simplicity is one of the highest goals in architecture and engineering, esp. in software engineering.

Simple rules and complex behavior

Scientists love it when they discover that

  • Order emerges from chaos
  • Simple equations produce strange attractors
  • Simple rules generate complex systems

Why do they love it? Because it is rare. And because it is the difference in complexity between the rule and the phenomena which makes scientific theories big: simple rules with complex behavior are what every scientist is looking for. Unfortunately useful rules of this kind are very rare. Simple programs can generate all sorts of complex behavior. Well, yes, they can, but only against heavy odds. Most programs don't generate complex or rich behavior, at least not the desired one. Otherwise programmers would produce masterworks all the time, a gem at every keystroke. Simple programs that produce complex outcome are the exception, and often the result of hard work or long search.

More important than the insight that simple programs can generate all sorts of complex behavior is the insight that they are the exception. For one equation that produces a complex strange attractor there are a thousand equations which produce only simple behavior. For one Cellular Automata rule that shows complex behavior there are hundred rules which show simple, boring behavior. There is only one "Game of Life". For one right program that works there are a thousand programs that don't work. There are a thousand ways to change a program which will lead to erratic behavior, but only one way to do it right. A programmer is constantly busy with finding this way and keeping the program on the right track (i.e. with debugging or eliminating bugs).

In MASs and CASs, complex systems can arise from interactions between agents. Complex social outcomes can result from potentially simple rules of behavior practiced by individuals. Yes, they can, and it is fascinating if they do, but again only against heavy odds. The Boids from Craig Reynolds, Schelling's Segregation Model, Christopher Langton's Ant, Brian Arthur's El Farol Bar model, and Conway's Game of Life, etc. are very nice examples of emergence, and their creators have become famous for them, but there are only a few models which have this power. Complex systems usually do not arise from interactions between agents. Put some autonomous agents together, choose some rules, and you will probably get conflicts, fights and wars for free. Maybe simple spatial patterns like stripes, heaps, grids or simple networks, too. Everything else requires a very long process of evolution or a sophisticated, deliberate design.