Genetic Algorithm - Relation between Population and Fitness Function

7 views (last 30 days)
When using a Custom Population Function and specifically Custom Binary Population. How does the population relate to the Fitness Function?
I have both coded out but and have somewhat knowledge but lack the critical understanding of how they work together. Should my fitness function have a input variable which takes in the population and computes the fitness of the individuals?
I have not found and detailed reading material on this relation. Are there any such reading materials available on these relations or could anyone explain them please.
Thanks.

Accepted Answer

Alan Weiss
Alan Weiss on 27 Jan 2014
Edited: Alan Weiss on 27 Jan 2014
As described in the documentation, the creation function creates a population, and the fitness function evaluates how good each member of the population is. There is a specific syntax for the creation function, and there is a syntax for the fitness function. There is more information about fitness functions here.
For the creation function, the syntax is
function population = creationfcn(nvars,fitnessfcn,options)
GA passes the arguments nvars, fitnessfcn, and options to your creation function. What you do with those arguments is up to you. You will certainly need the nvars argument so that your population has the right number of elements, but you can use the other two arguments or ignore them as you see fit.
I hope this helps.
Alan Weiss MATLAB mathematical toolbox documentation
  12 Comments
Alan Weiss
Alan Weiss on 21 Feb 2014
Sam, I suggest that you try going through the introductory documentation on how to set up an optimization in Optimization Problem Setup. The link I gave to Linear Inequality Constraints should show you how to include these constraints. Here is an extensive example in the context of linear programming.
Basically, to make a linear inequality constraint
A*x <= b
you simply pass the A matrix and b vector in the solver. For ga,
x = ga(objective,numvariables,A,b,...)
Then ga will automatically ensure that the constraints are satisfied. Please do not use any custom creation, mutation, or crossover functions, or ga might not keep the linear inequalities.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
Sam
Sam on 21 Feb 2014
ohh sorry let me rephrase.. i am aware of this and have done this more than a few times now... i meant to ask how should the constraints be sent in since i need to write it in A & b format...
but after going through the documentation links for awhile now it is clearer i had confused myself by accident...
Thanks much!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!