Inductive Solutions, Inc.
380 Rector Place, Suite 4A, New York, New York 10280

Email  Telephone: +1 (212)945.0630  



Products and Services
Software Products
Recommended Books

Bibliography and White Papers
Free Downloads





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 algorithms. 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.

System Requirements

GenSheet requires Microsoft Excel -- Version 2007 and later.


Genetic 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 computation.

GenSheet supports the following algorithms and utilities:

  • Binary
    The basic genetic algorithm, representing genes as arrays of bits.
  • Integer
    Genes as arrays of integers. Useful for integer programming problems.
  • Real
    Genes as arrays of real numbers. Useful for non-linear programming.
  • Permutation
    Genes as arrays of integers, where order is significant.


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 ascent.

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, Permutation
  • Genetic Operations
    Uniform, Partially Matched Crossovers, Average, Coarse, Fine Crossovers, Ordinal/Positional Mutations

    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:
    1. Represent the problem in terms of maximizing a Fitness Function.
      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.
    2. Set the Parameters for the Genetic Algorithm on the Spreadsheet.
      Set the parameters in the Parameter Region on the spreadsheet. All GenSheet algorithms and applications have defaults for all parameters displayed in a Parameter Region.
    3. Iterate.
      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 reserved.