javaalgorithmevolutionary-algorithmsimulated-annealinghill-climbing

Multiple local search algorithms to find global optima


So I'm fairly new to the whole evolutionary and genetic algorithm world and I'm in the process of writing one now that will optimize an array and return the best possible solution - the fitness.

My algorithm right now is optimized through simulated annealing, I can change the cooling rate and starting temperature to change the pressure and diversity of the population to get different results, it works great. My question is, is using two different kinds of local search in one algorithm viable? Say I limit my iterations to 5000 for example. Would it be worth using 4000 for simulated annealing and then devote the remaining 1000 to a hill climber local search to find the optimal solution from the values found in the first local search? Or is using two different local searches in one algorithm just not standard practice? I'm new to this world of programming so I'm open to any suggestions!


Solution

  • I use stimulated annealing (SA) to help me optimize error estimation in delta-style 3d printer. I'm fitting a 34 dof error function to samples error map. I run 3 million iterations of SA followed by hill climbing (HC). The HC reduces the error (cost) function value. I don't know of this is common, but it works for me. Typical results: original error function, 150. After SA, 18. After HC, 2.