У вештачкој интелигенцији, еволуцијски алгоритам (ЕА) је подскупеволуцијског рачунарства, генеричких метахеуристика за оптимизацију заснованих на популацији. ЕА користи алгоритме засноване на биолошкој еволуцији, као што су репродукција, мутација, рекомбинација и селекција. Решење оптимизационог проблема је једна индивидуа из популације, а фитнес функција одређује квалитет решења (погледај функцију губитка). Еволуција популације се одиграва након поновне примене горенаведених операција. Вештачка еволуција (ВЕ) описује процес који обухвата појединачне еволуционе алгоритме.
Технике из еволуционих алгоритама које се примењују у моделирању биолошке еволуције су углавном ограничене на истраживање микроеволуционарних процеса и планирању модела заснованих на ћелијским процесима. Компјутерске симулације Тиера и Авида покушавају да моделују микроеволуционарна кретања.
У већини реалних примена ЕА, комплексност алгоритма је највећи проблем. Заправо, сложеност је велика због комплексне фитнес функције. Фитнес апроксимације су једне од могућих решења за овај проблем. Међутим, наизглед прост ЕА може да реши веома сложене проблеме; стога, не постоји директна веза измедју сложености алгоритма и сложености проблема.
Могуће ограничење многих еволуцијских алгоритама је њихов недостатак разлике између генотипа и фенотипа. У природи, оплођена јајна ћелија пролази кроз сложен процес познат као ембриогенеза да би постала зрео фенотип. За овакво индиректно кодирање се верује да чини генетска истраживања робустнијим (нпр. Да смањи вероватноћу смртоносних мутација), и такође може побољшати еволутивност организама.[2][3] Таква индиректна (звана геретаривна или развојна) кодирања омогућавају еволуцији да искористи правилности у окружењу.[4] Скорошња истраживања на пољу вештачке ембриогенезе, тј. развоја вештачких развојних система, настоје да одговоре на ове забринутости. Генетско програмирање успешно истражује генотип-фенотип систем, где се генотип састоји од линеарних мултигенетских хромозома фиксне дужине а фенотип се састоји од више експресионих стабала или компјутерских програма различите величине и облика.[5]
Понављај ово генерисање до краја (временско ограничење, постигнута довољна адаптивна вредност, итд):
Изабери индивидуе са најбољом адаптнивном вредношћу за репродукцију (родитеље)
Креирај нове индивидуе на основу родитеља помоћу операција укрштања и мутације и тако створи потомство.
Израчунај адаптивну вредност нових индивидуа.
Замени најмање фит популацију са новим индивидуама.
Врсте еволуцијских алгоритама
Сличне технике се разликују у детаљима имплементације и природи одређених проблема.
Генетички алгоритам - Ово је најпопуларнији тип ЕА. Тражи решење у виду ниске бројева (обично бинарних, иако је најбоље да се представе тако да одражавају нешто о решењу проблема), применом оператора као сто су рекомбинација и мутација (некада један, некада оба). Ова врста ЕА се најчешће користе у проблемима оптимизације.
Генетичко програмирање - Овде су решења представљена компјутерским програмима, а њихов фитнес је одређен њиховом способности да реше неки проблем.
Еволуцијско програмирање - Слично генетичком програмирању, само што је структура проблема фиксна и њени нумерички параметри могу да еволуирају.
Генетско експресионо програмирање - Као и генетичко програмирање, код ГЕПа се такође развија компјутерски програм али он истражује генотип-фенотип систем, где су програми различитих величина кодирани линеарним хромозомима фиксне дужине.
Еволуциона стратегија - Ради са векторима реалних бројева као репрезентације решења, и обично користи само-прилагодиву брзину мутације.
Диференцијална еволуција - Заснована на вектору разлика и због тога се углавном користи за проблеме нумеричке оптимизације.
Неуроеволуција - Слично генетичком програмирању с тим што су геноми репрезентација неуралних мрежа описујући структуру и тежину конекције. Кодирање генома може бити директно или индиректно.
Системи за класификацију учења - Овде су решења класификације (правила или услови). Мичиген-ЛЦС ради са појединачним класификаторима док Питсбург-ЛЦС користи сетове класификатора популације. Првобитно, класификатори су били само бинарни, али сада садрже праву, неуронску мрежу или С-израз. Фитнес је одређен снагом или тачношћу заснованом на појачаном учењу.
Повезане технике
Технике роја, укључујући:
Оптимизацију мравље колоније - Засноване на идеји мрава који траже пут између своје колоније и извора хране. Примарно се користи за комбинаторне оптимизације и проблеме графова.
Алгоритам корена је инспирисан улогом корена биљака у природи.[6]
Алгоритам колоније пчела - Заснован на понашању пчела у потрази за храном. Примарно предложен за нумеричке оптимизације а касније проширен да решава комбинаторне проблеме, ограничене проблеме и проблеме са више циљева.
Пчелињи алгоритам - такође заснован на понашању пчела у потрази за храном. Користи се за проблеме рутирања и распоређивања активности.
Прилагодљива димензионална претрага - Алгоритам пролагодљиве димензионалне претраге се разликује од метахеуристичких техника заснованих на природи у смислу да не користи било коју метафору као основни принцип за његово спровођење. Уместо тога користи једноставну методологију засновану на ажурирању коефицијента димензионалне претраге (КДП) у свакој итерацији.[7]
Алгоритам Свитац - инспирисан понашањем свитаца, који се привлаче међусобно трепћућим светлом. Ово је посебно корисно за мултимодалну оптимизацију.
Хармонија претрага - Заснована на идеји понашања музичара у потрази за бољом хармонијом. Овај алгоритам је погодан за комбинаторне оптимизаије и оптимизације параметара.
Меметички алгоритам - Хибридна форма метода заснованих на популацији. Инспирисан Докинсовим појмом мема, обично има облик алгоритма заснованог на популацији упарен са појединачним поступцима учења способним за обављање локалних прецизирања. Наглшава експлоатацију знања специфичних за проблем, и покушава да организује локалну и глобалну претрагу на синергичан начин.
^J. Clune, C. Ofria, and R. T. Pennock, "How a generative encoding fares as problem-regularity decreases," in PPSN (G. Rudolph, T. Jansen, S. M. Lucas, C. Poloni, and N. Beume, eds.), vol. 5199 of Lecture Notes in Computer Science. стр. 358–367, Springer, 2008.
^F. Merrikh-Bayat, The runner-root algorithm: A metaheuristic for solving unimodal and multimodal optimization problems inspired by runners and roots of plants in nature, Applied Soft Computing, Vol. 33. стр. 292–303, 2015
^Hasançebi, O., Kazemzadeh Azad, S. (2015), Adaptive Dimensional Search: A New Metaheuristic Algorithm for Discrete Truss Sizing Optimization, Computers and Structures, 154, 1-16.
Bäck, T. (1996), Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms, Oxford University Press.
Bäck, T., Fogel, D., Michalewicz, Z. (1997), Handbook of Evolutionary Computation, Oxford University Press.
Banzhaf, W., Nordin, P., Keller, R., Francone, F. (1998), Genetic Programming - An Introduction, Morgan Kaufmann, San Francisco
Eiben, A.E., Smith, J.E. (2003), Introduction to Evolutionary Computing, Springer.
Holland, J. H. (1975), Adaptation in Natural and Artificial Systems, The University of Michigan Press, Ann Arbor
Michalewicz Z., Fogel D.B. (2004). How To Solve It: Modern Heuristics, Springer.
Benkő A., Dósa G., Tuza Z. (2010), Bin Packing/Covering with Delivery, Solved with the Evolution of Algorithms, Proc. 2010 IEEE 5th International Conference on Bio-Inspired Computing: Theories and Applications, BIC-TA (2010). стр. 298-302.