This chapter is the fourth part of a five-part blog series discussing the methodology adopted to develop ‘An Urban Farming Paradigm Resilient to Energy Descent for Singapore’.
Chapter 1 - Food Production from an Energy Perspective
Chapter 2 - Road to Self-sufficiency in Food Production
Chapter 3 - Closing the Systems Loop
Chapter 4 - Evolutionary Design Process
Chapter 5 - Adaptive-iterative Design Exploration
Cite as: Kaushik, Vignesh. 2012. “An Urban Farming Paradigm Resilient to Energy Descent for Singapore” Masters’ thesis, National University of Singapore.
Evolutionary Design Method
Evolutionary design is an approach that evolves populations of design variants in order to optimize certain performance measures . Designs are manipulated by a set of computational procedures, including a development procedure for generating design variants, one or more evaluation procedures for calculating evaluation scores, and a feedback procedure for closing the loop by assigning a fitness score to groups of individuals and then performing selection and reproduction. With the evolutionary design approach, the parameters for a design variant are referred to as the genotype (with each individual parameter being a gene), the model of the design variant is referred to as the phenotype, and the evaluations of the design variant are referred to as performance scores. The selective pressure is applied by ensuring that design variants with low performance scores are more likely to be killed, while design variants with high performance scores are more likely to survive, and to be selected for reproduction.  An Evolutionary Architecture by John Frazer
Evolutionary design is an approach that evolves populations of design variants through the iterative application of a set of computational procedures.
Evolutionary Design Process
The terminology is loosely based on the way that these terms are used in biology. A gene is a variable that can have different values. The expression of an individual’s gene values will give rise to observable characteristics or traits, referred to as phenes. The genotype of an individual is the set of gene values, while the phenotype of an individual is the set of phene traits. The genome describes the set of all possible genotypes in the population, while the phenome describes the set of all possible phenotypes in the population. From a design perspective, the phenome describes the set of possible design variants. These variants will differ from one another with regards to their phenes, but they will also share a certain common identifiable character.
The evolutionary procedures are often described as a mapping from genotype to phenotype to fitness. High quality mappings result in better evolutionary search, while low quality mappings result in worse search. Two key issues affecting the quality of a mapping are the size of the genotype space and the locality of the mapping. The size of the genotype space is defined by the number of genes and the range of values that each of those genes can have. The smaller the genotype space, the easier it will be for the evolutionary algorithm to search that space. For each gene added to the genotype, an extra dimension is added to the genotype space, thereby resulting in an exponential increase in the number of possible design variants.
Peter F. Stadler and Christopher R. Stephens explain the mapping of genotype-phenotype and fitness space in Landscapes and Effective Fitness, 2002
The data from a multi-objective evolutionary search is typically represented as a collection of points, with each point representing a design variant. For each design variant, its performance scores are plotted in a XY chart with the value of one variable determining the position on the horizontal axis and the value of the other variable determining the position on the vertical axis. In addition, the points can be color-coded and varied in size as well to represent scores on two other variables.
For each gene added to the genotype, an extra dimension is added to the genotype space, thereby resulting in an exponential increase in the number of possible design variants.
For a multi-objective optimization problem, there does not exist a single solution that simultaneously optimizes each objective. In that case, the objective functions are said to be conflicting, and there exists a (possibly infinite) number of Pareto optimal solutions. A solution is called nondominated or Pareto optimal if none of the objective functions can be improved in value without degrading some of the other objective values. Without additional subjective preference information, all Pareto optimal solutions are considered equally good.
If the designs being evolved have limited variability, then the developmental procedure can use direct parametric modelling for generating designs. With this approach, genes are directly linked to parameters within the model. However, in cases where complex designs have to be evolved, the development procedure may consist of an indirect rule-based procedure for generating designs. Genes are then linked to parameters in the rules rather than in the model, and as a result only affect the final form indirectly via the rules. In the context of evolutionary design, such rule-based developmental procedures have been referred to as computational embryogenies.
A mathematical model describing how environmental forces may affect the embryogenesis of organisms. D'Arcy Thompson's Book 'On Growth and Form'
An embryogeny is a process of growth that defines how a phenotype is generated from a genotype. For example, in nature, embryogenies indicate how an animal should be grown. Hence the genotype may be regarded as a set of ‘growing instructions’, or a recipe that defines how a phenotype will be developed.
Current computational embryogenies can be classified into three different types: external, explicit and implicit . External embryogenies can be imagined to be a piece of computer code that performs a one to one mapping from genes to parameters. An explicit embryogeny is where every step of the growth process is explicitly specified as instructions in the data structure. Typically, the genotype and the embryogeny are combined and are allowed to evolve simultaneously. The third type, the implicit embryogeny, does not explicitly specify each step of the growth process, but is implicitly coded by a set of rules or instructions. By evolving a set of simple rules which can then be iteratively applied to each element of the growing solution, it is believed that many large scale problems can be tackled.  Three ways to grow designs: a comparison of evolved embryogenies for a design problem by Bentley, P. and Kumar, S., GECCO, 1999
Tools for Evolutionary Design
Since most designers using optimization tools have limited programming skills, we need to be able to define the key problem-specific procedures without having to write computer code. The development procedure and one or more evaluation procedures are therefore defined using Visual Dataflow Modelling (VDM) tools . Visual Dataflow Modelling is becoming increasingly popular within the design community, as it can accelerate the iterative design process, thereby allowing larger numbers of design possibilities to be explored. Modelling in a VDM system consists of creating dataflow networks using nodes and links. Each node can be thought of as a function performing an action and a link is used to connect the output of one function to the input of another function. In this research, an advanced procedural modelling system called SideFX Houdini is used for both development and evaluation procedures. Within Houdini, VDM nodes were created for linking Houdini to Radiance. These nodes generate the required input files from the Houdini model and then execute the radiance program.  Visual dataflow modelling: a comparison of three systems by Patrick Janssen & Kian Wee Chen, CAAD Futures, 2011
Visual Dataflow Modelling is becoming increasingly popular within the design community, as it can accelerate the iterative design process, thereby allowing large number of design possibilities to be explored.
Visual Dataflow Modelling (VDM) in SideFX Houdini
For an evolutionary design approach, the design schema needs to be encoded in the development, evaluation, and feedback procedures used by the evolutionary process. Although all three procedures are affected by the design schema, the developmental procedure is the one with the most direct impact as it is the procedure that actually generates design variants.
(left) Development procedure produces a valid phenotype from a genotype. (center) Evaluation procedure measures a performance criterion and calculates a score. (right) VDM nodes created in Houdini to link to Radiance.
The evolutionary algorithm was executed using Dexen, a distributed execution environment for experimenting with population-based design exploration algorithms . The feedback procedure, generated automatically by Dexen, will rank groups of phenotypes using a standard Pareto ranking method, and will then create new genotypes using standard crossover and mutation operators.  Evolutionary developmental design for non-programmers by Patrick Janssen, Kian Wee Chen & Cihat Basol, eCAADe, 2011
Interface of Dexen, a distributed execution environment for population-based design exploration