Different optimisation algorithms have different strengths and weaknesses.
To alleviate the individual weaknesses of particular algorithms, one can combine different algorithms together or enhance an algorithm by different techniques.
Hybrid algorithms make good use of the desirable properties of different efficient techniques for better performance. However, when designing a hybrid algorithm, one need to study how and when, where and which techniques should be used, which difficult to address appropriately.
Hyberdisation can be conducted in multiple different way. For example, use of efficient local search methods in evolutionary algorithms (EAs), EA with multiple crossover operator, combination of an EA with another EAs, neural network assisted EA, EA with multiple populations and machine learning techniques. And the use of multiple different re-Intilization population strategies in EAs.
That is simple and easy to answer. Suppose you have Genetic Algorithm and you are trying to solve the exam scheduling problem in such a case you do not have one definite solution why? because you get the local optimal solution what is the remedy for this problem is to use another algorithm with GA such as Hill climbing which tries to slow down the process of GA converging to local optimal and ease the way toward the global one. This is just an example of a heuristic mathematical optimization and evolutionary combined algorithms in this case they are called Hybrid Genetic Algorithm.
Check my literature for more details about Hill climbing and GA combination.
Dear Sree, the aim of hybridization of different algorithms is to exploit the complementary characteristics of different optimization strategies, that is, hybrids are believed to benefit from their combined effect. I developed hybrid of GA and dynamic programming, where I used DP for reducing the search space for genetic algorithm. This helped reducing computational time spent by simple GA. There are several ways to hybridize algorithms, some of which are: Hybridization between an evolutionary algorithm and another evolutionary algorithm (example: a genetic programming technique is used to improve the performance of a genetic algorithm), Fuzzy logic assisted evolutionary algorithm, Hybridizing a local search with a metaheuristic technique to speed up the search process etc.
Different optimisation algorithms have different strengths and weaknesses.
To alleviate the individual weaknesses of particular algorithms, one can combine different algorithms together or enhance an algorithm by different techniques.
Hybrid algorithms make good use of the desirable properties of different efficient techniques for better performance. However, when designing a hybrid algorithm, one need to study how and when, where and which techniques should be used, which difficult to address appropriately.
Hyberdisation can be conducted in multiple different way. For example, use of efficient local search methods in evolutionary algorithms (EAs), EA with multiple crossover operator, combination of an EA with another EAs, neural network assisted EA, EA with multiple populations and machine learning techniques. And the use of multiple different re-Intilization population strategies in EAs.
There many issues beside avoiding local optima when hybridizing an optimization algorithm , they can summarized as follow:
1-type of application to be solved using the optimization algorithm
2-how critical it is time wise
3- would it be enough to solve it using one optimization algorithm?
Example I would prefer to use simulated annealing to solve exam scheduling and traveling salesman on using genetic algorithm if these applications are critical and no need for global solution
Hybrid GA to solve image segmentation if high accuracy is desired.
First of all make a list of all your favourite optimization algorithms. After that do a research in the academic papers for different combinations between them. If you find a missing combination you are done with the problem which you have.
Have in mind that almost evrything is alerady implemented. You should be very smart and very progressive to fine something really new.
If both of your algorithms are heuristics, You may also use genetic programming or a genetic algorithm to generate the optimal hybridization for you. This concept belong to the field of hyperheuristics. An easy way to do that is in:
Evolution of new algorithms for the binary knapsack problem. Natural Computing, 2016. Volume 15, Issue 1, pp 181–193, Parada, et al.
Automatically generated algorithms for the Vertex Coloring Problem. PLoS ONE 8(3): e58551. DOI:10.1371/journal.pone.0058551, 2013. Contreras, et al.
The main focus should be set on the problem to be optimized, both with respect to modeling as in the formulation, and not so much on the techniques used. The techniques must be suitable and adapted to the problem and not the problem to the techniques. First is necessary to define and formulate correctly the problem of optimization and after select and adapt suitably the optimization techniques to be used.
I consider the problem - how do I get to "good" areas of the solutions space quickly? How do I fine tune look when I am in those "good" areas? How do I move to new areas to further explore the solution space? Then, I pick algorithms that best achieve the results. Simulated Annealing is fast and easy - I start there, multiple reversions with tabu search is next as it is thorough. I use genetic algorithms to combine multiple solutions into new solutions as a way to move quickly to new areas. There is lots of flexibility with these hybrid systems and when to change search strategies is still begin developed.
The hybridization of algorithms could be considered for the following reason.
One algorithm may be good to exploit the solution search space, whereas other may be good for exploring the search space. The combined effect can better exploit and explore the solution search space to approximate the better solution.
The hybridization could be done in two generalized ways as:
Use a form of GP to generate your new meta-heuristic. You may need different operators for different problems though. oltean has used linear and Mep. GE has been used and I am currently using Cartesian genetic programming. If you would like human readability and understandability, please a graph encoding scheme is beneficial.
I agree, that the combination of a hybrid algorithms depends on the of specific problem. For example in numerical optimization, if goal function is differentiable or not. Most algorithms have known area of theirs appropriate application. For instance artificial neural network is usefull in optical character recognition and fuzzy logic has been applied to control systems. According to the No Free Lunch Theorem for Optimization "any two algorithms are equivalent when their performance is averaged across all possible problems." Therefore create algorithm should be preceded of thorough analysis of specific consider problem. Useful will be papers or books. Examples of hybridization are fuzzy logic with artificial neural network or genetic algorithm with tabu search (in numerical optimization).