Main menu:

Home » Projects » GA Optimization for MS Excel

GA Optimization for MS Excel

GA Optimization for MS ExcelDescription:

This program allows the user to take an Excel spreadsheet with any type of calculation data (no matter how complex) and optimize a calculation outcome (e.g. total cost). This is based on the selection of up to five design variables and up to five constraints. The optimization can be performed as a maximization, minimization or the attempt to reach a target value. Applications for this technique lie in every field of work. If the problem can be modeled in Excel, it can be optimized using this program. The main advantage of this program over the Solver, which is supplied with Excel is that it can solve highly nonlinear problems or problems that feature discontinuous functions. Both of these can be problematic for the gradient-based optimization routine that Solver is based on. The software available here is the result of a term project in a class on engineering design optimization. It was written for research and should only be used for that purpose since it may contain bugs (please report any bugs to me using the contact form). It has sufficient capability for small projects and study examples. See below for the specs. This software is provided free of charge. Two working examples have been included with the installer. Please read the terms of the license that is provided with the software before using it. This current version (v. 1.2) replaces the earlier one that was available from this site.

Introduction:

Genetic algorithms (GAs) are based on biological principles of evolution and provide an interesting alternative to "classic" gradient-based optimization methods. They are particularly useful for highly nonlinear problems and models, whose computation time is not a primary concern. Continuity of functions is not required. Similar to other methods such as Simulated Annealing, they perform better than gradient-based methods in finding a global optimum if a problem is highly nonlinear and features multiple local minima. In general, GAs approach the entire design space randomly and then improve the found design points by applying genetics-based principles and probabilistic selection criteria. Although a large number of modified algorithms are available, a GA typically proceeds in the following order:

  1. Start with a finite population of randomly chosen chromosomes ("design points") in the design space. This population constitutes the first generation ("iteration").
  2. Evaluate their fitness ("function value").
  3. Rank the chromosomes by their fitness.
  4. Apply genetic operators (mating): reproduction (reproduce chromosomes with a high fitness), cross-over (swap parts of two chromosomes, chosen based on their fitness to create their offspring) and mutation (apply a random perturbation to parts of a chromosome). All of these operators are assigned a probability of occurrence.
  5. Assemble the new generation from these chromosomes and evaluate their fitness.
  6. Apply genetic mating as before and iterate until convergence is achieved or the process is stopped.

A Windows user interface was created for the GA routine, which allows the user to easily use the GA model without much prior knowledge. As can be seen in the screen shots, an Excel file, which contains the calculation model, can be selected and cell references for the function value, all design variables and all constraints can be specified. On another tab, the user can modify the given GA parameters and then on a third tab, the user can run the GA algorithm and capture its output. Optionally, the user can save all GA and model parameters to a text file and restore them from there later.

Downloads:

GA Optimization for Excel v.1.2 (Build 1018) (1404 kB) Windows The program and two sample Excel files have been included in this Windows installer. NOTE: The software has only been tested with Excel XP on a Win XP Professional machine. See HELP>ABOUT for details and license information.

Quick Start Tutorial (228 kB). This document will get you going with the software. It will be included in the next revision as a help file. Paper: "Thermal and Structural Stud-Wall Optimization in Excel using Genetic Algorithms" (333 kB). This document shows some verification calculations (also provided in the download) and explains parameters and settings a bit more in detail.

Screen Shots:

Screenshot 1 Screenshot 2

Revision History:

v. 1.2 (Build 1018) (August 16, 2005):

  • Accepts now 5 design variables
  • Variables can be integer or real (on a per-variable basis)
  • Expanded cross-over type selection dialog
  • Nicer About dialog
  • Added Windows installer and uninstaller
  • Fixed bugs: - Implementation of decimal precision improved - Routine was only doing 1pt cross-over before, fixed now - Fixed problem with large negative values (caused hangups) - Fixed rounding problems (now scientific, not bank) - Improved constraint handling (precision-based comparison)

v. 1.0.0.10 (May 16, 2005):

  • 1 Target function [minimize, maximize, target]
  • 3 Variables [real only, lower / upper bounds]
  • 5 Constraints ["< =", ">=", "="]
  • Excel file selection
  • Load / save model in text file
  • Plot each chromosome in every generation option
  • Application of fixed value constraint penalty
  • Option to define: - Number of chromosomes - Cross-over probability - Cross-over type [1P, 2P, uniform] - Mutation probability - Random selection probability - Max. # of generations - # of preliminary runs - Max. # of generations in preliminary run - Convergence tolerance - Constraint tolerance - Numeric precision
  • Installation from ZIP archive

Miscellaneous:

Comments

Comment from farayi |
Time: February 27, 2007, 23:13

i would like to use this software, but are there any simple examples to follow?

Comment from Alex |
Time: February 28, 2007, 11:16

