Evolutionary algorithm: ano ito at bakit kailangan ang mga ito

Talaan ng mga Nilalaman:

Evolutionary algorithm: ano ito at bakit kailangan ang mga ito
Evolutionary algorithm: ano ito at bakit kailangan ang mga ito
Anonim

Sa larangan ng artificial intelligence, ang evolutionary algorithm (EA) ay isang subset ng kabuuang kalkulasyon ng populasyon batay sa metaheuristic optimization. Gumagamit ang EA ng mga mekanismong inspirasyon ng biological development tulad ng reproduction, mutation, recombination at selection. Ang kandidatong solusyon sa problema ng evolutionary optimization algorithm ay gumaganap ng papel ng mga indibidwal sa populasyon. At pati na rin ang fitness function ay tumutukoy sa kalidad ng mga sagot.

Ang Evolutionary algorithm ay kadalasang tinatantiyang mabuti ang mga solusyon sa lahat ng uri ng problema. Dahil sa perpektong hindi sila gumagawa ng anumang mga pagpapalagay tungkol sa pinagbabatayan na fitness landscape. Ang mga paraan na ginagamit para sa evolutionary modeling at genetic algorithm ay karaniwang limitado sa mga pag-aaral ng microevolutionary na proseso at pagpaplano ng mga modelo batay sa cellular stages. Sa karamihan ng mga totoong EA application, ang computational complexity ay isang nagbabawal na salik.

Sa totoo langang isyung ito ay nauugnay sa pagtatantya ng fitness function. Ang fitness approximation ay isang solusyon upang malampasan ang kahirapan na ito. Gayunpaman, ang isang tila simpleng EA ay maaaring malutas ang madalas na kumplikadong mga problema. Samakatuwid, maaaring walang direktang kaugnayan sa pagitan ng pagiging kumplikado ng pagkakasunud-sunod at ang problema. Higit pang mga detalye ang makikita sa mga aklat na "Evolutionary Algorithm".

Pagpapatupad

evolutionary modelling at algorithm
evolutionary modelling at algorithm

Ang unang hakbang ay gumawa ng paunang populasyon ng mga indibidwal nang random.

Ang ikalawang hakbang ay upang masuri ang pagiging angkop ng bawat indibidwal sa pangkat na ito (limitasyon sa oras, sapat na paghahanda, atbp.).

Hakbang ikatlong - ulitin ang mga sumusunod na hakbang sa pagbabagong-buhay hanggang sa makumpleto:

  1. Piliin ang pinakaangkop na mga tao para sa pagpaparami (mga magulang).
  2. Magdala ng mga bagong indibidwal na nakapasa sa evolutionary algorithm gamit ang crossover at mutation upang makakuha ng mga supling.
  3. Turiin ang indibidwal na fitness ng mga bagong tao.
  4. Palitan sa kanila ang pinakakaunting populasyon.

Mga Uri

Ang Genetic Algorithm ay isang evolutionary sequence, ang pinakasikat na uri ng Expert Advisor. Ang isang solusyon sa problema ay hinahangad sa anyo ng mga string ng mga numero (tradisyonal na binary, bagaman ang pinakamahusay na mga representasyon ay karaniwang ang mga mas sumasalamin sa problemang nilulutas) sa pamamagitan ng paglalapat ng mga operator tulad ng recombination at mutation (minsan isa, sa ilang mga kaso pareho.). Ang ganitong uri ng Expert Advisor ay kadalasang ginagamit sa mga problema sa pag-optimize. Ang isa pang pangalan para dito ay fetura (mula sa Latin para sa "kapanganakan"):

  1. Genetic programming. Nagpapakita ito ng mga solusyon bilang mga computer code, at ang kanilang pagiging angkop ay natutukoy sa pamamagitan ng kanilang kakayahang magsagawa ng mga computational na gawain.
  2. Evolutionary programming. Katulad ng evolutionary genetic algorithm, ngunit ang istraktura ay naayos at ang mga numerical parameter nito ay maaaring magbago.
  3. Programming gene expression. Bumubuo ng mga application sa computer, ngunit ginalugad ang genotype-phenotype system, kung saan ang mga proyekto ng iba't ibang laki ay naka-encode sa fixed-length na linear chromosomes.
  4. Diskarte. Gumagana sa mga vector ng totoong numero bilang mga representasyon ng mga solusyon. Karaniwang gumagamit ng self-adaptive na evolutionary mutation rate algorithm.
  5. Differential development. Batay sa mga pagkakaiba sa vector at samakatuwid ay pangunahing angkop para sa mga problema sa pag-optimize ng numero.
  6. Neuroevolution. Katulad ng evolutionary programming at genetic algorithm. Ngunit ang huli ay mga artipisyal na neural network, na naglalarawan sa istraktura at bigat ng mga koneksyon. Ang genome encoding ay maaaring direkta o hindi direkta.

