Метаевристични алгоритми
Метаевристичните алгоритми (на английски: metaheuristic algorithms, накратко: метаевристики, metaheuristics) в компютърните науки са алгоритми за математическа оптимизация, с които се решават реални задачи. Такива задачи обикновено се характеризират със силна нелинейност, множество параметри, разнообразни сложни ограничения за удовлетворяване и множество – често противоречащи си – оптимизационни критерии. Дори и при един оптимизационен критерий е възможно изобщо да не съществуват оптимални решения и като цяло откриването на оптимално или дори близко до оптималното решение е трудно постижимо.[1]
Терминът „метаевристика“ е въведен от Фред Глоувър в основополагащата му статия от 1986 г. като надграждане на термина „евристичен алгоритъм, с който в най-общ смисъл се разбира алгоритъм за търсене на решение, базиран на пробата и грешката. Частицата „мета“ означава „отвъд“, „свръх“, „на по-високо ниво“ и с метаевристичния алгоритъм се означава „по-висша стратегия, която напрвалява и модифицира други евристични алгоритми, за да постигне решения по-добри от тези, които нормално биха се получили при търсене на локален оптимум.[2][3] В допълнение, всички метаевристични алгоритми балансират между глобално и локално търсене. Качествените решения на трудни оптимизационни задачи могат да се постигнат в разумно (т.е. полиномиално) време, но без гаранция, че ще бъдат постигнати (глобално) оптималните решения.[1]
Двата основни компонента на всеки метаевристичен алгоритъм са: интензификация и диверсификация (intensification and diversification), или още изследване и експлоатация (exploration and exploitation). Диверсификацията означава да се генерират разнообразни решения, така че пространството на търсене да може да бъде проучвано в широк диапазон, докато интензификацията означава да се фокусира търсенето в локален регион, знаейки, че текущото най-добро решение се намира в този регион. При подбора на най-добрите решения трябва да се открие добър баланс между интензификацията и диверсификацията с цел да се подобри скоростта на сходимост на алгоритъм. Изборът на най-доброто текущо решение осигурява, че решенията ще схождат към оптимум, докато диверсификацията посредством рандомизация (т.е. избор на случайни стойности на променливи) позволява да се избегне попадането в локален екстремум и в същото време да се повиши разнообразието на решението. Добрата комбинация от тези два основни компонента обичайно води до намиране на глобален оптимум.[1]
Списък от метаевристични алгоритми
[редактиране | редактиране на кода]В литературата съществува голямо разнообразие от метаевристики и голям брой признаци, по които да бъдат класифицирани.
| Име (на английски) | Име | Автор | Година |
|---|---|---|---|
| Ant Colony Optimization | Алгоритъм за оптимизация по метода на мравките | Dorigo | 1992 |
| Amoeba Based Algorithm | Zhang et al. | 2013 | |
| Ant Lion Optimizer | Seyedali Mirjalili | 2015 | |
| Artificial Bee Colony Algorithm | Алгоритъм на изкуствените пчелни семейства | Karaboga | 2005 |
| Artificial Immune System (AIS) | Изкуствена имунна система | Farmer et al. | 1986 |
| Artificial Plant Optimization | Cui & Cai | 2013 | |
| Bacterial Foraging Algorithm | Passino | 2002 | |
| Bat Algorithm | Алгоритъм на прилепа | Yang | 2010 |
| Bean Optimization Algorithm | Zhang et al. | 2010 | |
| Bee Colony Optimization (BCO) | Nakrani & Tovey | 2004 | |
| Biogeography-based Optimization (BBO) | Simon | 2008 | |
| Bootstrap Algorithm (BA) | Hanseth & Aanestad | 2001 | |
| Brain Storm Optimization Algorithm (BSO) | Yuhui Shi | 2011 | |
| Cat Swarm Optimization | Shu-Chuan Chu et al. | 2006 | |
| CMA-ES | Hansen & Ostermeier | 1996 | |
| Cross Entropy Method (CEM) | Rubinstein | 1997 | |
| Crow Search Algorithm | Alireza Askarzadeh | 2016 | |
| Cuckoo Optimization Algorithm, Cuckoo Search Algorithm | Алгоритъм на кукувицата | Yang & Deb | 2009 |
| Differential Evolution | Диференциална еволюция | Storn and Price | 1997 |
| Differential Search Algorithm (DSA) | Çivicioglu | 2012 | |
| Doves Based Algorithm | Su et al. | 2009 | |
| Dragonfly Algorithm (DA) | Seyedali Mirjalili | 2016 | |
| Eagle Based Algorithm | Yang & Deb | 2010 | |
| Earth-worm Optimization Algorithm (EWA) | Gai-Ge Wang et al. | 2014 | |
| Elephant Herd Algorithm (EHO) | Gai-Ge Wang et al. | 2015 | |
| Evolutionary Computation Algorithms, Evolutionary Strategy (ES) | Еволюционни алгоритми | -- | -- |
| Firefly Algorithm | Алгоритъм на светулката | Yang | 2009 |
| Flower Pollination Algorithm (FPA) | Алгоритъм на опрашването | Yang | 2012 |
| Free Search | Penev & Littlefair | 2003 | |
| Fruit Fly Algorithm | Pan | 2012 | |
| Galaxy-based Search Algorithm (GbSA) | Shah-Hosseini | 2011 | |
| Genetic Algorithms (1) | Генетични алгоритми | Goldberg | 1989 |
| Genetic Algorithms (2) | Генетични алгоритми | Holland | 1992 |
| Genetic Programming (GP) | Генетично програмиране | Smith | 1980 |
| Glow-worm Swarm Optimization | Krishnanand & Ghose | 2005 | |
| Gravitational Search Algorithm | Esmat Rashedi et al. | 2009 | |
| Grey Wolf Optimizer, Grey Wolf Algorithm | Mirjalili et al. | 2014 | |
| Grouping Evolution Strategies (GES) | Husseinzadeh Kashan | 2013 | |
| Harmony Search | Хармонично търсене | Geem et al. | 2001 |
| Honey-bee Mating Optimization (HMO) | Haddad et al. | 2006 | |
| Imperialist Competitive Algorithm (ICA) | Алгоритъм на империалистическата конкуренция | Atashpaz-Gargari and Lucas | 2007 |
| Intelligent Water Drops | Hamed Shah-Hosseini | 2007 | |
| Interior Search Algorithm (ISA) | Gandomi | 2014 | |
| Keshtel Algorithm (KA) | Hajiaghaie-Keshteli & Aminnayeri | 2012 | |
| Krill Herd Algorithm (KH) | Gandomi & Alavi | 2012 | |
| League Championship Algorithm (LCA) | Husseinzadeh Kashan | 2009 | |
| Leaping Frog Algorithm | Snyman | 1982, 2000 | |
| Lightning Search Algorithm (LSA) | Hussain Shareef et al. | 2015 | |
| Lion Algorithm | Yazdani & Jolai | 2015 | |
| Memetic Algorithm | Moscato | 1989 | |
| Monkey Search Algorithm | Mucherino & Seref | 2007 | |
| Monarch Butterfly Optimization (MBO) | Gai-Ge Wang et al. | 2015 | |
| Moth-flame Optimization Algorithm (MFO) | Seyedali Mirjalili | 2015 | |
| Multi-objective GA (MOGA) | Многообектен генетичен алгоритъм | Fonseca & Fleming | 1993 |
| Multi-verse Optimizer | Seyedali Mirjalili et al. | 2016 | |
| NSGA for Multi-Objective Optimization | Fonseca | 1994 | |
| NSGA-II for Multi-Objective Optimization | Deb et al. | 2002 | |
| Optics Inspired Optimization (OIO) | Husseinzadeh Kashan | 2013 | |
| Particle Swarm Optimization | Оптимизация в рояк от частици | Eberhart and Kennedy | 1995 |
| Population-based Incremental Learning (PBIL) | Shumeet Baluja | 1994 | |
| Reactive Search Optimization (RSO) | Battiti & Tecchiolli | 1994 | |
| Red Deer Algorithm (RDA) | Fathollahi Fard et al. | 2016 | |
| Shark Algorithm | Hersovici et al. | 1998 | |
| Shuffled Complex Evolution | Q. Y. Duan et al. | 1993 | |
| Simulated Annealing | Симулирано закаляване | Metropolis et al. | 1953 |
| Sine Cosine Algorithm (SCA) | Seyedali Mirjalili | 2016 | |
| Sperm Whale Algorithm | Ebrahimi & Khamehchi | 2016 | |
| Spiral Optimization (SO) | Tamura and Yasuda | 2011 | |
| Stochastic Fractal Search (SFS) | Стохастично фрактално търсене | Salimi | 2014 |
| Tabu Search | Табу търсене | Glover and McMilan | 1986 |
| Teaching-learning-Based Optimization | R.V. Rao et al. | 2011 | |
| Wasp Algorithm | Алгоритъм на осата | Theraulaz et al. | 1991 |
| Water Wave Optimization (WWO) | Zheng | 2015 | |
| Whale Optimization Algorithm (WOA) | Lewis and Mirjalili | 2016 | |
| Wolf Algorithm | Liu et al. | 2011 | |
| Worm Optimization | Jean-Paul Arnaout | 2014 |
Източници
[редактиране | редактиране на кода]- 1 2 3 Xin-She Yang (2011) Metaheuristic Optimization. Scholarpedia, 6(8):11472., revision #91488
- ↑ Glover F., (1986). Future paths for integer programming and links to artficial intelligence, Computers and Operations Research,13, 533-549 (1986).
- ↑ Glover F. and Laguna M., Tabu Search, Kluwer, Boston, (1997).