Improving GA accuracy with prior error information

4 views (last 30 days)
I have a problem where I want to find the values of two variables that minimize a function. The problem is a localization algorithm, I want to estimate . The real can be anywhere inside a 2D space.
I've studied how the optimization error changes as a function of the real parameters , meaning that I know in each real positions the algorithm tens to not converge resulting in a really big error. Bellow I have an example heatmap that represents the relationship between the error and the real.
With this information, I was able to create a InitialSwarmMatrix for PSO placing more particles in the problematic regions, thus reducing the error. So I wanted to do something similiar to ga, since I know a priori where the algorithm tends to fail, I could correct the behaviour.
Can I do something similiar to what I've done on PSO with InitialPopulationRange? Do you know any other way?

Accepted Answer

Abhishek Krishna
Abhishek Krishna on 6 Jul 2023
Hi,
Changes you can do in your current approach
  • Leverage Genetic Algorithm (GA) by using an appropriate initialization strategy for the population. The InitialPopulationRange can be used to define the range of values for each variable in the initial population. By considering the information you have about the relationship between error and the real parameters, you can bias the initialization towards the problematic regions.
  • Define a probability distribution that reflects the likelihood of convergence failure in different regions. You can assign higher probabilities to the regions where the error tends to be larger. Then, when generating the initial population, you can sample from this distribution to bias the initialization towards those regions.
  • GA provides various other parameters and techniques that can be adjusted to improve convergence, such as mutation and crossover operators, selection strategies, and termination conditions. Experimenting with these parameters can also help you achieve better results in optimizing your function.
Alternative approach
  • Consider using a clustering algorithm to identify the problematic regions based on the error values. Once you have identified these regions, you can generate more individuals in those areas during the initialization phase of the GA.
Both the above suggestions allow you to bias the initial population towards the regions where the algorithm tends to fail, increasing the chances of finding a better solution. Remember that the effectiveness of these approaches may depend on the specific characteristics of your problem and the distribution of errors.
I hope this helps!

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!