Paghahambing sa mga biological na proseso

Ang isang posibleng limitasyon ng maraming evolutionary algorithm ay ang kawalan ng malinaw na pagkakaiba sa pagitan ng genotype at phenotype. Sa kalikasan, ang isang fertilized na itlog ay sumasailalim sa isang kumplikadong proseso na kilala bilang embryogenesis upang maging mature. Ang hindi direktang coding na ito ay naisip na gawing mas maaasahan ang mga paghahanap ng genetic (ibig sabihin, mas malamang na magdulot ng nakamamatay na mutasyon) at maaari ring mapabuti ang kakayahan ng organismo na umunlad. Ang ganitong hindi direktang (sa madaling salita,Binibigyang-daan din ng mga generative o developmental) na pag-encode ang ebolusyon na samantalahin ang pagiging regular sa kapaligiran.

Ang kamakailang trabaho sa artificial embryogenesis o developmental system ay naglalayong tugunan ang mga isyung ito. Kapag nag-program ng gene expression, matagumpay na na-explore ang genotype-phenotype region, kung saan ang una ay binubuo ng mga linear multigene chromosome na may nakapirming haba, at ang pangalawa sa maraming expression tree o mga computer program na may iba't ibang laki at hugis.

Mga kaugnay na diskarte

evolutionary algorithm
evolutionary algorithm

Kabilang sa mga algorithm ang:

  1. Pag-optimize ng kolonya ng langgam. Ito ay batay sa ideya na ang mga insekto ay naghahanap ng pagkain sa pamamagitan ng pagkonekta sa mga pheromones upang bumuo ng mga landas. Pangunahing angkop para sa combinatorial optimization at mga problema sa graph.
  2. Root slider algorithm. Ang lumikha ay binigyang inspirasyon ng paggana ng mga ugat ng halaman sa kalikasan.
  3. Algorithm para sa mga artipisyal na kolonya ng bubuyog. Batay sa pag-uugali ng honey bees. Pangunahing iminungkahi ito para sa numerical optimization at pinalawak upang malutas ang mga problemang kombinatoryal, may hangganan, at maraming layunin. Ang algorithm ng bubuyog ay batay sa pag-uugali ng paghahanap ng mga insekto. Nailapat na ito sa maraming application gaya ng pagruruta at pag-iiskedyul.
  4. Particle swarm optimization - batay sa mga ideya sa gawi ng kawan ng mga hayop. At pangunahin ding angkop para sa mga gawain sa prosesong numero.

Iba pang sikat na metaheuristic na pamamaraan

  1. Paghahanap sa pangangaso. Isang paraan batay sa pangkatang paghuli ng ilang mga hayop, tulad ng mga lobo, halimbawa, naipamahagi ang kanilang mga tungkulin upang palibutan ang biktima. Ang bawat isa sa mga miyembro ng evolutionary algorithm ay nauugnay sa iba sa ilang paraan. Ito ay totoo lalo na para sa pinuno. Isa itong tuluy-tuloy na paraan ng pag-optimize na inangkop bilang paraan ng proseso ng kombinatoryal.
  2. Maghanap ayon sa mga sukat. Hindi tulad ng natural-based na metaheuristic na pamamaraan, ang adaptive process algorithm ay hindi gumagamit ng metapora bilang pangunahing prinsipyo nito. Sa halip, gumagamit ito ng simpleng paraan na nakatuon sa pagganap batay sa pag-update ng parameter ng ratio ng dimensyon ng paghahanap sa bawat pag-ulit. Ang algorithm ng Firefly ay inspirasyon ng kung paano umaakit ang mga alitaptap sa isa't isa gamit ang kanilang kumikislap na liwanag. Ito ay lalong kapaki-pakinabang para sa multimodal optimization.
  3. Maghanap ng pagkakaisa. Batay sa mga ideya ng pag-uugali ng mga musikero. Sa kasong ito, ang mga evolutionary algorithm ay ang paraan para sa combinatorial optimization.
  4. Gaussian adaptation. Batay sa teorya ng impormasyon. Ginagamit para i-maximize ang performance at average na availability. Isang halimbawa ng evolutionary algorithm sa sitwasyong ito: entropy sa thermodynamics at information theory.

Memetic

evolutionary modeling
evolutionary modeling

Isang hybrid na paraan batay sa ideya ni Richard Dawkins ng isang meme. Karaniwan itong nasa anyo ng algorithm na nakabatay sa populasyon na sinamahan ng mga indibidwal na pamamaraan ng pag-aaral na may kakayahang magsagawa ng mga lokal na pagpipino. Binibigyang-diin ang paggamit ng kaalamang partikular sa problema at mga pagtatangka na ayusin ang pino at pandaigdigang paghahanap sa isang synergistic na paraan.

