How to Run the Program: Python (http://www.python.org) and pygame (http://www.pygame.org) will have to be installed on the computer before this program can run. Unzip the contents somewhere onto your computer. Find the file labeled "main.py" and run it. Controls: - Close the window to exit. - Press escape to exit. Goal: The goal is for the computer to match the image through a genetic algorithm. The user need only sit back and watch. This program can run up to near 7 minutes and usually find a match when the number of generations reaches the 900s, though it is not guaranteed. Features: - This program takes a given image, face.png, and generates 1000 generations of 500 entities of images made up of random colors. Through mating and mutating, the generations evolve and work closer towards looking like the given image. - The best image of every generation is stored as a .bmp file in the results folder. If images are there from a previous run, they will be overwritten. - The algorithm uses a tournament selection, which mean 10 random entities from every generation are chosen to mate until 40% of a new generation is made. The remaining 60% is chosen at random to continue onto the next generation from the current one. - There is another method programmed where the entities are sorted and the ones chosen to mate are picked at random, but inclined to be picked from the front (the best). However, this method is not used as it does not yield as good results. - An interesting but unintended feature is that although a pixel that matches the given picture is allowed to mutate or change through mating, it does not when using the tournament method. This can only be explained by the way the early samples are chosen in the first generations. Resources: - Pygame was used to render the screen and save screenshots of the progress made. It is licensed under LGPL (http://www.gnu.org/copyleft/lgpl.html).