Pages

5.19.2012

ArchiKluge




ArchiKluge is the first of a series of small experiments written in Java which explore ‘artificial creativity’, automatic design and generative approaches in architecture. ArchiKluge is a simple Genetic Algorithm that evolves architectural diagrams. It explores the qualities of design made by machines, devoid of any intention, assumptions or prejudices, and which often display a very peculiar form of mindlessly but relentlessly pounding against obstacles and problems until overcoming them, a manner of acting nature and machines commonly exhibit.

A Genetic Algorithm is a program that evolves populations of solutions to certain constrains, quite the same way evolutionary processes do in nature. Each population starts with a number of randomly generated individuals, which reproduce or not according to their performance against a ‘fitness function’. The individual usually consist of a genotype, or certain encoded information on which the genetic algorithm operates (reproducing, mutating, recombining it), and the decoded and translated information, known as the phenotype, of which the fitness is evaluated. The system can then iteratively evolve fitter individuals.

In this case the genotype of the Genetic Algorithm of ArchiKluge consists of a 64 bit Java long integer, and the phenotype of the translation of this integer in to a spatial layout, simply produced by folding the long number in to 4x4x4 lattice, each bit expressing the state of a cell in the lattice (empty of filled, 4x4x4=64). There are 2^64 or 18446744073709551616 possible combinations of the lattice. If instead of using a Genetic Algorithm, we would calculate each and every of these possibilities to find out the best ones, taking us a millisecond for each (about the time it takes in an average PC now),we would have to wait about 584,942,417 (585 million) years for the results. By the time we would be finished the computer would have evaporated or fossilised, and ourselves would provably have evolve in to something else, perhaps flying slugs or one legged lizards.

ArchiKluge’s Genetic Algorithm:
ArchiKluge implements a Steady State Genetic Algorithm with Tournament selection. It takes two randomly selected individuals and substitutes the least fitted by their common offspring (produced by a cross over operator). Mutations are also randomly performed in the individuals. The genotype-phenotype translation described above is based on a paper by Lionel March, ‘A Boolean description of a class of built forms’(Lionel March, the Architecture of Form, 1976, Cambridge University Press). The fitness function consist of the addition of each cell’s added ‘shortest paths’, a measure often used in network analysis (and in space analysis such as Bill Hillier’s Space Syntax). This means that for each cell in the 4x4x4 lattice, the shortest path to every other cell is calculated, a good individual being that which has many cells with other cells as far as possible from themselves (but still reachable). This Fitness function is intended only as an example, and it could be interesting in the future to incorporate an interface that allows user defined fitness functions.

For illustrating the resulting circulations through the evolved layouts, the paths left by random walkers, or agents that move randomly through the lattice have been used.

pablo miranda carranza



No comments:

Post a Comment