## GeneHunter

Category Intelligent Software>Genetic Algorithm Systems/Tools

Abstract GeneHunter is an advanced software solution for optimization problems which utilizes a state-of-the-art genetic algorithm methodology. GeneHunter includes an Excel Add-In which allows the user to run an optimization problem from Microsoft Excel, as well as a Dynamic Link Library (DLL) of genetic algorithm functions that may be called from programming languages such as Microsoft Visual Basic or C.

What Are Genetic Algorithms? - Genetic algorithms (GAs) seek to solve optimization problems using the methods of evolution, specifically survival of the fittest. In a typical optimization problem, there are a number of variables which control the process, and a formula or algorithm which combines the variables to fully model the process. The problem is then to find the values of the variables which optimize the model in some way. If the model is a formula, then we will usually be seeking the maximum or minimum value of the formula. There are many mathematical methods which can optimize problems of this nature (and very quickly) for fairly "well-behaved" problems. These traditional methods tend to break down when the problem is Not so "well-behaved."

How Does GeneHunter Work? - GeneHunter will create a population of possible solutions to the problem. The individuals in this population will carry chromosomes which are the values of variables of the problem.

GeneHunter actually solves your problem by allowing the less fit individuals in the population to die, and selectively breeding the most fit individuals. The process is called selection, as in selection of the fittest. GeneHunter takes two (2) individuals and mates them (crossover), the offspring of the mated pair will receive some of the characteristics of the mother and some of the father.

In nature, offspring often have some slight abnormalities, called mutations. Usually, these mutations are disabling and inhibit the ability of the offspring to survive, but once in a while, they improve the fitness of the individual. GeneHunter occasionally causes mutations to occur.

As GeneHunter mates fit individuals and mutates some, the population undergoes a generation change. The population will then consist of offspring plus a few of the older individuals which GeneHunter allows to survive to the next generation. These are the most fit in the population, and we will want to keep them breeding. These most fit individuals are called elite individuals. After dozens or even hundreds of "generations," a population eventually emerges wherein the individuals will solve the problem very well. In fact, the most fit (elite) individual will be an optimum or close to optimum solution.

Specifications/Capabilities:

1) Solve an optimization problem from a Microsoft Excel spreadsheet;

3) Specify genetic algorithm parameters and list constraints that must be met by the solution;

4) Examples demonstrate the different types of problems that GeneHunter may help you solve;

5) Useful for non-programmers.

User Control -

1) Adjustable crossover and mutation rates, as well as generation gap;

2) Experiment with parameters and specifications in the example programs in the Excel interface.

Neural Network Integration - GeneHunter works with both NeuroShell 2 and the NeuroShell Predictor and Classifier Run-Time option.

For Programmers -

1) Free runtime license with restrictions;

2) Visual Basic source code available for GeneHunter examples. C code example also provided;

3) Construct applications with both continuous and enumerated chromosomes.

1) Designed especially for Microsoft's Visual Basic, Visual Basic for Applications, or Access Basic;

2) Runs with other languages which call DLLs under Windows, such as Visual C++ and Visual Basic.

Variables -

1) Build programs with GeneHunter which can run up to 128 populations simultaneously. Each population may contain up to 2,000 individuals (see Note 1).

2) Create continuous (integer/non-integer) chromosomes with the MakeChromosome function. You may use up to 5,000 chromosomes in one individual (see Note 1).

3) Create enumerated chromosomes with the MakeEnumChromosome function. You may use up to 2,000 enumerated chromosomes in one individual (see Note 1).

4) Create chromosome pools with the MakeChromosomePool function. You may use up to 200 chromosome pools in one population. Each pool may contain up to 10,000 chromosomes (see Note 1).

Note 1: The limits mentioned are program limits. Your computer may not contain enough memory for large problems, and some large problems may not be solvable even if they are within the limits.

Visual Basic Examples - Installation creates a program group from which you can view example programs created with Visual Basic and Borland C++ that use GALIB.DLL.

View Runner-Up Solutions - The GeneHunter Excel Add-In allows you to save "runner-up solutions" in addition to the best solution. This feature will allow you to try near optimal combinations of values for adjustable cells that may in fact be a more practical solution to your problem. The user may specify how many (N) runner-up solutions should be kept after evolution is finished. These N best solutions are stored in a separate worksheet in the Excel workbook. This option can be turned on/off as needed. The default setting is off.

Multiple Fitness Functions - Several fitness functions can be set up to optimize simultaneously. In addition to the main fitness function the user can enter a list of additional fitness functions to be optimized in the same run. The goal of each fitness function (maximize/minimize/search for a specific value) is set independently. This feature will allow you to control more than one facet of an optimization problem.

Hard and Soft Constraints - Hard constraints (also known as ranges) and soft constraints (secondary fitness functions) are entered separately. Ranges (maximum and minimum values of chromosomes) can be set by referencing cells on the worksheet containing the minimum and maximum values. You can set these values directly on the worksheet without going through the GeneHunter dialog box.

Tolerance and Priority Parameters -

1) The user can add a tolerance and a priority for each soft constraint entered. The purpose of the tolerance is to tell GeneHunter when it has done a sufficient job. For example, if your constraint is that cell B4 must be less than cell B6, then you may want to instruct GeneHunter that if they are within plus or minus .5, then the solution is acceptable.

2) The priority tells GeneHunter that some constraints are more important than others in case they canNot all be met. Priorities can be set to "low", "medium", or "high".

Control The Random Number Generator - GeneHunter allows the user to control the evolution of the initial population using the random number generator. Some users may want to begin with the same population each time and vary other factors in the optimization process. This is done by using the same random number seed each time, which is the default setting. Others may want to begin with a different population each evolution in order to find different solutions. You may do this by selecting a different random number seed.

Graph Optimization Progress - GeneHunter can display a graph of the best fitness function versus generation number. The graph is a regular Microsoft Excel chart that you can format using Excel. You can view this graph to see if the genetic algorithm is progressing in finding a solution.

System Requirements

Windows Vista, Windows XP and Windows 2000 with SP4 are the only supported operating systems. The software may still work on Windows 95/98/Me/NT, but its performance is not guaranteed on those older systems.

If you run the operating systems above in a virtual window of a MAC (under Parallels for example) or Linux, our programs should work, but our technical support department cannot assist you except with Windows Vista, XP, and 2000 with SP4.

You must use a PC with an Intel compatible processor (like AMD), with at least 256MB RAM.

GeneHunter and NeuroShell Run-Time Server are compatible with Microsoft Excel versions up to 2007.

NeuroShell 2 can import from Microsoft Excel spreadsheets up to 2007. Internal files can be viewed by our own data grid program or Excel versions up to 2003.

Manufacturer

• Ward Systems Group, Inc.
• Executive Park West
• 5 Hillcrest Drive
• Frederick, MD 21703
• Phone: (301) 662-7950
• Fax: (301) 663-9920
• Email: sales@wardsystems.com

Manufacturer Web Site Ward Systems Group, Inc.

Price \$595.00 USD

G6G Abstract Number 20050

G6G Manufacturer Number 102960