[quote comment="1319"]i would like to use this software, but are there any simple examples to follow?[/quote]

Farayi, There are two simple examples included in the installer. Try them out, they should run right off the bat. Also look at the Quick Start Tutorial (download) to help you along.

Comment from Vijay |
Time: March 28, 2007, 00:54

Dear Alex,
Thanks for the software, easy to use & efficient on excel for NLP. will i be able to do multiobjective optimization using this GA software? Thanks again

Comment from Alex |
Time: March 28, 2007, 20:03

[quote comment="2262"]Dear Alex,
Thanks for the software, easy to use & efficient on excel for NLP. will i be able to do multiobjective optimization using this GA software? Thanks again[/quote]

Vijay, I haven’t done much of that, but as I understand it, you just need to define the weights as variables (in addition to the design variables). After a few runs, the collection of solution points (which you can copy from the text box) gives you optimal solutions that lie on the Pareto front.

Unfortunately at this point, my software only allows for five variables, but with a two-objective problem, you’ll only use one for the weights since the other one is (1-w).

Comment from calvados |
Time: April 8, 2007, 23:00

Thank for your software. It’s great!
Can you send me the full Excel spreadsheet ? There are some things I don’t understand much although I have read the Quick Start Tutorial , e.g how to insert the function…..
Thank you!

Comment from Alex |
Time: April 8, 2007, 23:25

[quote comment="2722"]Thank for your software. It’s great!
Can you send me the full Excel spreadsheet ? There are some things I don’t understand much although I have read the Quick Start Tutorial , e.g how to insert the function…..
Thank you![/quote]

The target function is simply contained in a cell, e.g. C1 contains “=A1*B1″ where A1 and B1 are your design variables.

Comment from nitin Mohite |
Time: February 19, 2008, 00:01

Sir,
I am doing my reserarch civil Engineering with specilization in WaterResources. For optimization of reservoir i want to use genetic algorithm techenique. for this i am getting following problem.

1) can ga solve large size problem (3000 decision veriable and 3006 constraint)
2) how to accomodate the constraints
i am waiting for your reply

Comment from kanagaraj |
Time: February 25, 2008, 23:08

I want to maximize objective fun
subject to
some constraints
How to use the software

Comment from kanagaraj |
Time: February 25, 2008, 23:10

I need help files which contains some tutorial problems

Comment from nitin m mohite |
Time: February 27, 2008, 05:29

Hello sir;

if the number of variable is increases to 1000 can MS Exel ga solve the problem.

Comment from Ray Browell |
Time: April 1, 2008, 07:28

Hi Alex,

I like your GA Program.

Are you planning any updates to it?

If so, could you make it calculation error tolerant. In other words, if a particular set of values does not give a result, just ingore and continue, or allow a restart from that point. If some number, set by the user of non-results, then stop.

Thanks for the program,

Ray

Comment from Alex |
Time: April 1, 2008, 13:11

Thanks, Ray for the comment - it is a good suggestion. I would also like to get unlimited variables/constraints into it. Maybe I can do some work on it over summer.

Cheers, Alex

Comment from Daniele |
Time: April 5, 2008, 19:13

Hello, I’m a civil engineering student. Thanks very much for your software and for keeping it free.
Maybe you have a solution for my little problem.
My target function is the result of a FEM analysis based on the five design variables and so I can’t put it in excel as a formula, but it should be typed generation by generation, giving the current state of the design variables (or dynamically extracted from the FEM analysis, but this is much more complicated!)
Is it possible?
Any suggestion on which way I should try (also other softwares) will be apreciated.
Thanks!!

Comment from Jan Kiehne |
Time: April 11, 2008, 06:41

Alex, I am trying to use your software to optimize nonlinear maximization problems in the context of a principal agent model. Unfortunately, I don’t seem to be able to get your tool to work properly. Most of the times the process stops after the first generation (regardless of how many max runs I have speficied in the set-up) and it always picks the highest numbered chromosome of the last generation as the optimal solution which is obviously not correct. Also, from the plottings it seems as if the fitness is not being calculated correctly (alway same value of -1000000000). I would very much apprciate if you could give me a hint what I may be doing wrong. Regards, Jan

Comment from Alex |
Time: April 11, 2008, 09:01

Jan, This might have to do with calculation times in Excel. I haven’t tested non-instantaneous calculations and there may be the possibility that it picks a target cell value before it gets updated.

Comment from Alex |
Time: April 11, 2008, 09:05

Daniele, At this point, this software does not link to other programs (even if you can set this up in Excel). You could try to use a software like VisualDOC.

Comment from Alex_Odessa |
Time: April 11, 2008, 09:21

xlaoptim not works with built example.

Error in point 0.5 (in program) or 0,5 (in Excel)
Please help me

thank’s

Write a comment