Human-guided evolution

Human-guided evolution

Program's window consists of two parts: left, bigger part presents current population and right used for control of evolutionary algorithm (EA). Optimization task for the program is to evaluate "dummies" as most similar to the model in upper right part of the screen. We can start fun from editing dummy's model. dummy is described by the set of coordinates (coordinates of an elbow, middle of the head etc.), angles (angles of deviation of limbs' leading radiuses from the corpse axis), and radiuses (horizontal and vertical radiuses of an ellipse forming dummy's corpse). These data consist to dummy's genotype. Model dummy is characterized by red squares placed on its body. When mouse cursor approaches one of them then encirclement appears. Clicking on it activates set of edit icons on the right from the dummy. They allow to adjust parameters connected with selected square (moving – for coordinates, adjusting angles and radiuses).

Initial population is random and doesn't really resemble the dummy. Due to progress of evolutionary algorithm we can observe resembling dummies from population to the model. Estimate function basis on a distance of estimated dummy from model. This distance is a sum of all equivalent coordinates (i.e. distance between left elbow of an estimated and model dummy), to which differences between equivalent radiuses and angles are added. Therefore distance is 0 for identical dummies and increases with growing number of differences between them. Summarizing less distant puppets are preferred.

Evolution is being run by pressing button "Evolve". One click causes as many evolution steps as is set on slide-bar "Iterations".

Genotype of dummy chosen from population can be viewed by clicking on it (it's then surrounded by a blue square). We can also view how mean distance of dummies in population has been changing during evolution – button "Fitness chart" is used to do so (displays a chart where red dots are mean values, gray strips surrounding them are standard deviation values).

There are several controls available that allow setting a number of individuals in population, number of descendants generated at once and probabilities of changeable mutation and selective stress (described below).

Program: Piotr Zgorecki
Mentor: Maciej Komosinski
Translation: Piotr Ceglowski