The human eye - an evolutionary look

Final project by

Ido Weisberg


Introduction

The goal of this project was predicting the number of generations required for an eye to evolve.
I did this by applying a genetic algorithm on a population of individual eyes, until I got the desired eye. This is a sort of Darwin principle: the strongest eye survives.
Each eye had some basic parameters that were changed by some predefined probability, and by evolution, the eye converged into the eye we have today.

Approach and Method

The human eye is a complex structure. It's evolution involves the modification of many different quantitative characters.
My objection was to simplify the problem into the physical formation of the eye structure, and the construction of its lens. That is, finding how many generations it will take to evolve the eye's optical geometry.

The initial stage begins with an eye, which is a flat patch of light-sensitive cells.
This eye has 3 parameters. The first is constant: the length of the light-sensitive patch. The two other parameters are the ones that contribute to the fitness function. These 2 are the radius (which is the inverse of the curvature of the patch) and the lens focal length. The aperture of the eye (the "hole" through which the light comes from) and eye's depth are calculated from the radius.
According to theory (which can be seen in detail in the report) the optimal ratio for A/P is 0.19. This means that the radius of the eye will want to change until this ratio is achieved
The focal length will change, too, until it reaches it's optimal length - the distance to the retina

Each iteration in a genetic algorithm is composed of 3 main stages:

The selection stage uses a fitness function, in order to choose which objects are fitter for survival. This function should be the quality of vision, because that is the reason for an eye to evolve in a certain way. The fitness value is higher as the ratio between the aperture of the eye and it's depth is closer to 0.19, which is the optimal ratio, and as the focal distance reaches the distance to the retina, which makes a sharp image.

In each formation of a new generation 2 eyes are randomly selected. This selection is with a probability proportional to their relative fitness. The reason we do this is we want stronger eyes to have a better chance of reproducing.
After 2 "parents" are randomly chosen they reproduce a child. This child has a 30% chance of being like his mother, 30% of being like his father, and 40% of being an overage of both. After this, every child has a 0.1% chance to mutate. This means increasing or decreasing one of his parameters by 1%. This mutation is the actual reason for the genetic change. If the mutation is good, that is - results in better fitness, than it stays. Otherwise, it is eliminated by the selection process.
After 100 new children have been "born" they form the new generation which starts this procedure all over again.
The algorithm is stopped once a fit eye has evolved.

Results

The results depend on a lot of different choices made:

For a mutation change of 0.1% we get an average of 17242 generations.
For more detailed results refer to the full report.
The most interesting thing to learn here is not the actual amount of generation, but seeing it is possible!

Conclusions

The parameters I used in my genetic algorithm for calculating the number of generation were very simple. In this kind of calculation it is impossible to give attention to every part of the eye because of its complexity. This is a very rough estimation, of course, but it lets us see that it is possible, which is the main reason, in my opinion, to this project.

Additional Information

References