software: using genetic algorithms for optimization
TRANSCRIPT
Software
Using genetic algorithms for optimization
Chemistry Solver New Light Industries, Ltd. 9713 W. Sunset Highway Spokane, WA 99204 509-456-8321; fax 509-456-8351; nli @ comtch. iea. com;
http://www. iea. com/— nli Version 1.0; $375
Genetic algorithms can be used to solve difficult optimization problems with objective functions that do not possess "nice" properties such as continuity, differentiability, and so forth. These algorithms maintain and manipulate a population of trial solutions to the optimization problem and implement a survival-of-the-fittest strategy in their search for a solution. Through mating of individual members of the population and exchange of their genes (the elements of the trial solution embedded in each member of the population), the solution space is explored over successive generations. Members with genes having better fitness to solve the problem survive to mate again, leading to improvement in the fitness of the better trial solutions as the population evolves. Gene mutations are also possible, and these, too, can occasionally lead to more fit offspring. This approach permits exploitation of several promising areas of the solution space at the same time.
Chemistry Solveris one of the relatively few commercial software packages that implements genetic algorithms for optimization. It runs on top of a Microsoft Excel spread
sheet, which stores the genes and determines the fitness function for each trial produced by the genetic algorithms. The program sets the population, performs the mating and exchange of genes, does the mutations, and evaluates the fitness of the members of the population. It also displays a continuously updated history of the fitness of the population, allows the user to modify the parameters of the genetic algorithm in real time, and updates the Excel spreadsheet as each generation is evaluated.
Installation, support, and documentation Chemistry Solver runs under Microsoft Excel, version 4 or higher, on a 386-class PC or higher running Windows 3.1 or Windows 95. It requires at least 2 MB RAM, and the software sample takes up about 900 KB on the hard disk.
Installation of the single floppy disk containing the software is automated from a setup program and proceeds without problem. Chemistry Solver ran well with either Excel version 5 or Excel 95. The coupling of Chemistry Solver and Excel was tight, and execution of the optimizations went as expected. A problem suited to optimization by genetic algorithms often involves a fair amount of computation, and Excel is not the fastest of programming languages, so it is not surprising that performance was not very impressive under Windows 95 on a 66-MHz 80486 machine with 16 MB RAM. Execution of the same problem under Windows 95 on a 90-MHz Pentium machine with 32 MB RAM was adequate—about five times faster than on the slower machine. The software is not removable through the Windows 95 control panel, but the installation places all
Chemistry Solver displays a continuously updated history of the fitness of the population along with status and problem definition windows.
678 A Analytical Chemistry News & Features, November 1, 1996
files in one location, and manual removal is straightforward.
Chemistry Solver offers several methods for gene evolution though mating and mutation. The common two-point crossover and an unusual permutation crossover method permit exchange of genes in mating. Mate selection is based on a graduated roulette wheel method. Random mutation, random mutation with a hill climb, or directional hill climb mutation can be selected to generate population diversity. The mutation probability and size are adjustable. The size of the population and the size of the set of "fittest" members who create the next generation are also adjustable. The program has default values, but the user can change these defaults to suit the problem. Pull-down menus permit selection of the various parameters controlling the genetic algorithm. The genes are defined by named cells in the Excel spreadsheet Another pull-down submenu is used to connect genes in the genetic algorithm software with the named cells in Excel. Integer or real-number values can be selected for genes, and ranges for acceptable mutations are specified here. The goal of the search (a maximum, a minimum, or a specific, user-selectable value) and the exit conditions (based on run time, stability of the fitness function, or number of generations examined) are also specified.
The solver module has a standard, Microsoft-like user interface with a toolbar, a help menu, a minimizable history graph, and a status window. Like Excel, the solver has a status line at the bottom of the solver window. The status line keeps track of the state of the software, the generation, the elapsed time, and the best fitness achieved from the evolutionary search. The history graph can display the best the median, and/or the worst fitness result of the population for each generation, and, like the other parameters of the genetic algorithm, the graphical display is easily changed by the user as a run progresses. Hypertext
help on the solver menus, definitions, and hints on the use of the solver are available.
Documentation is provided in a 52-page manual. The manual begins with an overview of the software, provides a summary of the menu selections needed to run two examples, offers practical hints on running the software, gives a brief discussion of the theory of the genetic algorithm used in the software, and concludes with a glossary of terms. There is no list of key references on genetic algorithms or on the specific methods used in this package, nor is there reference to the very useful sources of information on genetic algorithms available on the Internet.
Tutorial matter for Chemistry Solver is limited to coverage of the two example optimizations. The two examples are similar in that both are chemical applications, but they differ in most other respects. The first is a simple task, in which the genetic algorithm is used to balance a chemical equation. The second example, based on the action of the lac operon of Escherichia coli, involves solution of a series of coupled chemical reactions involving catalysis and thresholding to fit a diauxic growth curve—a much more challenging optimization. Most genetic algorithms require several control parameters to be set because the genes, the details of the exchange of genes in mating, and the nature and frequency of mutations must all be specified prior to starting, at least. The manual provides only the menu selections needed to solve the two example problems and does not provide the logic and the programmatic details needed to set up the problem for solution by the genetic algorithm. A determined student might be able to learn to use the genetic algorithms from careful study of these examples, but the novice will likely need help to make progress, at least in the early stages. Novices will find that the
most useful part of the documentation is the list of practical hints on running the software, but this section, again, places more emphasis on what to do rather than why to do it. Help is available via fax or e-mail, but the manual is not clear on whether the license includes technical support. I found the responses of the technical support staff to questions I posed via e-mail rather slow.
To get the most from this package, the user must be familiar with Excel programming. Many of the optimization problems can be expressed through the functions built into Excel, but more complex problems will require substantial additional programming in Excets Visual Basic programming language. There is very little guidance in the Chemistry Solver manual on programming using either ExceFs functions or Visual Basic; the user will need to refer to the Excel manuals for the critical background. In principle, the use of Excel as a programming base may permit this package to work with other add-ons to the Excel platform, including ones implementing neural networks and nonlinear least-squares regression. The manual gives no details on the coupling of this and other Excel software, but it would make the package much more attractive if it could work with other add-ons and if that capability were documented in the manual.
The Chemistry Solver package offers a simple way for those with Excel programming experience and an interest in unconventional optimization to get a genetic algorithm working quickly with minimal effort Other than the two examples, there is nothing especially chemical about the Chemistry Solver package, and chemists without prior experience with genetic algorithms and Excel programming will find this package no more accessible than others implementing genetic algorithms.
Reviewed by Steven D. Brown, University of Delaware, Newark.
Analytical Chemistry News & Features, November 1, 1996 679 A