bartlett

Shared by: 28x4n3X
Categories
Tags
-
Stats
views:
1
posted:
11/11/2011
language:
English
pages:
62
Document Sample
scope of work template
							Emergent Design

    Martin Hemberg
Imperial College London
Architectural Association
               Yours Truly
• Developed Genr8 with the Emergent
  Design Group (EDG) at MIT in 2001
• Teach at the Emergent Design +
  Technologies (EmTech) MA/MArch
  program at AA since 2003
  – PhD student at Dept of Bioengineering at
    Imperial College
Agenda
   • Motivation
   • Emergence
   • Evolutionary
     Computation (EC)
   • Artificial Life (ALife)
      – Lindenmayer Systems
        (L-systems)
   • Genr8
      Motivation, Architecture
• New paradigm, based on different
  concepts than traditional design logics
  – New algorithms and ways of thinking required
• Inspiration from biology
  – Biomimetics
• Natural form has aesthetic and functional
  values
 Motivation, Computer Science
• Application of EC
  – Exploration, not
    optimization
  – Fitness evaluation
• Use computers
  creatively
  – Beyond CAD tools
  – Require new
    algorithms
    and software
        What is Emergence?
• The whole is greater than
  the sum of the parts
• Bottom-up instead of top-
  down
• Local interactions produce
  global behaviour
• Examples include brain,
  economics, flocks, etc
                   Flocking
• Boids algorithm
• Craig Reynolds, 1986
• Used in Lion King,
  Lord of the Rings, etc
• Swarm bots
• Real animals
            Flocking, rules



Alignment                 Cohesion




  Separation
   Why is emergence useful?
• Focus on bottom-up interactions
  – Traditionally top-down control
  – Complex behaviour comes from interaction of
    simple parts
  – New possibilities for designers and architects
                   Artificial life
• Understand the principles of Biology
  • How does life arise from the non-living?
     • Potential and feature of evolution

  • What are the potentials and limits of living
    systems?
  • Agent-based and emergent properties
     • Flocks
     • L-systems
    Evolutionary Computation
• Randomized optimization algorithm
• Inspired by natural evolution
• Comes in many different flavours,
  – Genetic Algorithms (GA), bit-arrays (Holland)
  – Genetic Programming (GP), executable tree
    structures (Koza)
  – Evolutionary Strategies (ES), floating point
    numbers (Rechenberg and Schwefel)
                     Optimization




• Find the best possible solution
• Mathematically:
  Given: a function f : A->R from some set A to the real numbers
  Sought: an element x0 in A such that f(x0) ≤ f(x) for all x in A.
Evolutionary Computation, features
• Population of candidate solutions
  – Parallel search for solutions
• Population of solutions for a specific
  problem adapts generation by generation
• No guarantees for finding global optimum
      Neo Darwinian Evolution
• Survival of the fittest
• Selection on
  phenotype
   – Through environment
• Genotypic inheritance
• Reproduction
• Blind variation
     Genotype and phenotype
• Genotype – the
  genetic makeup of an
  organism
  – What is inherited
• Phenotype – the
  visible or measurable
  characteristics of an
  organism
                Artificial evolution
Pseudocode for an EA:
generation = 0;
   initialize population;
   while generation < max-generation
        evaluate fitness of population members
        for i from 1 to population-size
                select two parents;                 Fitness biased selection
                crossover parents -> child;         Inheritance Iterate
                mutate child;                       Variation      by
                insert child into next generation’s population;    generation
        endfor;
        generation++;
        update current population
   endwhile;
                    Fitness
• A leap from natural
  evolution
• Try each member on
  the problem and rank
  them or quantify their
  performance
• A numerical value is
  assigned to each
  member
Selection
     • Fitter individuals
       higher probability of
       selection for
       reproduction
     • Based on phenotype,
       an expression of
       genotype
             Reproduction
• Sexual vs asexual
• Recombine the existing solution
  candidates
• Heuristically, we know that solution will
  improve on average
      Crossover and mutation
• Crossover operator
  mixes the genetic
  material from parents
  for offspring
  – Recombine useful
    genes
• Mutation is blind
  variation, introduces
  new genes into the
  population
               Simple example
•   Genome is fixed        Genome   Fitness   Select
    length binary string   110011   4         1/3
•   Fitness is equal to
                           000111   3         ¼
    number of ones
    –   Select 1 and 2     011010   3         ¼
    –   Crossover at 2     000101   2         1/6
        110011
        000111
•   New individuals
    110111
    000011
            Fitness function
• Previous steps problem independent
• Choice of fitness function makes EA
  problem specific
  – Defining and evaluating fitness function often
    complicated and time consuming