EvolutionaryAng mga algorithm ay isang heuristic na diskarte sa mga problema na hindi madaling malutas sa polynomial time, tulad ng mga klasikal na problema sa NP-hard at anumang bagay na masyadong matagal bago maproseso nang lubusan. Kapag ginamit nang nakapag-iisa, kadalasang ginagamit ang mga ito para sa mga problemang kombinatoryal. Gayunpaman, ang mga genetic algorithm ay kadalasang ginagamit kasabay ng iba pang mga pamamaraan, na kumikilos bilang isang mabilis na paraan upang makahanap ng maraming pinakamainam na panimulang lugar upang magtrabaho.

Ang premise ng evolutionary algorithm (kilala bilang adviser) ay medyo simple dahil pamilyar ka sa proseso ng natural selection. Naglalaman ito ng apat na pangunahing hakbang:

  • initialization;
  • choice;
  • genetic operator;
  • end.

Ang bawat isa sa mga hakbang na ito ay halos tumutugma sa isang partikular na aspeto ng natural selection at nagbibigay ng mga madaling paraan upang baguhin ang kategoryang iyon ng mga algorithm. Sa madaling salita, sa EA, ang mga pinakakarapat-dapat na miyembro ay mabubuhay at magpaparami, habang ang mga hindi karapat-dapat na miyembro ay mamamatay at hindi mag-aambag sa gene pool ng susunod na henerasyon.

Initialization

Upang simulan ang algorithm, kailangan mo munang gumawa ng set ng mga solusyon. Ang populasyon ay maglalaman ng di-makatwirang bilang ng mga posibleng pahayag ng problema, na kadalasang tinutukoy bilang mga miyembro. Ang mga ito ay madalas na nabuo nang random (sa loob ng mga hadlang ng gawain) o, kung ang ilang naunang kaalaman ay kilala, pansamantalang nakasentro sa kung ano ang itinuturing na perpekto. Mahalagang saklaw ng populasyon ang malawak na hanay ng mga solusyon,dahil ito ay mahalagang gene pool. Samakatuwid, kung gusto ng isang tao na tuklasin ang maraming iba't ibang posibilidad sa loob ng isang algorithm, dapat magsikap ang isa na magkaroon ng maraming magkakaibang gene.

Choice

mga genetic code
mga genetic code

Kapag nagawa na ang populasyon, dapat na ngayong suriin ang mga miyembro nito ayon sa fitness function. Kinukuha ng fitness function ang mga katangian ng isang miyembro at nagbibigay ng numerical na representasyon kung gaano kabagay ang miyembro. Ang paglikha ng mga ito ay kadalasang napakahirap. Mahalagang makahanap ng isang mahusay na sistema na tumpak na kumakatawan sa data. Ito ay napaka-espesipiko sa problema. Ngayon ay kinakailangan upang kalkulahin ang pagiging angkop ng lahat ng mga kalahok at pumili ng ilan sa mga pinakamahusay na miyembro.

Maramihang layuning function

Ang EA ay maaari ding palawigin para magamit ang mga system na ito. Medyo kumplikado nito ang proseso, dahil sa halip na tukuyin ang isang pinakamainam na punto, isang set ang nakuha kapag ginagamit ang mga ito. Ang hanay ng mga solusyon ay tinatawag na Pareto frontier at naglalaman ng mga elementong pantay na angkop sa diwa na wala sa mga ito ang nangingibabaw sa iba.

Mga genetic operator

Kabilang sa hakbang na ito ang dalawang sub-step: crossover at mutation. Pagkatapos piliin ang pinakamahusay na mga termino (karaniwan ay ang nangungunang 2, ngunit ang bilang na ito ay maaaring mag-iba), ang mga ito ay ginagamit na ngayon upang lumikha ng susunod na henerasyon sa algorithm. Sa pamamagitan ng paglalapat ng mga katangian ng mga napiling magulang, ang mga bagong anak ay nilikha na pinaghalong katangian. Madalas itong mahirap depende sa uri ng data, ngunit kadalasan sa mga problemang kombinatorialposibleng maghalo at maglabas ng mga wastong kumbinasyon.

Ngayon ay kinakailangan na magpakilala ng bagong genetic material sa henerasyon. Kung ang mahalagang hakbang na ito ay hindi gagawin, ang siyentipiko ay napakabilis na makaalis sa mga lokal na sukdulan at hindi makakakuha ng pinakamainam na resulta. Ang hakbang na ito ay isang mutation, at ito ay ginagawa nang simple, binabago ang isang maliit na bahagi ng mga bata sa paraang higit na hindi nila ipinapakita ang mga subset ng mga gene ng mga magulang. Karaniwang nangyayari ang mutation nang may posibilidad, dahil ang posibilidad na makuha ito ng isang bata, gayundin ang kalubhaan nito, ay tinutukoy ng pamamahagi.

