Shear Tk Graphs

The metrics are:

Fitness is the distance to target of the best of generation. Plots range from -3 to 0 (perfect).

Correlation 12 is the statistical correlation between dimension 1 and dimension 2, measured empirically on the entire population. When the population lines up in a perfect straight line, this is 1. Plots range from 0 to 1 (perfect).

Correlation Distance extends the previous metric. Ideally, we would have Correlation12 = 1, Correlation13 = 0, Correlation23 = 0. This statistic measures the distance our current population is from that ideal. Plots range from 1.5 to 0 (perfect).

These graphs display 2D histograms of pairs of these metrics, sometimes delayed in time. Each row is normalized independently by dividing the bin count by the total bin count for that row. Normalized count is plotted as a greyscale value from white (0) to black (0.5 or higher). The blue line represents the average X value for each row. The red line indicates the mode.

Most of these images were captured after 615,500 generations. The server doesn't leak anymore, but the perl/tk interface does, for reasons unclear.

Fitness on the X axis, Correlation12 on the Y axis. Perfection is in the upper right hand corner.

Fitness on the X axis, Correlation13 on the Y axis. Perfection is in the lower right hand corner.

Fitness on the X axis, Correlation23 on the Y axis. Perfection is in the lower right hand corner.

Fitness on the X axis, Correlation Distance on the Y axis. Perfection is in the lower right hand corner.

Detail of previous graphic, with Fitness in the range [-1, 0] and Distance in the range [0, 0.5].

Fitness on the X axis, Correlation Distance 20 generations ago is on the Y axis. Perfection is in the lower right hand corner.

Same as above, but with a time lag of 50 generations.

Current Correlation Distance on the X axis. Correlation Distance 20 generations into the future on the Y axis. Perfection is in the lower left hand corner.

Same as above, but with a time lag of 50 generations.

The flip of the previous graph. Current Correlation Distance on the X axis. Correlation Distance 20 generations in the past on the Y axis. Perfection is in the lower left hand corner.

Same as above, but with a time lag of 50 generations.

3D Histogram Experiment

This image was generated after about 47,000 iterations. Each iteration involved the following:
  • Generate a 3 by 3 mixing matrix with random entries in the range [-1, +1].
  • Calculate the correlations between dimensions 1 and 2, 1 and 3, and 2 and 3. These form the coordinates in this 3D function.
  • Restart shear with all genomes forced to use this mixing matrix. Run the experiment for 100 generations, kicking the before target every generation. Record the best fitness in the population afterwards.
  • Average this fitness into the bin at coordinates (c12, c13, c23).
  • The 16 large squares represent the bins for c23, ranging from [7/8..1] in the upper left, to [-1..-7/8] in the lower right. Inside each box, the horizontal axis represents c12 from -1 to +1, and the vertical axis is c13 from -1 to +1.

    Lighter colours represent worse fitness values. These are our areas of interest. The black area represents combinations of (c12, c13, c23) that can't be achieved by the random mixing matrices. There are geometrical reasons why the boundaries are ellipses, and I'm in the process of sussing them out.

    The main thing we can conclude from this graph is that (surprise, surprise) negative correlations lead to poor fitness values after 100 generations. I'm currently re-running the experiment using only positive mixing matrix values, and plotting only positive correlation values.

    This is what you get when you only use positive values in the mixing matrix, after 70,800 iterations. Since negative correlations can't be generated from such a system, the graphs are re-scaled so that all the correlations range from 0 to 1. The most obvious thing to notice is that it's extremely difficult under these circumstances to generate a correlation of 0. In all of the 70,800 iterations, for example, not once did we get any data in the box corresponding to Corr[2,3] = 0. This suggests that the shear experiments should always be run with matrix coordinates ranging from -1 to +1.