• Often evaluates the genome directly
      When are EAs useful?
• Good finding near-optimal solutions for
  complicated and non-linear problems
• Useful when we lack accurate
  representation for solving problem
• Requires:
  – Representation of candidate solutions
  – Fitness function
         Fitness Evaluation
• How to assign fitness according to
  aesthetic criteria?
  – How can we assign numerical values?
  – Need to figure out what to optimize
• Open problem
  Fitness Evaluation, strategies
• Rule based
  – Hard to define and encode rules
• Learn user preference with neural network
  – Too many parameters, fails in practice
• User acts as fitness function
  – Human fatigue, short runs
   Fitness Evaluation, my view
• Creative design tools with the designer
  central
  – Tools should be open-ended
  – Can’t predict and cater for user’s needs and
    context
• Parameterized fitness function
  – User has high level control of evaluation
      Fitness function, features
• Multiparametric
  optimization
   – Fitness emerges
     as a combination
     of factors
   – Trade-off
     between criteria
• Population gives
  family of solutions
 Genr8 – A design tool for surface
           generation
• Combines EC and an
  organic growth model
• Surfaces are grown in
  a reactive simulated
  physical environment
         Lindenmayer Systems
• Organic growth model
• Widely applied to model
  plant growth in computer
  graphics
• L-systems are important
  in formal language theory
      • Prusinkiewicz and
        Lindenmayer “The
        algorithmic beauty of
        plants”
           Rewrite systems
• A set of production rules are repeatedly
  applied to a seed
• Rules are expressed as a grammar:
 Seed:         a
 Rule:         a->ab
               b->ba

a -> ab -> abba -> abbabaab -> ....
             Turtle graphics
• Turtle graphics is a
  way to visualize the
  grammar
• Rules are interpreted
  as instructions for
  moving and drawing
  in 3D space
            Example, Koch curve
• Koch curve or
  snowflake, a fractal
  curve (infinite length
  but finite area)
   Seed:     a
   Rule:     a->a+a--a+a
   Angle:    60
   – Letter - move forward
     and draw line
   – +/- - turn left/right
                 Branching
• Introduce two new operators to allow
  branching
  – “[“ – push state on stack
  – “]” – pop state from stack
             Branching, example
 Seed:          a
 Rule:          a->a[+a]a
 Angle:         45




Draw line
               Turtle position
Store position on stack
Turn and draw line
Pop position from stack

Draw line
  L-systems advanced features
• Additional features
  include
  – Time delay (flowers
    and leaves forming)
  – Random growth (not
    all plants identical)
  – Environment (tropism)
                       Map L-systems
                                        c                   b           b             b        b
a -> d[~a]b    a   b a                                              a
                            b                       d b                       c   b       a         c
                   d                                                a
                                        a                       b       d             b        d
b -> b         b   b            seed
                                b           b               b            b            b        b
                                    b               b           b             b           b         b
                                            a                           d b                   c b
                            b                           b                         b
                   b    a                           b                         b                     b
c -> b[-~a]b   c                    d                               c a
                   b            b               c               b b b                 b B b



               d   c
d -> c
               HEMLS
• Language
  specifying
  surface
  growth
  – 3D
  – Scaling
        HEMLS, Environment
• Growth in a simulated
  reactive physical
  environment
  – Forces
     • Attractors
     • Repellors
     • Gravity
  – Boundaries
Growth example
Growth example
                     HEMLS
• More complex
  productions
  – Context sensitivity
  – Time variation
  – Stochastic
     HEMLS rewrite systems
• Genr8 includes parser for HEMLS rewrite
  system
  – Turtle instructions + parameters
• User-specified rewrite systems
  – Very hard to construct by hand to obtain
    specific outcome
  – Environmental influence very hard to predict
   Pre-defined rewrite systems
• Square and
  triangular patterns
  pre-defined
  – Versatile
  – Squares can yield
    NURBS-surfaces
                   Evolution
• Search the universe
  of possible surfaces
  – Find a rewrite system
    corresponding to the
    surface the designer
    has in mind
  – Find something the
    designer was not
    thinking of
       Grammatical Evolution
• Automatic generation of grammars
• Many constraints -> problematic for GP
• Grammatical Evolution allows any language
  – Use Backus-Naur Form (BNF) to map linear
    genome into a grammar
  – Genetic operations are separated from
    language
     • www.grammatical-evolution.org (Ryan and O’Neill)
                 Grammars
• Form sentences, arrays of symbols or
  words from an alphabet
