This work presents an evolutionary approach to design using a hierarchical growth model. It argues that the evolutionary approach fits well to the generate-and-test approach in design and is especially suited to non-routine design situations where the (inter)relationships between complex arrangements of elements and their behaviour are not known. The evolutionary approach is used as the computational method for the synthesis and evaluation stage of the design process. A bottom-up hierarchical model is used to avoid the combinatorial problems involved in linear models. The genotype consists of chromosomes which consist of genes representing design grammar rules. Evaluation is carried out both through the use of a fitness function and through human interaction. The concepts are exemplified in the context of the design of house plans. Figure 1 shows the hierarchical model used.

Figure 1. Multi-Level Generation and Evolution
The general model of design using an evolutionary hierarchical approach may be stated as follows:
for all levels in the object hierarchyThe Evolution Of House Designsfor all components at that level
GENERATE initial population of members
(by synthesizing lower level units)
EVOLVE population until satisfactory
A house can be considered to be composed of a number of zones, such as living zone, entertainment zone, bed zone, utility zone, etc. Each zone is composed of a number of rooms (or spaces), such as living room, dining room, bedroom, hall, bathroom, etc. Different houses are composed of different zones where each zone may be composed of different rooms. Each room is composed of a number of space units. Generally, in a design such as a house, the space unit will be constant. The scale (level of abstraction) of the space unit depends on the precision required in differences between various possible room sizes. The smaller the unit, the longer the genotype for a given size of room but the greater the shape alternatives.
Implementation And Results
A computer program written in C++ and Tcl-Tk under the Sun Solaris OpenWindows environment has been implemented.
To see an example implementation click on the following link