Can anyone explain the difference between Genetic Algorithm and Exhaustive Search Algorithm in reference to search techniques and how many numbers of variables it can work with.
Hello. In general exhaustive search explores all the solutions and always find the best. Evolutionary and metaheuristic algorithms take samples and evaluate them to see its quality. This kind of methods reduces the computational time but they find near optimal solutions.
Regarding the number of variables, most of them are able to work in multi dimensional environments. For example in numerical benchmark they are usually tested in 30-100 dimensions.
There is seldom a best algorithm for all instances of a particular problem type. In the case of nonlinear integer/discrete problems Benders decomposition is a classic approach that may work well for some types of problems. This approach requires - typically - that your problem instance has an explicit formulation - that is, no simulation involved. There are also some specific conditions on the problem for the method to converge - you have to be able to globally solve smaller non-linear discrete problems repeatedly, for example.
Most people in this forum, it seems, are very keen on metaheuristics. I am not, as you have little control of what is going on, while Benders decomposition, and some other mathematical optimization techniques, have a solid theory behind it, and you will know when you have found an optimal solution. With genetic things you are never quite sure, as there is little theory on when to stop iterating.
Dear Prof. Michael Patriksson , excelent point of view. Metaheuristics are good alternatives to start in this area but are not the best. In my case I start moving to mathematical optimization and other more robust areas.