• A grammar defines the syntax of a
  language
  – Formalism can be applied to English, French,
    java, algebra, etc
    • I stand here – correct syntax
    • Here stand I – incorrect syntax
                     BNF
• Formal meta syntax for expressing context
  free grammars
  – N - a finite set of non-terminal symbols,
  – T - a finite set of terminal symbols,
  – S - a special start symbol,
  – P - a finite set of production rules
• Sentences can be expressed as a tree
  – Leaves are terminals
HEMLS, BNF
     • Terminals are turtle
       commands
     • Genr8 evolves
       instructions for how
       to grow a surface
     • These instructions are
       interpreted in a
       simulated
       environment
                    Mapping
• Several mappings
  – Increases the
    complexity
• Individuals
  represented by linear
  genome
• Selection on the
  phenotype that is
  expressed through an
  environment
  Design evaluation and fitness
• Fitness function with
  multiple parameters
   –   Size
   –   Smoothness
   –   Soft boundary
   –   Subdivisions
   –   Symmetry
   –   Undulation
• User determines target
  values and weights for
  the criteria
      Fitness evaluation, example
Criteria     Target   Weight     Surface      Diff         W Diff
Smooth       5        1
                                 7.23         2.23         2.23
Subdivisio   0        3          0.45         0.45         1.35
ns
Undulation   3        2          6.2          3.2          6.4


                               Fitness value = 2.23 + 1.35 + 6.4 = 9.98
    Interruption, Intervention and
           Resumption (IIR)
• Allow user more
  control of the tool
• User can guide the
  evolution by
  interacting and
  interfering
                Practicalities
• Plug-in for Maya
• Advantages for user
  – Easy to integrate into a design process
  – Easier to learn
• Advantages for developer
  – Lots of functionality for free
                    Scripting
• GUI
• MEL command
  – Scripts for sweeping
    parameter space
  – Automatic saving,
    exporting etc
When and why to use Genr8
             • Digital sketching tool
             • Can provide
               suggestions to the
               user
                – Prepare to give up
                  control
                – Create using different
                  logic
                – Explore novel
                  algorithms for form-
                  finding
              Using Genr8
1. Set up environment
2. Decide pre-defined, user-defined or
   evolved grammar
  – Set fitness function parameters
3. User evaluates output
4. If not happy
      Go back to 1
   else
      End
            To keep in mind
• Understand
  difference between
  growth and evolution
• Understand
  difference in impact
  between parameters,
  environment and
  fitness criteria
• Not all parameters
  are equally important
• Pre-defined
  grammars +
  environment very
  powerful
            To keep in mind
• Avoid getting overwhelmed by the volume
  of output
  – Impose external evaluation criteria which is
    mapped into Genr8, possibly via external
    analysis
  – Don’t let it run and hope it will produce
    interesting results
  – Must actively prod the tool in the desired
    direction
               Genr8 issues
• No notion of materials
  or structure
  – User must rely on
    geometry
• A few annoying bugs
• Not sure how much
  students really
  understand?
  More about emergent design
• Genr8 website
     • http://projects.csail.mit.edu/emergentDesign/genr8
• EDG website
     • http://web.mit.edu/arch/edg
• EmTech website
     • http://www.aaschool.ac.uk/et
• Special issue of Architectural Design (AD)
            Acknowledgements
• MIT
  –   Una-May O’Reilly
  –   Peter Testa
  –   Simon Greenwold
  –   Devyn Weiser
• AA
  –   Achim Menges
  –   Mike Weinstock
  –   Michael Hensel
  –   Katrin Jonas
  –   Michel da Costa Goncalves
  –   Steve Fuchs
  –   + many AA students
                   BNF, Example
• N = { <number>, <digit> }
  T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
  S = { <number> }
  P = {<number> ::= <digit> | <number> <digit>
       <digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }


           Example: 542 => <number>

                         <digit> <number>
                        5
                               <digit> <number>
                             4
                                      <digit> <number>

						
Related docs
Other docs by 28x4n3X
Conklin
Views: 0  |  Downloads: 0
MediaBestPractices
Views: 0  |  Downloads: 0
Chalk 20Flower
Views: 0  |  Downloads: 0
J117534868 - Excel - Excel
Views: 0  |  Downloads: 0
administrativehearing
Views: 0  |  Downloads: 0
publishing
Views: 1  |  Downloads: 0
US 20History 20pacing 20guide
Views: 2  |  Downloads: 0
2goal1
Views: 0  |  Downloads: 0
LifeInUniverse
Views: 0  |  Downloads: 0
samplelist - Excel
Views: 0  |  Downloads: 0