Welcome To MendelSolve

A Genetic Algorithm Solver

MendelSolve allows you to solve optimisation problems in Excel using a genetic algorithm (GA) approach. In much the same way as Solver works it takes a target formula and adjusts inputs to minimise or maximise the result. The advantages of the genetic algorithm approach is its ability to solve non-linear problems and avoid getting locked into a local minimum or maximum. MendelSolve uses an off-the-shelf configuration that works well in most situations but does allow for various parameters to be altered.

For details of the algorithm employed see the following paper: pdf dvi ps

Use it now for free!

Download the full version for Windows

To remove an occasional prompt then please purchase a licence and support further development


For questions or comments please use our contact page



  • For use in the current session open 'MendelSolve.xll' from its install location
  • To install across session go to Tools->Add-Ins and browse to 'MendelSolve.xll'


The Problem
This tutorial solves a simple two dimensional problem that gradient solvers find daunting. The function has very many local maxima that are spread out around the single global minima at the origin.


The domain is entered either as three rows, three columns or three individual cells for one dimensional problems. The first row in this example contains the minimum values of the input variables that the solver which search over. The second the maximum and finally a row for the actual inputs into the objective function. The objective function is a function of these variables here defined in B5. Click here to download this example..


Then select MendelSolve->Solve to bring up the solver configuration dialog box.

For each of the domain cell pickers select the relevant rows. Do the same for the objective function cell at B5. Select 'Maximise' from the goal drop-down.

Click OK to begin the solver. Once it has finished the input variables in B3:C3 contain the optimised values. Here we can see that even with the default parameters it comes very close to the origin.

To improve on the result various parameters can be altered. Often increasing the trials is best. Each trial is an independent run using the next sequence of random numbers from the generator. Often it takes a few trials to 'warm-up' the generator.



  • The Mersenne Twister random generator is used throughout.
  • Since the number of function evaluations is fixed the solver can be used iteratively to find a solution very quickly. First using a small population over a number or generations and then restricting the input domain according to the result and increasing the population. This forms a hybrid approach of seeking a local domain.
  • Genetic algorithms can be slower on simple problems since they require many evaluations of a function and do not rely on gradients for improved results. However, this is their advantage for very tricky problems.