Products and Services
Bibliography and White Papers
Genetic Algorithm FAQ
GenSheet supports genetic operations for binary, integer, real,
and permutation representations.
GenSheet provides an interactive help and a tutorial that
takes you through the process of building applications using genetic
GenSheet interfaces with all standard Microsoft Excel editing, charting, database, button, dialog, and macro commands. GenSheet is compatible with the latest versions of Excel - both under 32- and 64-bit Windows implementations.
GenSheet requires Microsoft Excel -- Version 2007 and later.
Input/OutputGenetic algorithm inputs consist
of your specification of an objective function to be maximized, and
parameters that determine how the genetic algorithm is to
"breed" improved solutions from a population of parent
solutions. In GenSheet, you specify the initial population,
parameters (such as number of generations and mutation rate), and
other inputs directly as spreadsheet regions. GenSheet output is the
display of the population after computation.
Size and Speed GenSheet population
size is limited by Excel memory.
Run-time speed depends on the hardware support for floating point
GenSheet supports the following algorithms and utilities:
The basic genetic algorithm, representing genes
as arrays of bits.
Genes as arrays of integers. Useful for integer
Genes as arrays of real numbers. Useful for
Genes as arrays of integers, where order is
The basic single-user license includes the genetic algorithm
development tools integrated with the Microsoft Excel user inteface
macros and VBA libraries; an on-line tutorial; an 80 Page
Manual; and function optimization templates. GenSheet
comes with EMail Technical Support.
Genetic Algorithms and GenSheet FAQ
What Are Genetic Algorithms?Genetic algorithms are a set of
mathematical optimization techniques that are inspired by biological
evolution. They work by breeding a population of new
answers from old answers with a methodology based on survival of
the fittest. Over time, an initial population of answers will
improve and converge to a population of optimal answers.
How Do Genetic Algorithms Differ From Other Optimization
Techniques? Mathematical optimization is concerned with the
following problem: Given a complicated function f(x), find a vector
M, subject to constraints C(x), such that f(M) is a Maximum. This
formal statement is similar to the problem of finding the highest
mountain peak in a mountain range, while hiking with a blindfold.
Conventional optimization techniques start with an initial answer
-- a single guess for M -- and a way to generate new answers from
old answers, based on gradient search rules. This rule is:
to find a peak, keep taking steps in the direction of the steepest
Genetic algorithm techniques start with an initial population of
answers -- a set of different guesses for M -- and a way to generate
new answers from old answers based on rules that are inspired by
genetics and evolutionary biology.
Are Genetic Algorithms Better Than Conventional Optimization
Methods?One problem with conventional gradient search rules is
that they are local: since you start with a single guess, you may
find a peak, but you are not guaranteed that it is the highest in
the entire mountain range. Genetic search procedures are global:
since you start with a population of guesses, the likelihood of
finding the highest peak also depends on the size and variety of the
population. The basic idea is that when two potential answers are
mated in a probabilistic way, the best properties of both
parents are preserved in the population. In the terminology of
genetic algorithms, vector x is a chromosome and the components of x
are genes. The height of the mountains is described by a fitness
function: the optimal answer M corresponds to the fittest
survivor of all the possible values of x. At every generation,
the fittest answers are mated: the crossover operations combines
different genes of both solutions into a new solution, and the
mutation operations introduce a random element on genes.
Hill-climbing becomes survival of the fittest.
What Is GenSheet?GenSheet implements genetic algorithms as
C programs dynamically linked to Microsoft Excel spreadsheets. In
GenSheet, a gene is a spreadsheet cell, a chromosome (vector x) is
range of spreadsheet cells, and a population is a rectangular region
of spreadsheet cells (an array of chromosomes). GenSheet runs under
all implementations of Microsoft Excel (version 4.0 or higher),
including Windows, Macintosh, and Sun under Solaris. GenSheet macros
interface with all Excel spreadsheet commands for charting, for
spreadsheet formatting and for reporting and printing.
What Kinds of Genetic Operations are Supported by GenSheet?
GenSheet supports a comprehensive set of genetic
representations, operations, and utilities, all packaged in an
easy-to-use system based on Excel Menus and dialogs:
- Numerical Representations
Binary, Integer, Real,
- Genetic Operations
Uniform, Partially Matched
Crossovers, Average, Coarse, Fine Crossovers, Ordinal/Positional
How do you use GenSheet to Solve a Problem?If you are
familiar with using a spreadsheet, then you will very quickly
recognize GenSheet's ability to solve your most difficult
optimization problems efficiently. Three steps to solving a
problem with a genetic algorithm process:
- Represent the problem in terms of maximizing a Fitness
Create a fitness function based any
spreadsheet formulas. Function arguments can be either bits,
integers, real numbers, or integer orderings (permutations).
The representation you select for the fitness function
specifies the type of genetic algorithm. Define bounds for
each argument. Incorporate complex constraints in the
fitness function. If you are using one of the predefined
GenSheet applications, the fitness function is already
specified for you.
- Set the Parameters for the Genetic Algorithm on the
Set the parameters in the Parameter Region
on the spreadsheet. All GenSheet algorithms and applications
have defaults for all parameters displayed in a Parameter
If you have designed your own fitness
function, set the number of generations to the number of
iterations in the Excel Calculation... menu. If you are
using a predefined GenSheet application, set the generations
to the #Runs parameter in the spreadsheet Parameter Region.
© 2015 Inductive Solutions, Inc. All rights