Metaheuristic: Difference between revisions
imported>OAbot m Open access bot: hdl updated in citation with #oabot. |
imported>OAbot m Open access bot: url-access=subscription updated in citation with #oabot. |
||
| Line 3: | Line 3: | ||
In [[computer science]] and [[mathematical optimization]], a '''metaheuristic''' is a higher-level [[procedure (computer science)|procedure]] or [[Heuristic (computer science)|heuristic]] designed to find, generate, tune, or select a heuristic (partial [[search algorithm]]) that may provide a sufficiently good solution to an [[optimization problem]] or a [[machine learning]] problem, especially with incomplete or imperfect information or limited computation capacity.<ref name=glover03handbook/><ref name="Bala2015" /><ref name="Bianchi2009" /><ref name="blum03metaheuristics" /> Metaheuristics sample a subset of solutions which is otherwise too large to be completely enumerated or otherwise explored. Metaheuristics may make relatively few assumptions about the optimization problem being solved and so may be usable for a variety of problems.<ref name=glover03handbook/><ref name=":1" /><ref name=":2" /> Their use is always of interest when exact or other (approximate) methods are not available or are not expedient, either because the calculation time is too long or because, for example, the solution provided is too imprecise. | In [[computer science]] and [[mathematical optimization]], a '''metaheuristic''' is a higher-level [[procedure (computer science)|procedure]] or [[Heuristic (computer science)|heuristic]] designed to find, generate, tune, or select a heuristic (partial [[search algorithm]]) that may provide a sufficiently good solution to an [[optimization problem]] or a [[machine learning]] problem, especially with incomplete or imperfect information or limited computation capacity.<ref name=glover03handbook/><ref name="Bala2015" /><ref name="Bianchi2009" /><ref name="blum03metaheuristics" /> Metaheuristics sample a subset of solutions which is otherwise too large to be completely enumerated or otherwise explored. Metaheuristics may make relatively few assumptions about the optimization problem being solved and so may be usable for a variety of problems.<ref name=glover03handbook/><ref name=":1" /><ref name=":2" /> Their use is always of interest when exact or other (approximate) methods are not available or are not expedient, either because the calculation time is too long or because, for example, the solution provided is too imprecise. | ||
Compared to [[optimization algorithm]]s and [[iterative method]]s, metaheuristics do not guarantee that a [[global optimum|globally optimal solution]] can be found on some class of problems.<ref name=blum03metaheuristics /> Many metaheuristics implement some form of [[stochastic optimization]], so that the solution found is dependent on the set of [[random variable]]s generated.<ref name=Bianchi2009 /> In [[combinatorial optimization]], there are many problems that belong to the class of [[NP-completeness|NP-complete]] problems and thus can no longer be solved exactly in an acceptable time from a relatively low degree of complexity.<ref>{{Cite book |last1=Brucker |first1=Peter |url=https://link.springer.com/10.1007/978-3-642-23929-8 |title=Complex Scheduling |last2=Knust |first2=Sigrid |date=2012 |publisher=Springer |isbn=978-3-642-23928-1 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-642-23929-8}}</ref><ref>{{Cite book |last1=Papadimitriou |first1=Christos H. |title=Combinatorial Optimization: Algorithms and Complexity |last2=Steiglitz |first2=Kenneth |date=1998 |publisher=Dover Publ., corrected, unabridged new edition of the work published by Prentice-Hall in 1982. |isbn=978-0-486-40258-1 |location=Mineola, N.Y}}</ref> Metaheuristics then often provide good solutions with less computational effort than approximation methods, iterative methods, or simple heuristics.<ref name=blum03metaheuristics /><ref name=glover03handbook/> This also applies in the field of continuous or mixed-integer optimization.<ref name=glover03handbook/><ref name=":5">{{Cite journal |last=Gad |first=Ahmed G. |date=2022 |title=Particle Swarm Optimization Algorithm and Its Applications: A Systematic Review |journal=Archives of Computational Methods in Engineering |language=en |volume=29 |issue=5 |pages=2531–2561 |doi=10.1007/s11831-021-09694-4 |issn=1134-3060|doi-access=free }}</ref><ref>{{Cite journal |last1=Li |first1=Zhenhua |last2=Lin |first2=Xi |last3=Zhang |first3=Qingfu |last4=Liu |first4=Hailin |date=2020 |title=Evolution strategies for continuous optimization: A survey of the state-of-the-art |url=https://linkinghub.elsevier.com/retrieve/pii/S221065021930584X |journal=Swarm and Evolutionary Computation |language=en |volume=56 |pages=100694 |doi=10.1016/j.swevo.2020.100694}}</ref> As such, metaheuristics are useful approaches for optimization problems.<ref name=Bianchi2009 /> Several books and survey papers have been published on the subject.<ref name=Bianchi2009 /><ref name=blum03metaheuristics/><ref name=glover03handbook/><ref name=goldberg89genetic/><ref name=talbi09metaheuristics/> Literature review on metaheuristic optimization,<ref>X. S. Yang, Metaheuristic optimization, Scholarpedia, 6(8):11472 (2011).</ref> suggested that it was Fred Glover who coined the word metaheuristics.<ref>{{cite journal|last1=Glover |first1=Fred |title=Future paths for integer programming and links to artificial intelligence |journal=Computers and Operations Research |date=January 1986 |volume=13 |issue=5 |pages=533–549 |doi=10.1016/0305-0548(86)90048-1 |issn=0305-0548 |url=https://leeds-faculty.colorado.edu/glover/fred%20pubs/174%20-%20Future%20Paths%20for%20Integer%20Programming%20TS.pdf}}</ref> | Compared to [[optimization algorithm]]s and [[iterative method]]s, metaheuristics do not guarantee that a [[global optimum|globally optimal solution]] can be found on some class of problems.<ref name=blum03metaheuristics /> Many metaheuristics implement some form of [[stochastic optimization]], so that the solution found is dependent on the set of [[random variable]]s generated.<ref name=Bianchi2009 /> In [[combinatorial optimization]], there are many problems that belong to the class of [[NP-completeness|NP-complete]] problems and thus can no longer be solved exactly in an acceptable time from a relatively low degree of complexity.<ref>{{Cite book |last1=Brucker |first1=Peter |url=https://link.springer.com/10.1007/978-3-642-23929-8 |title=Complex Scheduling |last2=Knust |first2=Sigrid |date=2012 |publisher=Springer |isbn=978-3-642-23928-1 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-642-23929-8}}</ref><ref>{{Cite book |last1=Papadimitriou |first1=Christos H. |title=Combinatorial Optimization: Algorithms and Complexity |last2=Steiglitz |first2=Kenneth |date=1998 |publisher=Dover Publ., corrected, unabridged new edition of the work published by Prentice-Hall in 1982. |isbn=978-0-486-40258-1 |location=Mineola, N.Y}}</ref> Metaheuristics then often provide good solutions with less computational effort than approximation methods, iterative methods, or simple heuristics.<ref name=blum03metaheuristics /><ref name=glover03handbook/> This also applies in the field of continuous or mixed-integer optimization.<ref name=glover03handbook/><ref name=":5">{{Cite journal |last=Gad |first=Ahmed G. |date=2022 |title=Particle Swarm Optimization Algorithm and Its Applications: A Systematic Review |journal=Archives of Computational Methods in Engineering |language=en |volume=29 |issue=5 |pages=2531–2561 |doi=10.1007/s11831-021-09694-4 |issn=1134-3060|doi-access=free }}</ref><ref>{{Cite journal |last1=Li |first1=Zhenhua |last2=Lin |first2=Xi |last3=Zhang |first3=Qingfu |last4=Liu |first4=Hailin |date=2020 |title=Evolution strategies for continuous optimization: A survey of the state-of-the-art |url=https://linkinghub.elsevier.com/retrieve/pii/S221065021930584X |journal=Swarm and Evolutionary Computation |language=en |volume=56 |pages=100694 |doi=10.1016/j.swevo.2020.100694|url-access=subscription }}</ref> As such, metaheuristics are useful approaches for optimization problems.<ref name=Bianchi2009 /> Several books and survey papers have been published on the subject.<ref name=Bianchi2009 /><ref name=blum03metaheuristics/><ref name=glover03handbook/><ref name=goldberg89genetic/><ref name=talbi09metaheuristics/> Literature review on metaheuristic optimization,<ref>X. S. Yang, Metaheuristic optimization, Scholarpedia, 6(8):11472 (2011).</ref> suggested that it was Fred Glover who coined the word metaheuristics.<ref>{{cite journal|last1=Glover |first1=Fred |title=Future paths for integer programming and links to artificial intelligence |journal=Computers and Operations Research |date=January 1986 |volume=13 |issue=5 |pages=533–549 |doi=10.1016/0305-0548(86)90048-1 |issn=0305-0548 |url=https://leeds-faculty.colorado.edu/glover/fred%20pubs/174%20-%20Future%20Paths%20for%20Integer%20Programming%20TS.pdf}}</ref> | ||
Most literature on metaheuristics is experimental in nature, describing empirical results based on [[computer experiment]]s with the algorithms. But some formal theoretical results are also available, often on [[convergence (mathematics)|convergence]] and the possibility of finding the global optimum.<ref name=blum03metaheuristics /><ref>{{Cite journal |last=Rudolph |first=Günter |date=2001 |title=Self-adaptive mutations may lead to premature convergence |url=https://ieeexplore.ieee.org/document/942534 |journal=IEEE Transactions on Evolutionary Computation |volume=5 |issue=4 |pages=410–414 |doi=10.1109/4235.942534|hdl=2003/5378 |hdl-access=free }}</ref> Also worth mentioning are the [[No free lunch theorem|no-free-lunch theorems]], which state that there can be no metaheuristic that is better than all others for any given problem. | Most literature on metaheuristics is experimental in nature, describing empirical results based on [[computer experiment]]s with the algorithms. But some formal theoretical results are also available, often on [[convergence (mathematics)|convergence]] and the possibility of finding the global optimum.<ref name=blum03metaheuristics /><ref>{{Cite journal |last=Rudolph |first=Günter |date=2001 |title=Self-adaptive mutations may lead to premature convergence |url=https://ieeexplore.ieee.org/document/942534 |journal=IEEE Transactions on Evolutionary Computation |volume=5 |issue=4 |pages=410–414 |doi=10.1109/4235.942534|hdl=2003/5378 |hdl-access=free }}</ref> Also worth mentioning are the [[No free lunch theorem|no-free-lunch theorems]], which state that there can be no metaheuristic that is better than all others for any given problem. | ||
| Line 17: | Line 17: | ||
* Techniques which constitute metaheuristic algorithms range from [[Local search (optimization)|simple local search]] procedures to complex learning processes. | * Techniques which constitute metaheuristic algorithms range from [[Local search (optimization)|simple local search]] procedures to complex learning processes. | ||
* Metaheuristic algorithms are approximate and usually non-deterministic. | * Metaheuristic algorithms are approximate and usually non-deterministic. | ||
* Metaheuristics are not problem-specific. However, they were often developed in relation to a problem class such as continuous<ref>{{Cite book |last=Schwefel |first=Hans-Paul |title=Evolution and optimum seeking |date=1995 |publisher=Wiley |isbn=978-0-471-57148-3 |series=Sixth-generation computer technology series |location=New York}}</ref><ref>{{Citation |last1=Eberhart |first1=R. |last2=Kennedy |first2=J. |title=A new optimizer using particle swarm theory |date=1995 |url=https://ieeexplore.ieee.org/document/494215 |work=Conf. Proc. MHS'95 |pages=39–43 |place= |publisher=IEEE |doi=10.1109/MHS.1995.494215 |isbn=978-0-7803-2676-7 }}</ref> or combinatorial optimization<ref>{{Citation |last1=Colorni |first1=Alberto |last2=Dorigo |first2=Marco |last3=Maniezzo |first3=Vittorio |title=Distributed Optimization by Ant Colonies |date=1991 |url=https://www.researchgate.net/publication/216300484 |work=Conf. Proc. of ECAL91 - European Conference on Artificial Life |pages=134–142 |place=Amsterdam |publisher=Elsevier Publ. |doi= |isbn=9780262720199 |editor-last1=Varela |editor-first1=F. |editor2-last=Bourgine |editor2-first=P.}}</ref> and then generalized later in some cases.<ref>{{Cite journal |last1=Socha |first1=Krzysztof |last2=Dorigo |first2=Marco |date=2008 |title=Ant colony optimization for continuous domains |url=https://linkinghub.elsevier.com/retrieve/pii/S0377221706006333 |journal=European Journal of Operational Research |language=en |volume=185 |issue=3 |pages=1155–1173 |doi=10.1016/j.ejor.2006.06.046}}</ref><ref>{{Citation |last1=Nissen |first1=Volker |title=Constrained Combinatorial Optimization with an Evolution Strategy |date=1994 |work=Fuzzy Logik |pages=33–40 |editor-last=Reusch |editor-first=Bernd |url=http://link.springer.com/10.1007/978-3-642-79386-8_5 |access-date=2024-08-24 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/978-3-642-79386-8_5 |isbn=978-3-540-58649-4 |last2=Krause |first2=Matthias}}</ref> | * Metaheuristics are not problem-specific. However, they were often developed in relation to a problem class such as continuous<ref>{{Cite book |last=Schwefel |first=Hans-Paul |title=Evolution and optimum seeking |date=1995 |publisher=Wiley |isbn=978-0-471-57148-3 |series=Sixth-generation computer technology series |location=New York}}</ref><ref>{{Citation |last1=Eberhart |first1=R. |last2=Kennedy |first2=J. |title=A new optimizer using particle swarm theory |date=1995 |url=https://ieeexplore.ieee.org/document/494215 |work=Conf. Proc. MHS'95 |pages=39–43 |place= |publisher=IEEE |doi=10.1109/MHS.1995.494215 |isbn=978-0-7803-2676-7 |url-access=subscription }}</ref> or combinatorial optimization<ref>{{Citation |last1=Colorni |first1=Alberto |last2=Dorigo |first2=Marco |last3=Maniezzo |first3=Vittorio |title=Distributed Optimization by Ant Colonies |date=1991 |url=https://www.researchgate.net/publication/216300484 |work=Conf. Proc. of ECAL91 - European Conference on Artificial Life |pages=134–142 |place=Amsterdam |publisher=Elsevier Publ. |doi= |isbn=9780262720199 |editor-last1=Varela |editor-first1=F. |editor2-last=Bourgine |editor2-first=P.}}</ref> and then generalized later in some cases.<ref>{{Cite journal |last1=Socha |first1=Krzysztof |last2=Dorigo |first2=Marco |date=2008 |title=Ant colony optimization for continuous domains |url=https://linkinghub.elsevier.com/retrieve/pii/S0377221706006333 |journal=European Journal of Operational Research |language=en |volume=185 |issue=3 |pages=1155–1173 |doi=10.1016/j.ejor.2006.06.046|url-access=subscription }}</ref><ref>{{Citation |last1=Nissen |first1=Volker |title=Constrained Combinatorial Optimization with an Evolution Strategy |date=1994 |work=Fuzzy Logik |pages=33–40 |editor-last=Reusch |editor-first=Bernd |url=http://link.springer.com/10.1007/978-3-642-79386-8_5 |access-date=2024-08-24 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/978-3-642-79386-8_5 |isbn=978-3-540-58649-4 |last2=Krause |first2=Matthias|url-access=subscription }}</ref> | ||
* They can draw on domain-specific knowledge in the form of heuristics that are controlled by a higher-level strategy of the metaheuristic. | * They can draw on domain-specific knowledge in the form of heuristics that are controlled by a higher-level strategy of the metaheuristic. | ||
* They can contain mechanisms that prevent them from getting stuck in certain areas of the search space. | * They can contain mechanisms that prevent them from getting stuck in certain areas of the search space. | ||
| Line 25: | Line 25: | ||
[[Image:Metaheuristics classification.svg|thumb|[[Euler diagram]] of the different classifications of metaheuristics<ref name=nojhan07>[http://metah.nojhan.net/post/2007/10/12/Classification-of-metaheuristics Classification of metaheuristics]</ref>]] | [[Image:Metaheuristics classification.svg|thumb|[[Euler diagram]] of the different classifications of metaheuristics<ref name=nojhan07>[http://metah.nojhan.net/post/2007/10/12/Classification-of-metaheuristics Classification of metaheuristics]</ref>]] | ||
There are a wide variety of metaheuristics<ref name=Bianchi2009 /><ref name="glover03handbook" /> and a number of properties with respect to which to classify them.<ref name=blum03metaheuristics /><ref>{{Citation |last=Raidl |first=Günther R. |title=A Unified View on Hybrid Metaheuristics |date=2006 |work=Hybrid Metaheuristics |series=Lecture Notes in Computer Science |volume=4030 |pages=1–12 |editor-last=Almeida |editor-first=Francisco |url=http://link.springer.com/10.1007/11890584_1 |access-date=2024-08-24 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/11890584_1 |isbn=978-3-540-46384-9 |editor2-last=Blesa Aguilera |editor2-first=María J. |editor3-last=Blum |editor3-first=Christian |editor4-last=Moreno Vega |editor4-first=José Marcos}}</ref><ref name=":4">{{Cite journal |last1=Glover |first1=Fred |last2=Sörensen |first2=Kenneth |date=2015 |title=Metaheuristics |journal=Scholarpedia |language=en |volume=10 |issue=4 |pages=6532 |doi=10.4249/scholarpedia.6532 |doi-access=free |issn=1941-6016}}</ref><ref>{{Cite web |last1=Birattari |first1=Mauro |last2=Paquete |first2=Luis |last3=Stützle |first3=Thomas |last4=Varrentrapp |first4=Klaus |date=2001 |title=Classification of Metaheuristics and Design of Experiments for the Analysis of Components. |s2cid=18347906 |url=https://api.semanticscholar.org/CorpusID:18347906}}</ref> The following list is therefore to be understood as an example. | There are a wide variety of metaheuristics<ref name=Bianchi2009 /><ref name="glover03handbook" /> and a number of properties with respect to which to classify them.<ref name=blum03metaheuristics /><ref>{{Citation |last=Raidl |first=Günther R. |title=A Unified View on Hybrid Metaheuristics |date=2006 |work=Hybrid Metaheuristics |series=Lecture Notes in Computer Science |volume=4030 |pages=1–12 |editor-last=Almeida |editor-first=Francisco |url=http://link.springer.com/10.1007/11890584_1 |access-date=2024-08-24 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/11890584_1 |isbn=978-3-540-46384-9 |editor2-last=Blesa Aguilera |editor2-first=María J. |editor3-last=Blum |editor3-first=Christian |editor4-last=Moreno Vega |editor4-first=José Marcos|url-access=subscription }}</ref><ref name=":4">{{Cite journal |last1=Glover |first1=Fred |last2=Sörensen |first2=Kenneth |date=2015 |title=Metaheuristics |journal=Scholarpedia |language=en |volume=10 |issue=4 |pages=6532 |doi=10.4249/scholarpedia.6532 |doi-access=free |issn=1941-6016}}</ref><ref>{{Cite web |last1=Birattari |first1=Mauro |last2=Paquete |first2=Luis |last3=Stützle |first3=Thomas |last4=Varrentrapp |first4=Klaus |date=2001 |title=Classification of Metaheuristics and Design of Experiments for the Analysis of Components. |s2cid=18347906 |url=https://api.semanticscholar.org/CorpusID:18347906}}</ref> The following list is therefore to be understood as an example. | ||
=== Local search vs. global search === | === Local search vs. global search === | ||
| Line 32: | Line 32: | ||
Many metaheuristic ideas were proposed to improve local search heuristic in order to find better solutions. Such metaheuristics include [[simulated annealing]], [[tabu search]], [[iterated local search]], [[Variable Neighborhood Search|variable neighborhood search]], and [[Greedy randomized adaptive search procedure|GRASP]].<ref name="blum03metaheuristics" /> These metaheuristics can both be classified as local search-based or global search metaheuristics. | Many metaheuristic ideas were proposed to improve local search heuristic in order to find better solutions. Such metaheuristics include [[simulated annealing]], [[tabu search]], [[iterated local search]], [[Variable Neighborhood Search|variable neighborhood search]], and [[Greedy randomized adaptive search procedure|GRASP]].<ref name="blum03metaheuristics" /> These metaheuristics can both be classified as local search-based or global search metaheuristics. | ||
Other global search metaheuristic that are not local search-based are usually [[Population model (evolutionary algorithm)|population-based]] metaheuristics. Such metaheuristics include [[ant colony optimization]], [[evolutionary computation]] such as [[genetic algorithm]] or [[Evolution strategy|evolution strategies]], [[particle swarm optimization]], [[rider optimization algorithm]]<ref>{{cite journal |last1=D |first1=Binu |title=RideNN: A New Rider Optimization Algorithm-Based Neural Network for Fault Diagnosis in Analog Circuits |journal=IEEE Transactions on Instrumentation and Measurement |year=2019 |volume=68 |issue=1 |pages=2–26 |doi=10.1109/TIM.2018.2836058 |bibcode=2019ITIM...68....2B |s2cid=54459927 |url=https://ieeexplore.ieee.org/document/8370147}}</ref> and bacterial foraging algorithm.<ref name=":0">{{Cite journal |last1=Pang |first1=Shinsiong |last2=Chen |first2=Mu-Chen |date=2023-06-01 |title=Optimize railway crew scheduling by using modified bacterial foraging algorithm |url=https://www.sciencedirect.com/science/article/pii/S0360835223002425 |journal=Computers & Industrial Engineering |language=en |volume=180 |pages=109218 |doi=10.1016/j.cie.2023.109218 |s2cid=257990456 |issn=0360-8352}}</ref> | Other global search metaheuristic that are not local search-based are usually [[Population model (evolutionary algorithm)|population-based]] metaheuristics. Such metaheuristics include [[ant colony optimization]], [[evolutionary computation]] such as [[genetic algorithm]] or [[Evolution strategy|evolution strategies]], [[particle swarm optimization]], [[rider optimization algorithm]]<ref>{{cite journal |last1=D |first1=Binu |title=RideNN: A New Rider Optimization Algorithm-Based Neural Network for Fault Diagnosis in Analog Circuits |journal=IEEE Transactions on Instrumentation and Measurement |year=2019 |volume=68 |issue=1 |pages=2–26 |doi=10.1109/TIM.2018.2836058 |bibcode=2019ITIM...68....2B |s2cid=54459927 |url=https://ieeexplore.ieee.org/document/8370147|url-access=subscription }}</ref> and bacterial foraging algorithm.<ref name=":0">{{Cite journal |last1=Pang |first1=Shinsiong |last2=Chen |first2=Mu-Chen |date=2023-06-01 |title=Optimize railway crew scheduling by using modified bacterial foraging algorithm |url=https://www.sciencedirect.com/science/article/pii/S0360835223002425 |journal=Computers & Industrial Engineering |language=en |volume=180 |pages=109218 |doi=10.1016/j.cie.2023.109218 |s2cid=257990456 |issn=0360-8352|url-access=subscription }}</ref> | ||
=== Single-solution vs. population-based === | === Single-solution vs. population-based === | ||
| Line 45: | Line 45: | ||
A [[parallel metaheuristic]] is one that uses the techniques of [[parallel programming]] to run multiple metaheuristic searches in parallel; these may range from simple [[distributed computing|distributed]] schemes to concurrent search runs that interact to improve the overall solution. | A [[parallel metaheuristic]] is one that uses the techniques of [[parallel programming]] to run multiple metaheuristic searches in parallel; these may range from simple [[distributed computing|distributed]] schemes to concurrent search runs that interact to improve the overall solution. | ||
With population-based metaheuristics, the population itself can be parallelized by either processing each individual or group with a separate thread or the metaheuristic itself runs on one computer and the offspring are evaluated in a distributed manner per iteration.<ref>{{Cite book |last=Cantú-Paz |first=Erick |url=http://link.springer.com/10.1007/978-1-4615-4369-5 |title=Efficient and Accurate Parallel Genetic Algorithms |date=2001 |publisher=Springer US |isbn=978-1-4613-6964-6 |series=Genetic Algorithms and Evolutionary Computation |volume=1 |location=Boston, MA |doi=10.1007/978-1-4615-4369-5}}</ref> The latter is particularly useful if the computational effort for the evaluation is considerably greater than that for the generation of descendants. This is the case in many practical applications, especially in simulation-based calculations of solution quality.<ref name=":6">{{Citation |last=Sudholt |first=Dirk |title=Parallel Evolutionary Algorithms |date=2015 |work=Springer Handbook of Computational Intelligence |pages=929–959 |editor-last=Kacprzyk |editor-first=Janusz |url=http://link.springer.com/10.1007/978-3-662-43505-2_46 |access-date=2024-09-04 |place=Berlin, Heidelberg |publisher=Springer |language=en |doi=10.1007/978-3-662-43505-2_46 |isbn=978-3-662-43504-5 |editor2-last=Pedrycz |editor2-first=Witold}}</ref><ref name=":7">{{Citation |last1=Khalloof |first1=Hatem |last2=Mohammad |first2=Mohammad |last3=Shahoud |first3=Shadi |last4=Duepmeier |first4=Clemens |last5=Hagenmeyer |first5=Veit |date=2020-11-02 |title=A Generic Flexible and Scalable Framework for Hierarchical Parallelization of Population-Based Metaheuristics |work=Proc. of the 12th Int. Conf. on Management of Digital EcoSystems (MEDES'20) |url=https://dl.acm.org/doi/10.1145/3415958.3433041 |language=en |publisher=ACM |pages=124–131 |doi=10.1145/3415958.3433041 |isbn=978-1-4503-8115-4}}</ref> | With population-based metaheuristics, the population itself can be parallelized by either processing each individual or group with a separate thread or the metaheuristic itself runs on one computer and the offspring are evaluated in a distributed manner per iteration.<ref>{{Cite book |last=Cantú-Paz |first=Erick |url=http://link.springer.com/10.1007/978-1-4615-4369-5 |title=Efficient and Accurate Parallel Genetic Algorithms |date=2001 |publisher=Springer US |isbn=978-1-4613-6964-6 |series=Genetic Algorithms and Evolutionary Computation |volume=1 |location=Boston, MA |doi=10.1007/978-1-4615-4369-5}}</ref> The latter is particularly useful if the computational effort for the evaluation is considerably greater than that for the generation of descendants. This is the case in many practical applications, especially in simulation-based calculations of solution quality.<ref name=":6">{{Citation |last=Sudholt |first=Dirk |title=Parallel Evolutionary Algorithms |date=2015 |work=Springer Handbook of Computational Intelligence |pages=929–959 |editor-last=Kacprzyk |editor-first=Janusz |url=http://link.springer.com/10.1007/978-3-662-43505-2_46 |access-date=2024-09-04 |place=Berlin, Heidelberg |publisher=Springer |language=en |doi=10.1007/978-3-662-43505-2_46 |isbn=978-3-662-43504-5 |editor2-last=Pedrycz |editor2-first=Witold|url-access=subscription }}</ref><ref name=":7">{{Citation |last1=Khalloof |first1=Hatem |last2=Mohammad |first2=Mohammad |last3=Shahoud |first3=Shadi |last4=Duepmeier |first4=Clemens |last5=Hagenmeyer |first5=Veit |date=2020-11-02 |title=A Generic Flexible and Scalable Framework for Hierarchical Parallelization of Population-Based Metaheuristics |work=Proc. of the 12th Int. Conf. on Management of Digital EcoSystems (MEDES'20) |url=https://dl.acm.org/doi/10.1145/3415958.3433041 |language=en |publisher=ACM |pages=124–131 |doi=10.1145/3415958.3433041 |isbn=978-1-4503-8115-4|url-access=subscription }}</ref> | ||
=== Nature-inspired and metaphor-based metaheuristics === | === Nature-inspired and metaphor-based metaheuristics === | ||
| Line 57: | Line 57: | ||
Most metaheuristics are search methods and when using them, the evaluation function should be subject to greater demands than a mathematical optimization. Not only does the desired target state have to be formulated, but the evaluation should also reward improvements to a solution on the way to the target in order to support and accelerate the search process. The [[Fitness function|fitness functions]] of evolutionary or memetic algorithms can serve as an example. | Most metaheuristics are search methods and when using them, the evaluation function should be subject to greater demands than a mathematical optimization. Not only does the desired target state have to be formulated, but the evaluation should also reward improvements to a solution on the way to the target in order to support and accelerate the search process. The [[Fitness function|fitness functions]] of evolutionary or memetic algorithms can serve as an example. | ||
Metaheuristics are used for all types of optimization problems, ranging from [[Continuous optimization|continuous]] through mixed integer problems to [[combinatorial optimization]] or combinations thereof.<ref name=":5" /><ref>{{Cite book |url=https://link.springer.com/book/10.1007/11890584 |title=Hybrid Metaheuristics |date=2006 |publisher=Springer |isbn=978-3-540-46384-9 |editor-last=Almeida |editor-first=Francisco |series=Lecture Notes in Computer Science |volume=4030 |location=Berlin, Heidelberg |doi=10.1007/11890584 |editor-last2=Blesa Aguilera |editor-first2=María J. |editor-last3=Blum |editor-first3=Christian |editor-last4=Moreno Vega |editor-first4=José Marcos |editor-last5=Pérez Pérez |editor-first5=Melquíades |editor-last6=Roli |editor-first6=Andrea |editor-last7=Sampels |editor-first7=Michael}}</ref><ref>{{Cite book |url=http://link.springer.com/10.1007/978-3-642-23247-3 |title=Handbook of Memetic Algorithms |date=2012 |publisher=Springer Berlin Heidelberg |isbn=978-3-642-23246-6 |editor-last=Neri |editor-first=Ferrante |series=Studies in Computational Intelligence |volume=379 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-642-23247-3 |editor-last2=Cotta |editor-first2=Carlos |editor-last3=Moscato |editor-first3=Pablo}}</ref> In combinatorial optimization, an optimal solution is sought over a [[discrete mathematics|discrete]] search-space. An example problem is the [[travelling salesman problem]] where the search-space of candidate solutions grows faster than [[exponential growth|exponentially]] as the size of the problem increases, which makes an [[exhaustive search]] for the optimal solution infeasible.<ref>{{Cite journal |last1=Dorigo |first1=M. |last2=Gambardella |first2=L.M. |date=April 1997 |title=Ant colony system: a cooperative learning approach to the traveling salesman problem |url=https://ieeexplore.ieee.org/document/585892 |journal=IEEE Transactions on Evolutionary Computation |volume=1 |issue=1 |pages=53–66 |doi=10.1109/4235.585892}}</ref><ref>{{Cite journal |last1=Merz |first1=Peter |last2=Freisleben |first2=Bernd |date=2002 |title=Memetic Algorithms for the Traveling Salesman Problem |url=https://www.researchgate.net/publication/2928026 |journal=Complex Systems |volume=13 |issue=4}}</ref> Additionally, multidimensional combinatorial problems, including most design problems in [[engineering]]<ref name=":2" /><ref>Tomoiagă B, Chindriş M, Sumper A, Sudria-Andreu A, Villafafila-Robles R. [http://www.mdpi.com/1996-1073/6/3/1439/pdf Pareto Optimal Reconfiguration of Power Distribution Systems Using a Genetic Algorithm Based on NSGA-II. ] Energies. 2013; 6(3):1439–1455.</ref><ref>{{Cite journal|title = Swarm intelligence and gravitational search algorithm for multi-objective optimization of synthesis gas production|journal = Applied Energy|date = 2013-03-01|pages = 368–374|volume = 103|doi= 10.1016/j.apenergy.2012.09.059|first1 = T.|last1 = Ganesan|first2 = I.|last2 = Elamvazuthi|first3 = Ku Zilati|last3 = Ku Shaari|first4 = P.|last4 = Vasant| bibcode=2013ApEn..103..368G }}</ref><ref>{{Cite book|date = 2011-11-01|pages = 86–91|doi = 10.1109/ICCSCE.2011.6190501|first1 = T.|last1 = Ganesan|first2 = I.|last2 = Elamvazuthi|first3 = P.|last3 = Vasant| title=2011 IEEE International Conference on Control System, Computing and Engineering | chapter=Evolutionary normal-boundary intersection (ENBI) method for multi-objective optimization of green sand mould system |isbn = 978-1-4577-1642-3|s2cid = 698459}}</ref> such as form-finding and behavior-finding, suffer from the [[curse of dimensionality]], which also makes them infeasible for exhaustive search or [[Analytical solution|analytical method]]s. | Metaheuristics are used for all types of optimization problems, ranging from [[Continuous optimization|continuous]] through mixed integer problems to [[combinatorial optimization]] or combinations thereof.<ref name=":5" /><ref>{{Cite book |url=https://link.springer.com/book/10.1007/11890584 |title=Hybrid Metaheuristics |date=2006 |publisher=Springer |isbn=978-3-540-46384-9 |editor-last=Almeida |editor-first=Francisco |series=Lecture Notes in Computer Science |volume=4030 |location=Berlin, Heidelberg |doi=10.1007/11890584 |editor-last2=Blesa Aguilera |editor-first2=María J. |editor-last3=Blum |editor-first3=Christian |editor-last4=Moreno Vega |editor-first4=José Marcos |editor-last5=Pérez Pérez |editor-first5=Melquíades |editor-last6=Roli |editor-first6=Andrea |editor-last7=Sampels |editor-first7=Michael}}</ref><ref>{{Cite book |url=http://link.springer.com/10.1007/978-3-642-23247-3 |title=Handbook of Memetic Algorithms |date=2012 |publisher=Springer Berlin Heidelberg |isbn=978-3-642-23246-6 |editor-last=Neri |editor-first=Ferrante |series=Studies in Computational Intelligence |volume=379 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-642-23247-3 |editor-last2=Cotta |editor-first2=Carlos |editor-last3=Moscato |editor-first3=Pablo}}</ref> In combinatorial optimization, an optimal solution is sought over a [[discrete mathematics|discrete]] search-space. An example problem is the [[travelling salesman problem]] where the search-space of candidate solutions grows faster than [[exponential growth|exponentially]] as the size of the problem increases, which makes an [[exhaustive search]] for the optimal solution infeasible.<ref>{{Cite journal |last1=Dorigo |first1=M. |last2=Gambardella |first2=L.M. |date=April 1997 |title=Ant colony system: a cooperative learning approach to the traveling salesman problem |url=https://ieeexplore.ieee.org/document/585892 |journal=IEEE Transactions on Evolutionary Computation |volume=1 |issue=1 |pages=53–66 |doi=10.1109/4235.585892|url-access=subscription }}</ref><ref>{{Cite journal |last1=Merz |first1=Peter |last2=Freisleben |first2=Bernd |date=2002 |title=Memetic Algorithms for the Traveling Salesman Problem |url=https://www.researchgate.net/publication/2928026 |journal=Complex Systems |volume=13 |issue=4}}</ref> Additionally, multidimensional combinatorial problems, including most design problems in [[engineering]]<ref name=":2" /><ref>Tomoiagă B, Chindriş M, Sumper A, Sudria-Andreu A, Villafafila-Robles R. [http://www.mdpi.com/1996-1073/6/3/1439/pdf Pareto Optimal Reconfiguration of Power Distribution Systems Using a Genetic Algorithm Based on NSGA-II. ] Energies. 2013; 6(3):1439–1455.</ref><ref>{{Cite journal|title = Swarm intelligence and gravitational search algorithm for multi-objective optimization of synthesis gas production|journal = Applied Energy|date = 2013-03-01|pages = 368–374|volume = 103|doi= 10.1016/j.apenergy.2012.09.059|first1 = T.|last1 = Ganesan|first2 = I.|last2 = Elamvazuthi|first3 = Ku Zilati|last3 = Ku Shaari|first4 = P.|last4 = Vasant| bibcode=2013ApEn..103..368G }}</ref><ref>{{Cite book|date = 2011-11-01|pages = 86–91|doi = 10.1109/ICCSCE.2011.6190501|first1 = T.|last1 = Ganesan|first2 = I.|last2 = Elamvazuthi|first3 = P.|last3 = Vasant| title=2011 IEEE International Conference on Control System, Computing and Engineering | chapter=Evolutionary normal-boundary intersection (ENBI) method for multi-objective optimization of green sand mould system |isbn = 978-1-4577-1642-3|s2cid = 698459}}</ref> such as form-finding and behavior-finding, suffer from the [[curse of dimensionality]], which also makes them infeasible for exhaustive search or [[Analytical solution|analytical method]]s. | ||
Metaheuristics are also frequently applied to scheduling problems. A typical representative of this combinatorial task class is job shop scheduling, which involves assigning the work steps of jobs to processing stations in such a way that all jobs are completed on time and altogether in the shortest possible time.<ref name=":1">{{Cite book |url=https://www.wiley.com/en-dk/Metaheuristics+for+Production+Scheduling-p-9781848214972 |title=Metaheuristics for production scheduling |date=2013 |publisher=ISTE |isbn=978-1-84821-497-2 |editor-last=Jarboui |editor-first=Bassem |series=Automation - control and industrial engineering series |location=London |editor-last2=Siarry |editor-first2=Patrick |editor-last3=Teghem |editor-first3=Jacques}}</ref><ref>{{Cite book |url=http://link.springer.com/10.1007/978-3-540-78985-7 |title=Metaheuristics for Scheduling in Industrial and Manufacturing Applications |date=2008 |publisher=Springer Berlin Heidelberg |isbn=978-3-540-78984-0 |editor-last=Xhafa |editor-first=Fatos |series=Studies in Computational Intelligence |volume=128 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-540-78985-7 |s2cid=42238720 |editor-last2=Abraham |editor-first2=Ajith}}</ref> In practice, restrictions often have to be observed, e.g. by limiting the permissible sequence of work steps of a job through predefined workflows<ref>{{Cite journal |last1=Jakob |first1=Wilfried |last2=Strack |first2=Sylvia |last3=Quinte |first3=Alexander |last4=Bengel |first4=Günther |last5=Stucky |first5=Karl-Uwe |last6=Süß |first6=Wolfgang |date=2013-04-22 |title=Fast Rescheduling of Multiple Workflows to Constrained Heterogeneous Resources Using Multi-Criteria Memetic Computing |journal=Algorithms |language=en |volume=6 |issue=2 |pages=245–277 |doi=10.3390/a6020245 |issn=1999-4893 |doi-access=free }}</ref> and/or with regard to resource utilisation, e.g. in the form of smoothing the energy demand.<ref>{{Cite journal |last1=Kizilay |first1=Damla |last2=Tasgetiren |first2=M. Fatih |last3=Pan |first3=Quan-Ke |last4=Süer |first4=Gürsel |date=2019 |title=An Ensemble of Meta-Heuristics for the Energy-Efficient Blocking Flowshop Scheduling Problem |journal=Procedia Manufacturing |language=en |volume=39 |pages=1177–1184 |doi=10.1016/j.promfg.2020.01.352|s2cid=213710393 |doi-access=free }}</ref><ref>{{Cite journal |last1=Grosch |first1=Benedikt |last2=Weitzel |first2=Timm |last3=Panten |first3=Niklas |last4=Abele |first4=Eberhard |date=2019 |title=A metaheuristic for energy adaptive production scheduling with multiple energy carriers and its implementation in a real production system |journal=Procedia CIRP |language=en |volume=80 |pages=203–208 |doi=10.1016/j.procir.2019.01.043|s2cid=164850023 |doi-access=free }}</ref> Popular metaheuristics for combinatorial problems include [[genetic algorithms]] by Holland et al.,<ref name="holland75adaptation" /> scatter search<ref name="glover77scattersearch" /> and [[tabu search]]<ref name="glover86future" /> by Glover. | Metaheuristics are also frequently applied to scheduling problems. A typical representative of this combinatorial task class is job shop scheduling, which involves assigning the work steps of jobs to processing stations in such a way that all jobs are completed on time and altogether in the shortest possible time.<ref name=":1">{{Cite book |url=https://www.wiley.com/en-dk/Metaheuristics+for+Production+Scheduling-p-9781848214972 |title=Metaheuristics for production scheduling |date=2013 |publisher=ISTE |isbn=978-1-84821-497-2 |editor-last=Jarboui |editor-first=Bassem |series=Automation - control and industrial engineering series |location=London |editor-last2=Siarry |editor-first2=Patrick |editor-last3=Teghem |editor-first3=Jacques}}</ref><ref>{{Cite book |url=http://link.springer.com/10.1007/978-3-540-78985-7 |title=Metaheuristics for Scheduling in Industrial and Manufacturing Applications |date=2008 |publisher=Springer Berlin Heidelberg |isbn=978-3-540-78984-0 |editor-last=Xhafa |editor-first=Fatos |series=Studies in Computational Intelligence |volume=128 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-540-78985-7 |s2cid=42238720 |editor-last2=Abraham |editor-first2=Ajith}}</ref> In practice, restrictions often have to be observed, e.g. by limiting the permissible sequence of work steps of a job through predefined workflows<ref>{{Cite journal |last1=Jakob |first1=Wilfried |last2=Strack |first2=Sylvia |last3=Quinte |first3=Alexander |last4=Bengel |first4=Günther |last5=Stucky |first5=Karl-Uwe |last6=Süß |first6=Wolfgang |date=2013-04-22 |title=Fast Rescheduling of Multiple Workflows to Constrained Heterogeneous Resources Using Multi-Criteria Memetic Computing |journal=Algorithms |language=en |volume=6 |issue=2 |pages=245–277 |doi=10.3390/a6020245 |issn=1999-4893 |doi-access=free }}</ref> and/or with regard to resource utilisation, e.g. in the form of smoothing the energy demand.<ref>{{Cite journal |last1=Kizilay |first1=Damla |last2=Tasgetiren |first2=M. Fatih |last3=Pan |first3=Quan-Ke |last4=Süer |first4=Gürsel |date=2019 |title=An Ensemble of Meta-Heuristics for the Energy-Efficient Blocking Flowshop Scheduling Problem |journal=Procedia Manufacturing |language=en |volume=39 |pages=1177–1184 |doi=10.1016/j.promfg.2020.01.352|s2cid=213710393 |doi-access=free }}</ref><ref>{{Cite journal |last1=Grosch |first1=Benedikt |last2=Weitzel |first2=Timm |last3=Panten |first3=Niklas |last4=Abele |first4=Eberhard |date=2019 |title=A metaheuristic for energy adaptive production scheduling with multiple energy carriers and its implementation in a real production system |journal=Procedia CIRP |language=en |volume=80 |pages=203–208 |doi=10.1016/j.procir.2019.01.043|s2cid=164850023 |doi-access=free }}</ref> Popular metaheuristics for combinatorial problems include [[genetic algorithms]] by Holland et al.,<ref name="holland75adaptation" /> scatter search<ref name="glover77scattersearch" /> and [[tabu search]]<ref name="glover86future" /> by Glover. | ||
Another large field of application are optimization tasks in continuous or mixed-integer search spaces. This includes, e.g., design optimization<ref name=":2">{{Cite journal |last1=Gupta |first1=Shubham |last2=Abderazek |first2=Hammoudi |last3=Yıldız |first3=Betül Sultan |last4=Yildiz |first4=Ali Riza |last5=Mirjalili |first5=Seyedali |last6=Sait |first6=Sadiq M. |date=2021 |title=Comparison of metaheuristic optimization algorithms for solving constrained mechanical design optimization problems |url=https://linkinghub.elsevier.com/retrieve/pii/S095741742100779X |journal=Expert Systems with Applications |language=en |volume=183 |pages=115351 |doi=10.1016/j.eswa.2021.115351|hdl=10072/407991 |hdl-access=free }}</ref><ref>{{Citation |last1=Quinte |first1=Alexander |title=Optimization of a Micro Actuator Plate Using Evolutionary Algorithms and Simulation Based on Discrete Element Methods |date=2002 |work=International Conference on Modeling and Simulation of Microsystems: MSM 2002 |pages=192–197 |editor-last=Laudon |editor-first=Matthew |location=Cambridge, Mass |publisher=Computational Publications |isbn=978-0-9708275-7-9 |last2=Jakob |first2=Wilfried |last3=Scherer |first3=Klaus-Peter |last4=Eggert |first4=Horst |url=https://www.researchgate.net/publication/228790476}}</ref><ref>{{Citation |last=Parmee |first=I. C. |title=Strategies for the Integration of Evolutionary/Adaptive Search with the Engineering Design Process |date=1997 |url=http://link.springer.com/10.1007/978-3-662-03423-1_25 |work=Evolutionary Algorithms in Engineering Applications |pages=453–477 |editor-last=Dasgupta |editor-first=Dipankar |access-date=2023-07-17 |place=Berlin, Heidelberg |publisher=Springer |language=en |doi=10.1007/978-3-662-03423-1_25 |isbn=978-3-642-08282-5 |editor2-last=Michalewicz |editor2-first=Zbigniew}}</ref> or various engineering tasks.<ref>{{Cite book |url=https://link.springer.com/10.1007/978-3-319-06508-3 |title=Applications of Metaheuristics in Process Engineering |date=2014 |publisher=Springer International Publishing |isbn=978-3-319-06507-6 |editor-last=Valadi |editor-first=Jayaraman |location=Cham |language=en |doi=10.1007/978-3-319-06508-3 |s2cid=40197553 |editor-last2=Siarry |editor-first2=Patrick}}</ref><ref>{{Cite book |last1=Sanchez |first1=Ernesto |url=http://link.springer.com/10.1007/978-3-642-27467-1 |title=Industrial Applications of Evolutionary Algorithms |last2=Squillero |first2=Giovanni |last3=Tonda |first3=Alberto |date=2012 |publisher=Springer |isbn=978-3-642-27466-4 |series=Intelligent Systems Reference Library |volume=34 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-642-27467-1}}</ref><ref>{{Cite book |url=https://link.springer.com/10.1007/978-3-031-16832-1 |title=Engineering Applications of Modern Metaheuristics |date=2023 |publisher=Springer International Publishing |isbn=978-3-031-16831-4 |editor-last=Akan |editor-first=Taymaz |series=Studies in Computational Intelligence |volume=1069 |location=Cham |language=en |doi=10.1007/978-3-031-16832-1 |s2cid=254222401 |editor-last2=Anter |editor-first2=Ahmed M. |editor-last3=Etaner-Uyar |editor-first3=A. Şima |editor-last4=Oliva |editor-first4=Diego}}</ref> An example of the mixture of combinatorial and continuous optimization is the planning of favourable motion paths for industrial robots.<ref>{{Citation |last=Blume |first=Christian |title=Optimized Collision Free Robot Move Statement Generation by the Evolutionary Software GLEAM |date=2000 |url=http://link.springer.com/10.1007/3-540-45561-2_32 |work=Real-World Applications of Evolutionary Computing |series=Lecture Notes in Computer Science |volume=1803 |pages=330–341 |editor-last=Cagnoni |editor-first=Stefano |access-date=2023-07-17 |place=Berlin, Heidelberg |publisher=Springer |language=en |doi=10.1007/3-540-45561-2_32 |isbn=978-3-540-67353-8}}</ref><ref>{{Citation |last1=Pholdee |first1=Nantiwat |title=Multiobjective Trajectory Planning of a 6D Robot based on Multiobjective Meta Heuristic Search |date=2018-12-14 |url=https://dl.acm.org/doi/10.1145/3301326.3301356 |work=International Conference on Network, Communication and Computing (ICNCC 2018) |pages=352–356 |publisher=ACM |language=en |doi=10.1145/3301326.3301356 |isbn=978-1-4503-6553-6 |last2=Bureerat |first2=Sujin|s2cid=77394395 }}</ref> | Another large field of application are optimization tasks in continuous or mixed-integer search spaces. This includes, e.g., design optimization<ref name=":2">{{Cite journal |last1=Gupta |first1=Shubham |last2=Abderazek |first2=Hammoudi |last3=Yıldız |first3=Betül Sultan |last4=Yildiz |first4=Ali Riza |last5=Mirjalili |first5=Seyedali |last6=Sait |first6=Sadiq M. |date=2021 |title=Comparison of metaheuristic optimization algorithms for solving constrained mechanical design optimization problems |url=https://linkinghub.elsevier.com/retrieve/pii/S095741742100779X |journal=Expert Systems with Applications |language=en |volume=183 |pages=115351 |doi=10.1016/j.eswa.2021.115351|hdl=10072/407991 |hdl-access=free }}</ref><ref>{{Citation |last1=Quinte |first1=Alexander |title=Optimization of a Micro Actuator Plate Using Evolutionary Algorithms and Simulation Based on Discrete Element Methods |date=2002 |work=International Conference on Modeling and Simulation of Microsystems: MSM 2002 |pages=192–197 |editor-last=Laudon |editor-first=Matthew |location=Cambridge, Mass |publisher=Computational Publications |isbn=978-0-9708275-7-9 |last2=Jakob |first2=Wilfried |last3=Scherer |first3=Klaus-Peter |last4=Eggert |first4=Horst |url=https://www.researchgate.net/publication/228790476}}</ref><ref>{{Citation |last=Parmee |first=I. C. |title=Strategies for the Integration of Evolutionary/Adaptive Search with the Engineering Design Process |date=1997 |url=http://link.springer.com/10.1007/978-3-662-03423-1_25 |work=Evolutionary Algorithms in Engineering Applications |pages=453–477 |editor-last=Dasgupta |editor-first=Dipankar |access-date=2023-07-17 |place=Berlin, Heidelberg |publisher=Springer |language=en |doi=10.1007/978-3-662-03423-1_25 |isbn=978-3-642-08282-5 |editor2-last=Michalewicz |editor2-first=Zbigniew|url-access=subscription }}</ref> or various engineering tasks.<ref>{{Cite book |url=https://link.springer.com/10.1007/978-3-319-06508-3 |title=Applications of Metaheuristics in Process Engineering |date=2014 |publisher=Springer International Publishing |isbn=978-3-319-06507-6 |editor-last=Valadi |editor-first=Jayaraman |location=Cham |language=en |doi=10.1007/978-3-319-06508-3 |s2cid=40197553 |editor-last2=Siarry |editor-first2=Patrick}}</ref><ref>{{Cite book |last1=Sanchez |first1=Ernesto |url=http://link.springer.com/10.1007/978-3-642-27467-1 |title=Industrial Applications of Evolutionary Algorithms |last2=Squillero |first2=Giovanni |last3=Tonda |first3=Alberto |date=2012 |publisher=Springer |isbn=978-3-642-27466-4 |series=Intelligent Systems Reference Library |volume=34 |location=Berlin, Heidelberg |language=en |doi=10.1007/978-3-642-27467-1}}</ref><ref>{{Cite book |url=https://link.springer.com/10.1007/978-3-031-16832-1 |title=Engineering Applications of Modern Metaheuristics |date=2023 |publisher=Springer International Publishing |isbn=978-3-031-16831-4 |editor-last=Akan |editor-first=Taymaz |series=Studies in Computational Intelligence |volume=1069 |location=Cham |language=en |doi=10.1007/978-3-031-16832-1 |s2cid=254222401 |editor-last2=Anter |editor-first2=Ahmed M. |editor-last3=Etaner-Uyar |editor-first3=A. Şima |editor-last4=Oliva |editor-first4=Diego}}</ref> An example of the mixture of combinatorial and continuous optimization is the planning of favourable motion paths for industrial robots.<ref>{{Citation |last=Blume |first=Christian |title=Optimized Collision Free Robot Move Statement Generation by the Evolutionary Software GLEAM |date=2000 |url=http://link.springer.com/10.1007/3-540-45561-2_32 |work=Real-World Applications of Evolutionary Computing |series=Lecture Notes in Computer Science |volume=1803 |pages=330–341 |editor-last=Cagnoni |editor-first=Stefano |access-date=2023-07-17 |place=Berlin, Heidelberg |publisher=Springer |language=en |doi=10.1007/3-540-45561-2_32 |isbn=978-3-540-67353-8|url-access=subscription }}</ref><ref>{{Citation |last1=Pholdee |first1=Nantiwat |title=Multiobjective Trajectory Planning of a 6D Robot based on Multiobjective Meta Heuristic Search |date=2018-12-14 |url=https://dl.acm.org/doi/10.1145/3301326.3301356 |work=International Conference on Network, Communication and Computing (ICNCC 2018) |pages=352–356 |publisher=ACM |language=en |doi=10.1145/3301326.3301356 |isbn=978-1-4503-6553-6 |last2=Bureerat |first2=Sujin|s2cid=77394395 |url-access=subscription }}</ref> | ||
== Metaheuristic Optimization Frameworks == | == Metaheuristic Optimization Frameworks == | ||
Latest revision as of 00:34, 24 June 2025
Template:Short description Template:Use American English In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, tune, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an optimization problem or a machine learning problem, especially with incomplete or imperfect information or limited computation capacity.[1][2][3][4] Metaheuristics sample a subset of solutions which is otherwise too large to be completely enumerated or otherwise explored. Metaheuristics may make relatively few assumptions about the optimization problem being solved and so may be usable for a variety of problems.[1][5][6] Their use is always of interest when exact or other (approximate) methods are not available or are not expedient, either because the calculation time is too long or because, for example, the solution provided is too imprecise.
Compared to optimization algorithms and iterative methods, metaheuristics do not guarantee that a globally optimal solution can be found on some class of problems.[4] Many metaheuristics implement some form of stochastic optimization, so that the solution found is dependent on the set of random variables generated.[3] In combinatorial optimization, there are many problems that belong to the class of NP-complete problems and thus can no longer be solved exactly in an acceptable time from a relatively low degree of complexity.[7][8] Metaheuristics then often provide good solutions with less computational effort than approximation methods, iterative methods, or simple heuristics.[4][1] This also applies in the field of continuous or mixed-integer optimization.[1][9][10] As such, metaheuristics are useful approaches for optimization problems.[3] Several books and survey papers have been published on the subject.[3][4][1][11][12] Literature review on metaheuristic optimization,[13] suggested that it was Fred Glover who coined the word metaheuristics.[14]
Most literature on metaheuristics is experimental in nature, describing empirical results based on computer experiments with the algorithms. But some formal theoretical results are also available, often on convergence and the possibility of finding the global optimum.[4][15] Also worth mentioning are the no-free-lunch theorems, which state that there can be no metaheuristic that is better than all others for any given problem.
Especially since the turn of the millennium, many metaheuristic methods have been published with claims of novelty and practical efficacy. While the field also features high-quality research, many of the more recent publications have been of poor quality; flaws include vagueness, lack of conceptual elaboration, poor experiments, and ignorance of previous literature.[16][17]
Properties
These are properties that characterize most metaheuristics:[4]
- Metaheuristics are strategies that guide the search process.
- The goal is to efficiently explore the search space in order to find optimal or near–optimal solutions.
- Techniques which constitute metaheuristic algorithms range from simple local search procedures to complex learning processes.
- Metaheuristic algorithms are approximate and usually non-deterministic.
- Metaheuristics are not problem-specific. However, they were often developed in relation to a problem class such as continuous[18][19] or combinatorial optimization[20] and then generalized later in some cases.[21][22]
- They can draw on domain-specific knowledge in the form of heuristics that are controlled by a higher-level strategy of the metaheuristic.
- They can contain mechanisms that prevent them from getting stuck in certain areas of the search space.
- Modern metaheuristics often use the search history to control the search.
Classification
There are a wide variety of metaheuristics[3][1] and a number of properties with respect to which to classify them.[4][24][25][26] The following list is therefore to be understood as an example.
Local search vs. global search
One approach is to characterize the type of search strategy.[4] One type of search strategy is an improvement on simple local search algorithms. A well known local search algorithm is the hill climbing method which is used to find local optimums. However, hill climbing does not guarantee finding global optimum solutions.
Many metaheuristic ideas were proposed to improve local search heuristic in order to find better solutions. Such metaheuristics include simulated annealing, tabu search, iterated local search, variable neighborhood search, and GRASP.[4] These metaheuristics can both be classified as local search-based or global search metaheuristics.
Other global search metaheuristic that are not local search-based are usually population-based metaheuristics. Such metaheuristics include ant colony optimization, evolutionary computation such as genetic algorithm or evolution strategies, particle swarm optimization, rider optimization algorithm[27] and bacterial foraging algorithm.[28]
Single-solution vs. population-based
Another classification dimension is single solution vs population-based searches.[4][12] Single solution approaches focus on modifying and improving a single candidate solution; single solution metaheuristics include simulated annealing, iterated local search, variable neighborhood search, and guided local search.[12] Population-based approaches maintain and improve multiple candidate solutions, often using population characteristics to guide the search; population based metaheuristics include evolutionary computation and particle swarm optimization.[12] Another category of metaheuristics is Swarm intelligence which is a collective behavior of decentralized, self-organized agents in a population or swarm. Ant colony optimization,[29] particle swarm optimization,[12] social cognitive optimization and bacterial foraging algorithm[28] are examples of this category.
Hybridization and memetic algorithms
A hybrid metaheuristic is one that combines a metaheuristic with other optimization approaches, such as algorithms from mathematical programming, constraint programming, and machine learning. Both components of a hybrid metaheuristic may run concurrently and exchange information to guide the search.
On the other hand, Memetic algorithms[30] represent the synergy of evolutionary or any population-based approach with separate individual learning or local improvement procedures for problem search. An example of memetic algorithm is the use of a local search algorithm instead of or in addition to a basic mutation operator in evolutionary algorithms.
Parallel metaheuristics
A parallel metaheuristic is one that uses the techniques of parallel programming to run multiple metaheuristic searches in parallel; these may range from simple distributed schemes to concurrent search runs that interact to improve the overall solution.
With population-based metaheuristics, the population itself can be parallelized by either processing each individual or group with a separate thread or the metaheuristic itself runs on one computer and the offspring are evaluated in a distributed manner per iteration.[31] The latter is particularly useful if the computational effort for the evaluation is considerably greater than that for the generation of descendants. This is the case in many practical applications, especially in simulation-based calculations of solution quality.[32][33]
Nature-inspired and metaphor-based metaheuristics
Script error: No such module "Labelled list hatnote". A very active area of research is the design of nature-inspired metaheuristics. Many recent metaheuristics, especially evolutionary computation-based algorithms, are inspired by natural systems. Nature acts as a source of concepts, mechanisms and principles for designing of artificial computing systems to deal with complex computational problems. Such metaheuristics include simulated annealing, evolutionary algorithms, ant colony optimization and particle swarm optimization.
A large number of more recent metaphor-inspired metaheuristics have started to attract criticism in the research community for hiding their lack of novelty behind an elaborate metaphor.[16][17][25][34] As a result, a number of renowned scientists of the field have proposed a research agenda for the standardization of metaheuristics in order to make them more comparable, among other things.[35] Another consequence is that the publication guidelines of a number of scientific journals have been adapted accordingly.[36][37][38]
Applications
Most metaheuristics are search methods and when using them, the evaluation function should be subject to greater demands than a mathematical optimization. Not only does the desired target state have to be formulated, but the evaluation should also reward improvements to a solution on the way to the target in order to support and accelerate the search process. The fitness functions of evolutionary or memetic algorithms can serve as an example.
Metaheuristics are used for all types of optimization problems, ranging from continuous through mixed integer problems to combinatorial optimization or combinations thereof.[9][39][40] In combinatorial optimization, an optimal solution is sought over a discrete search-space. An example problem is the travelling salesman problem where the search-space of candidate solutions grows faster than exponentially as the size of the problem increases, which makes an exhaustive search for the optimal solution infeasible.[41][42] Additionally, multidimensional combinatorial problems, including most design problems in engineering[6][43][44][45] such as form-finding and behavior-finding, suffer from the curse of dimensionality, which also makes them infeasible for exhaustive search or analytical methods.
Metaheuristics are also frequently applied to scheduling problems. A typical representative of this combinatorial task class is job shop scheduling, which involves assigning the work steps of jobs to processing stations in such a way that all jobs are completed on time and altogether in the shortest possible time.[5][46] In practice, restrictions often have to be observed, e.g. by limiting the permissible sequence of work steps of a job through predefined workflows[47] and/or with regard to resource utilisation, e.g. in the form of smoothing the energy demand.[48][49] Popular metaheuristics for combinatorial problems include genetic algorithms by Holland et al.,[50] scatter search[51] and tabu search[52] by Glover.
Another large field of application are optimization tasks in continuous or mixed-integer search spaces. This includes, e.g., design optimization[6][53][54] or various engineering tasks.[55][56][57] An example of the mixture of combinatorial and continuous optimization is the planning of favourable motion paths for industrial robots.[58][59]
Metaheuristic Optimization Frameworks
A MOF can be defined as ‘‘a set of software tools that provide a correct and reusable implementation of a set of metaheuristics, and the basic mechanisms to accelerate the implementation of its partner subordinate heuristics (possibly including solution encodings and technique-specific operators), which are necessary to solve a particular problem instance using techniques provided’’.[60]
There are many candidate optimization tools which can be considered as a MOF of varying feature. The following list of 33 MOFs is compared and evaluated in detail in:[60] Comet, EvA2, evolvica, Evolutionary::Algorithm, GAPlayground, jaga, JCLEC, JGAP, jMetal, n-genes, Open Beagle, Opt4j, ParadisEO/EO, Pisa, Watchmaker, FOM, Hypercube, HotFrame, Templar, EasyLocal, iOpt, OptQuest, JDEAL, Optimization Algorithm Toolkit, HeuristicLab, MAFRA, Localizer, GALIB, DREAM, Discropt, MALLBA, MAGMA, and UOF. There have been a number of publications on the support of parallel implementations, which was missing in this comparative study, particularly from the late 10s onwards.[32][33][61][62][63]
Contributions
Many different metaheuristics are in existence and new variants are continually being proposed. Some of the most significant contributions to the field are:
- 1952: Robbins and Monro work on stochastic optimization methods.[64]
- 1954: Barricelli carries out the first simulations of the evolution process and uses them on general optimization problems.[65]
- 1963: Rastrigin proposes random search.[66]
- 1965: Matyas proposes random optimization.[67]
- 1965: Nelder and Mead propose a simplex heuristic, which was shown by Powell to converge to non-stationary points on some problems.[68]
- 1965: Ingo Rechenberg discovers the first Evolution Strategies algorithm.[69]
- 1966: Fogel et al. propose evolutionary programming.[70]
- 1970: Hastings proposes the Metropolis–Hastings algorithm.[71]
- 1970: Cavicchio proposes adaptation of control parameters for an optimizer.[72]
- 1970: Kernighan and Lin propose a graph partitioning method, related to variable-depth search and prohibition-based (tabu) search.[73]
- 1975: Holland proposes the genetic algorithm.[50]
- 1977: Glover proposes scatter search.[51]
- 1978: Mercer and Sampson propose a metaplan for tuning an optimizer's parameters by using another optimizer.[74]
- 1980: Smith describes genetic programming.[75]
- 1983: Kirkpatrick et al. propose simulated annealing.[76]
- 1986: Glover proposes tabu search, first mention of the term metaheuristic.[52]
- 1989: Moscato proposes memetic algorithms.[30]
- 1990: Moscato and Fontanari,[77] and Dueck and Scheuer,[78] independently proposed a deterministic update rule for simulated annealing which accelerated the search. This led to the threshold accepting metaheuristic.
- 1992: Dorigo introduces ant colony optimization in his PhD thesis.[29]
- 1995: Wolpert and Macready prove the no free lunch theorems.[79][80][81][82]
See also
- Stochastic search
- Meta-optimization
- Matheuristics
- Hyper-heuristics
- Swarm intelligence
- Evolutionary algorithms and in particular genetic algorithms, genetic programming, or evolution strategies.
- Simulated annealing
- Workforce modeling
References
Further reading
- Script error: No such module "citation/CS1".
- Ashish Sharma (2022), Nature Inspired Algorithms with Randomized Hypercomputational Perspective. Information Sciences. https://doi.org/10.1016/j.ins.2022.05.020.
External links
- Template:Scholarpedia
- EU/ME forum for researchers in the field.
- Metaheuristics.jl Source of some implementations.
Template:Optimization algorithms
- ↑ a b c d e f Cite error: Invalid
<ref>tag; no text was provided for refs namedglover03handbook - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedBala2015 - ↑ a b c d e Cite error: Invalid
<ref>tag; no text was provided for refs namedBianchi2009 - ↑ a b c d e f g h i j Cite error: Invalid
<ref>tag; no text was provided for refs namedblum03metaheuristics - ↑ a b Script error: No such module "citation/CS1".
- ↑ a b c Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedgoldberg89genetic - ↑ a b c d e Cite error: Invalid
<ref>tag; no text was provided for refs namedtalbi09metaheuristics - ↑ X. S. Yang, Metaheuristic optimization, Scholarpedia, 6(8):11472 (2011).
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Classification of metaheuristics
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ a b M. Dorigo, Optimization, Learning and Natural Algorithms, PhD thesis, Politecnico di Milano, Italie, 1992.
- ↑ a b Cite error: Invalid
<ref>tag; no text was provided for refs namedmoscato89evolution - ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Tomoiagă B, Chindriş M, Sumper A, Sudria-Andreu A, Villafafila-Robles R. Pareto Optimal Reconfiguration of Power Distribution Systems Using a Genetic Algorithm Based on NSGA-II. Energies. 2013; 6(3):1439–1455.
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ a b Cite error: Invalid
<ref>tag; no text was provided for refs namedholland75adaptation - ↑ a b Cite error: Invalid
<ref>tag; no text was provided for refs namedglover77scattersearch - ↑ a b Cite error: Invalid
<ref>tag; no text was provided for refs namedglover86future - ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedrobbins52stochastic - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedbarricelli54esempi - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedrastrigin63convergence - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedmatyas65random - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namednelder65simplex - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedrechenberg65ES - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedfogel66artificial - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedhastings70monte - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedcavicchio70adaptive - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedkernighan1970efficient - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedmercer78adaptive - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedsmith80learning - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedkirkpatrick83optimization - ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedwolpert95nofreelunch - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedIgel2003 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedAuger2010 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedDroste2002