Pagwawakas

pagmomodelo at mga algorithm
pagmomodelo at mga algorithm

Sa huli, dapat na matapos ang algorithm. Karaniwan itong nangyayari sa dalawang kaso: maaaring umabot na ito sa ilang maximum na oras ng pagpapatupad, o umabot na ito sa isang threshold ng pagganap. Sa puntong ito, pipiliin at ibabalik ang panghuling solusyon.

Halimbawa ng mga evolutionary algorithm

Ngayon, upang ilarawan ang resulta ng prosesong ito, kailangan mong makita ang tagapayo sa pagkilos. Upang gawin ito, maaari nating alalahanin kung paano natutong lumakad ang ilang henerasyon ng mga dinosaur (unti-unting pinagkadalubhasaan ang lupa), pag-optimize ng istraktura ng kanilang katawan at paglalapat ng lakas ng kalamnan. Kahit na hindi makalakad ang mga unang henerasyong reptilya, nagawang i-evolve ng tagapayo ang mga ito sa paglipas ng panahon sa pamamagitan ng mutation at crossover sa isang anyo na maaaring lumakad.

Ang mga algorithm na ito ay nagiging mas may kaugnayan sa modernong mundo, dahil ang mga solusyon batay sa mga ito ay lalong ginagamit sa mga industriya tulad ng digital marketing, pananalapi atpangangalagang pangkalusugan.

Saan ginagamit ang mga EA?

Mas malawak, ginagamit ang mga evolutionary algorithm sa maraming uri ng application gaya ng pagpoproseso ng imahe, pagruruta ng sasakyan, pag-optimize ng mga komunikasyon sa mobile, pagbuo ng software, at kahit na pagsasanay sa artipisyal na neural network. Ang mga tool na ito ay nasa puso ng marami sa mga app at website na ginagamit ng mga tao araw-araw, kabilang ang Google Maps at maging ang mga laro tulad ng The Sims. Bilang karagdagan, ginagamit ng medikal na larangan ang EA upang tumulong sa paggawa ng mga klinikal na desisyon tungkol sa paggamot sa kanser. Sa katunayan, ang mga evolutionary algorithm ay napakatatag na magagamit ang mga ito upang malutas ang halos anumang problema sa pag-optimize.

Moore's Law

Ang lumalaking prevalence ng EO ay hinihimok ng dalawang pangunahing salik: available na computing power at ang akumulasyon ng malalaking dataset. Ang una ay maaaring ilarawan sa pamamagitan ng Batas ni Moore, na mahalagang nagsasaad na ang dami ng kapangyarihan sa pag-compute sa isang computer ay dumodoble humigit-kumulang bawat dalawang taon. Ang hulang ito ay tumagal nang ilang dekada. Ang pangalawang kadahilanan ay nauugnay sa lumalaking pag-asa sa teknolohiya, na nagbibigay-daan sa mga institusyon na mangolekta ng napakalaking dami ng data, na nagbibigay-daan sa kanila na suriin ang mga uso at i-optimize ang mga produkto.

Paano makakatulong ang mga evolutionary algorithm sa mga marketer?

genetic modeling
genetic modeling

Ang mga kundisyon ng merkado ay mabilis na nagbabago at napakakumpitensya. Pinilit nito ang mga tagapamahala ng marketing na makipagkumpitensya para sa mas mahusay na paggawa ng desisyon. Pagtaas sa magagamitAng kapangyarihan ng pag-compute ay humantong sa mga manggagawa na gumamit ng EA para sa paglutas ng problema.

Pag-optimize ng conversion

pagmomodelo at genetic algorithm
pagmomodelo at genetic algorithm

Isa sa mga pangunahing layunin ay pataasin ang rate ng mga bisita sa site. Ang problemang ito ay nagmumula sa pag-optimize ng bilang ng mga user na gumagawa ng gusto ng nagmemerkado. Halimbawa, kung nagbebenta ng mga laptop ang isang kumpanya, ang ideal ay paramihin ang bilang ng mga bisita sa site na bumibili ng produkto. Ito ang esensya ng pag-optimize ng rate ng conversion.

Isa sa mga nakakagulat na mahalagang aspeto ay ang pagpili ng user interface. Kung ang disenyo ng web ay hindi masyadong user friendly, may mga hindi bumibili ng produkto para sa isang kadahilanan o iba pa. Ang layunin kung gayon ay bawasan ang bilang ng mga user na hindi nagko-convert, na nagpapataas ng kabuuang kita.

Inirerekumendang: