Solved – Genetic algorithm for parameter estimation

estimationgenetic algorithms

I am a bit confused about parameter estimation using evolutionary methods and their ability to do such a job. Since I am not that pro in stat I am describing my problem with giving an example.

Given different response variable, say Y and in my example molecular weight there are different constant value/weight that can lift up our variables (atoms) to hit that response value. The example is molecular weight of molecules. There is 10 molecule which combined by 100 different atom and we are wondering about weight of each atoms.

Say $CCOOONH$ is one of the molecules and we know its molecular weight, $\alpha$ so the equation is like $\alpha$= 2$C_w$+3$O_w$+1$N_w$+1$H_w$.

My question is mainly focused on the relations that GA or other evolutionary methods are able to derive (can they catch a nonlinear relation?!), how much it depends on the fitness function (if I work with a nonlinear fitness function) and finally, could you provide some survey or packages which are relevant?

Could you elaborate more about choosing a proper fitness function in your answer, for instance in my question … could it be a simple correlation function of a new linear combination of variables and the response variable?!
How about ordering variable, meaning some variable could be look like $\alpha$ = 2$C_w$^$\gamma_1$+3$O_w$^$\gamma_2$+1$N_w$^$\gamma_3$+1$H_w$^$\gamma_4$ which apparently has a heavier computation.

Best Answer

Yes, genetic algorithms can find maxima in a non-linear fitness function. Mutation corresponds to a random search of the space. It may take too long for you to get results.

Choosing the right fitness function is crucial. That specifies the goal, and route to the goal. A lot of the results you get depend on the fitness function. The smoother the fitness function, the more it points towards the maximum at any point, the easier it is to climb to that maximum.

An overview is on Wikipedia.

For packages in Java, see stackoverflow. I used WatchMaker and it was fine.