I use genetic algorithm in order to solve the NP-hard problem. In fact, it uses additional local search method, which is an ad-hoc procedure considering problem sprecifics.
Rephrasing the title:
I wonder whether bee/ant colony and PSO algorithms have default drawbacks in comparison to modern GAs?
Actually, I have to justify the choice of GA for solving my problem.
I intentionally don’t want to name the problem, just want to know default and evident (perhaps, unique) GA advantages. Let us pretend that we are given the task to advertise GAs and to criticize other state-of-the-art metaheuristics.
I use genetic algorithm in order to solve the NP-hard problem. In fact, it
Share
The genetic algorithm in its canonical form was originally invented for optimizing problems that can be represented by a vector of binary values. If you have such a problem and you know nothing more about it, I’d say the GA is probably the first choice to apply. How such problems are optimized is described in the schema theory which is a neat theoretical basis.
One problem I have with PSO is the difficulty in tuning the parameters. There is the swarm size, inertia weights, attraction to personal best and attraction to global best. Which are one discrete and three continous parameters. But it’s not so much the amount of parameters, but their effect. One can create all kinds of different swarm behaviors with these parameters and I have seen parameters advised as good ones that are counter-intuitive. Our PSO implementation for example, which is based on the PhD thesis of Pederson defaults to a negative personal best attraction.
The GA on the other hand has the population size, mutation rate, the crossover, mutation operator, and selection operator. That’s 4 discrete and only one continuous parameter. That may seem much at first, but often, you choose between two or three crossover operators and maybe two or three mutation operators and mutation rate usually doesn’t have such a big effect on the performance as long as it’s > 0. You probably set it to either 5 or 10% and be done with it. That leaves you with population size and selection operator to tune, something which isn’t very difficult. So basically you try about 4-5 different parameter configurations and already get a good picture if it’s able to solve the problem or not. I have to admit, some implementations also have a crossover probability.
Additionally a GA can also be used for combinatorial optimization, so it can do binary problems, continuous problems, combinatorial problems and thus has many more applications. I think that’s also one reason for its popularity.
So I think GA is a more robust algorithm with respect to its parameters (its behavior does change of course, but not in the same dramatic way that it does in a PSO). Also it’s wider applicable since it’s not restricted to continuous search spaces.
Btw, if you’re interested, we’ve developed a software where many such algorithms are implemented and also a number of problems. We use it for solving new problems, and comparing algorithms, as well as parameters. It’s called HeuristicLab and runs on Windows (it has a GUI).