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