What is a Genetic Algorithm?
Very briefly, a genetic algorithm is a search/optimization technique based on natural selection. Successive generations evolve more fit individuals based on Darwinian survival of the fittest. The genetic algorithm is a computer simulation of such evolution where the user provides the environment (function) in which the population must evolve.
Any users new to the GA world are encouraged to read David Goldberg's "Genetic Algorithms in Search, Optimization and Machine Learning," Addison-Wesley, 1989.
My Genetic Algorithm Story
My first exposure to genetic algorithms was through Steven Levy's book entitled "Artificial Life". While making a frozen pizza one night, I realized that I could use this fascinating technique as a search method for some of my research. Imagine me with pizza cutter in raised hand saying, "Wow, I can automate my tedious two-week long trial and error search and simulate life (pun intended, think about it) at the same time!"
For some odd reason, it took me another month and an observation by my now ex-wife to figure out that the guy I played tennis with at Illinois and the chap from the University of Alabama who wrote a marvelous GA textbook, were one and the same David E. Goldberg (one of the "GA wizards").
With some tips from Goldberg I concocted a fairly versatile and modern GA (maybe not so modern anymore, but still versatile and usable). The reason for this particular web page is twofold. First, I wrote a FORTRAN GA, whereas all of the other available free GAs I can find are written in PASCAL, LISP or some version of C. Second, most (if not all) of the other readily available GAs do not include more modern GA concepts such as creep mutations, uniform crossover, niching, and elitism (whereas my GA has those options included). More recently I added the ability to use a micro-GA (very efficient). After many requests by colleagues and unknowns for my FORTRAN GA front-end driver code, I have decided to add this web page for any other FORTRAN holdouts (like myself) who are interested in GAs.
My FORTRAN Genetic Algorithm Front-End Driver Code
This genetic algorithm (GA) driver is free for public use. My only request is that the user reference and/or acknowledge the use of this driver in any papers/reports/articles which have results obtained from the use of this driver.
For companies wishing to link this GA driver with an existing code, I am available for some consulting work. Regardless, I suggest altering this code as little as possible to make future updates easier to incorporate.
To easily download all of the necessary GA files, click on any of the following archives (depending upon your preference). The archives are small (all less than 40K) so downloading should be reasonably quick.
If for some reason you are unable to download these files in this fashion, write to me at email@example.com and I will gladly e-mail the files to you.
The present version of the GA driver is v1.7.0, last updated on 2/10/99.
If you are interested in updates, please check this web page occasionally. After many months of being public freeware, I'm averaging roughly 5 takers a day worldwide; in other words, it has become unrealistic for me to e-mail people with update notices. I am sorry for the inconvenience.
Version 1.7.0 was the last free update to the code. This version incorporates a number of little bug fixes and should run more smoothly on most computers. Due to the overwhelming number of users of my code and constant emails over the years it has become necessary to take a more formal approach with future versions of this software. There is a newer version 1.7.1 which incorporates what I call the "securGA”. If you are interested in these versions of the code, please contact CU Aerospace via their website.
For extensive Genetic Algorithm and Artificial Life web-sites see:
Many thanks to those who have provided me information about bugs and suggestions to improve the code!
Special thanks to David Goldberg for numerous discussions and miscellaneous tips.
David L. Carroll