Evolusionêre algoritmes: wat is dit en hoekom is dit nodig

INHOUDSOPGAWE:

Evolusionêre algoritmes: wat is dit en hoekom is dit nodig
Evolusionêre algoritmes: wat is dit en hoekom is dit nodig
Anonim

Op die gebied van kunsmatige intelligensie is 'n evolusionêre algoritme (EA) 'n subset van totale bevolkingsberekeninge gebaseer op metaheuristiese optimalisering. EA gebruik meganismes geïnspireer deur biologiese ontwikkeling soos voortplanting, mutasie, rekombinasie en seleksie. Die kandidaatoplossing in die probleem van evolusionêre optimeringsalgoritmes speel die rol van individue in die populasie. En ook die fiksheidsfunksie bepaal die kwaliteit van die antwoorde.

Evolusionêre algoritmes benader oplossings vir alle soorte probleme dikwels goed. Want ideaal gesproke maak hulle geen aannames oor die onderliggende fiksheidslandskap nie. Metodes wat vir evolusionêre modellering en genetiese algoritmes gebruik word, is gewoonlik beperk tot studies van mikro-evolusionêre prosesse en beplanningsmodelle gebaseer op sellulêre stadiums. In die meeste werklike EA-toepassings is berekeningskompleksiteit 'n verbiedende faktor.

Eintlikhierdie kwessie hou verband met fiksheidsfunksieberaming. Fiksheidsbenadering is een oplossing om hierdie probleem te oorkom. 'n Oënskynlik eenvoudige EA kan egter dikwels komplekse probleme oplos. Daarom kan daar geen direkte verband tussen die kompleksiteit van die volgorde en die probleem wees nie. Meer besonderhede kan gevind word in die boeke "Evolutionary Algorithms".

Implementering

evolusionêre modellering en algoritmes
evolusionêre modellering en algoritmes

Stap een is om 'n aanvanklike populasie van individue na willekeur te skep.

Stap twee is om die geskiktheid van elke individu in hierdie groep te assesseer (tydsbeperking, voldoende paraatheid, ens.).

Stap drie - herhaal die volgende regenerasiestappe tot voltooiing:

  1. Kies die mees geskikte mense vir teling (ouers).
  2. Bring nuwe individue wat die evolusionêre algoritme geslaag het deur oorkruising en mutasie te gebruik om nageslag te kry.
  3. Evalueer die individuele fiksheid van nuwe mense.
  4. Vervang die mins fikse bevolking met hulle.

tipes

Genetiese algoritme is 'n evolusionêre volgorde, die gewildste tipe kundige adviseur. 'n Oplossing vir die probleem word gesoek in die vorm van stringe getalle (tradisioneel binêr, hoewel die beste voorstellings gewoonlik dié is wat meer in die probleem wat opgelos word weerspieël) deur operateurs soos rekombinasie en mutasie toe te pas (soms een, in sommige gevalle albei). Hierdie tipe deskundige adviseur word dikwels in optimaliseringsprobleme gebruik. Nog 'n naam hiervoor is fetura (van die Latyn vir "geboorte"):

  1. Genetiese programmering. Dit bied oplossings as rekenaarkodes aan, en hul geskiktheid word bepaal deur hul vermoë om rekenaartake uit te voer.
  2. Evolusionêre programmering. Soortgelyk aan die evolusionêre genetiese algoritme, maar die struktuur is vas en sy numeriese parameters kan verander.
  3. Programmering van geenuitdrukking. Ontwikkel rekenaartoepassings, maar verken die genotipe-fenotipe-stelsel, waar projekte van verskillende groottes op vaste-lengte lineêre chromosome geënkodeer word.
  4. Strategie. Werk met vektore van reële getalle as voorstellings van oplossings. Gebruik gewoonlik selfaanpasbare evolusionêre mutasietempo-algoritmes.
  5. Differensiële ontwikkeling. Gebaseer op vektorverskille en dus primêr geskik vir numeriese optimeringsprobleme.
  6. Neuro-evolusie. Soortgelyk aan evolusionêre programmering en genetiese algoritmes. Maar laasgenoemde is kunsmatige neurale netwerke, wat die struktuur en gewig van die verbindings beskryf. Genoomkodering kan direk of indirek wees.

Vergelyking met biologiese prosesse

'n Moontlike beperking van baie evolusionêre algoritmes is die gebrek aan 'n duidelike onderskeid tussen genotipe en fenotipe. In die natuur ondergaan 'n bevrugte eiersel 'n komplekse proses bekend as embriogenese om volwasse te word. Daar word vermoed dat hierdie indirekte kodering genetiese soektogte meer betroubaar maak (d.w.s. minder geneig om noodlottige mutasies te veroorsaak) en kan ook die organisme se vermoë om te ontwikkel verbeter. Sulke indirekte (met ander woorde,generatiewe of ontwikkelings)-enkoderings laat evolusie ook toe om gereeldheid in die omgewing te ontgin.

Onlangse werk in kunsmatige embriogenese of ontwikkelingstelsels poog om hierdie kwessies aan te spreek. Wanneer geenuitdrukking geprogrammeer word, word die genotipe-fenotipe-gebied suksesvol ondersoek, waar die eerste bestaan uit lineêre multigeenchromosome van vaste lengte, en die tweede uit baie uitdrukkingsbome of rekenaarprogramme van verskillende groottes en vorms.

Verwante tegnieke

evolusionêre algoritmes
evolusionêre algoritmes

Algorithmes sluit in:

  1. Mierkolonie-optimalisering. Dit is gebaseer op die idee dat insekte na kos soek deur met feromone te verbind om paaie te vorm. Hoofsaaklik geskik vir kombinatoriese optimering en grafiekprobleme.
  2. Root-skuifbalk-algoritme. Die skepper is geïnspireer deur die funksie van plantwortels in die natuur.
  3. Algorithme vir kunsmatige byekolonies. Gebaseer op die gedrag van heuningbye. Dit word hoofsaaklik voorgestel vir numeriese optimalisering en uitgebrei om kombinatoriese, begrensde en multi-objektiewe probleme op te los. Die bye-algoritme is gebaseer op die soekgedrag van insekte. Dit is in baie toepassings toegepas, soos roetering en skedulering.
  4. Partikelswermoptimering – gebaseer op dierekuddegedragsidees. En ook primêr geskik vir numeriese prosestake.

Ander gewilde metaheuristiese metodes

  1. Jagsoektog. 'n Metode gebaseer op groepvang van sekere diere, soos wolwe, byvoorbeeld, watverdeel hul pligte om die prooi te omring. Elkeen van die lede van die evolusionêre algoritme hou op een of ander manier verband met die ander. Dit geld veral vir die leier. Dit is 'n deurlopende optimeringsmetode wat aangepas is as 'n kombinatoriese prosesmetode.
  2. Soek volgens afmetings. Anders as natuurgebaseerde metaheuristiese metodes, gebruik die adaptiewe prosesalgoritme nie metafoor as sy hoofbeginsel nie. Dit gebruik eerder 'n eenvoudige prestasie-georiënteerde metode gebaseer op die opdatering van die soekdimensieverhoudingparameter by elke iterasie. Die Vuurvliegie-algoritme is geïnspireer deur hoe vuurvliegies mekaar aantrek met hul flikkerlig. Dit is veral nuttig vir multimodale optimalisering.
  3. Soek na harmonie. Gebaseer op die idees van die gedrag van musikante. In hierdie geval is evolusionêre algoritmes die pad om te gaan vir kombinatoriese optimering.
  4. Gaussiese aanpassing. Gebaseer op inligtingsteorie. Word gebruik om werkverrigting en gemiddelde beskikbaarheid te maksimeer. 'n Voorbeeld van evolusionêre algoritmes in hierdie situasie: entropie in termodinamika en inligtingsteorie.

Memetic

evolusionêre modellering
evolusionêre modellering

'n Hibriedmetode gebaseer op Richard Dawkins se idee van 'n meme. Dit neem gewoonlik die vorm aan van 'n bevolkingsgebaseerde algoritme gekombineer met individuele leerprosedures wat in staat is om plaaslike verfynings uit te voer. Beklemtoon die gebruik van probleemspesifieke kennis en pogings om fyn en globale soektogte op 'n sinergistiese manier te organiseer.

Evolusionêralgoritmes is 'n heuristiese benadering tot probleme wat nie maklik in polinoomtyd opgelos kan word nie, soos klassieke NP-harde probleme en enigiets anders wat te lank sal neem om volledig te verwerk. Wanneer dit onafhanklik gebruik word, word hulle gewoonlik vir kombinatoriese probleme gebruik. Genetiese algoritmes word egter dikwels in tandem met ander metodes gebruik, wat dien as 'n vinnige manier om verskeie optimale beginplekke te vind om mee te werk.

Die uitgangspunt van die evolusionêre algoritme (bekend as 'n adviseur) is redelik eenvoudig, aangesien jy vertroud is met die proses van natuurlike seleksie. Dit bevat vier hoofstappe:

  • initialisering;
  • keuse;
  • genetiese operateurs;
  • end.

Elkeen van hierdie stappe stem min of meer ooreen met 'n sekere aspek van natuurlike seleksie en bied maklike maniere om daardie kategorie algoritmes te modulariseer. Eenvoudig gestel, in EA sal die sterkste lede oorleef en voortplant, terwyl die onfikse lede sal sterf en nie bydra tot die volgende generasie se genepoel nie.

Inisialisering

Om die algoritme te begin, moet jy eers 'n stel oplossings skep. Die populasie sal 'n arbitrêre aantal moontlike probleemstellings bevat, dikwels na verwys as lede. Hulle word dikwels lukraak gegenereer (binne die beperkinge van die taak) of, as sommige voorkennis bekend is, tentatief gesentreer rondom wat as ideaal beskou word. Dit is belangrik dat die bevolking 'n wye reeks oplossings dek,want dit is in wese 'n genepoel. Daarom, as 'n mens baie verskillende moontlikhede binne 'n algoritme wil ondersoek, moet jy daarna streef om baie verskillende gene te hê.

Choice

genetiese kodes
genetiese kodes

Sodra die bevolking geskep is, moet sy lede nou volgens die fiksheidsfunksie geëvalueer word. Die fiksheidsfunksie neem 'n lid se kenmerke en gee 'n numeriese voorstelling van hoe fiks die lid is. Dit kan dikwels baie moeilik wees om hulle te skep. Dit is belangrik om 'n goeie stelsel te vind wat die data akkuraat verteenwoordig. Dit is baie spesifiek vir die probleem. Nou is dit nodig om die geskiktheid van alle deelnemers te bereken en van die beste lede te kies.

Veelvuldige doelwitfunksies

EA's kan ook uitgebrei word om hierdie stelsels te gebruik. Dit bemoeilik die proses ietwat, want in plaas daarvan om een optimale punt te identifiseer, word 'n stel verkry wanneer dit gebruik word. Die stel oplossings word die Pareto-grens genoem en bevat elemente wat ewe geskik is in die sin dat nie een van hulle enige ander oorheers nie.

Genetiese operateurs

Hierdie stap sluit twee sub-stappe in: oorkruising en mutasie. Nadat die beste terme gekies is (gewoonlik die top 2, maar hierdie getal kan verskil), word hulle nou gebruik om die volgende generasie in die algoritme te skep. Deur die kenmerke van die gekose ouers toe te pas, word nuwe kinders geskep wat 'n mengsel van eienskappe is. Dit kan dikwels moeilik wees, afhangende van die tipe data, maar gewoonlik in kombinatoriese problemedit is heel moontlik om geldige kombinasies te meng en uit te voer.

Nou is dit nodig om nuwe genetiese materiaal in die generasie in te voer. As hierdie belangrike stap nie geneem word nie, sal die wetenskaplike baie vinnig in plaaslike uiterstes vashaak en nie optimale resultate kry nie. Hierdie stap is 'n mutasie, en dit word eenvoudig gedoen deur 'n klein deel van die kinders op so 'n manier te verander dat hulle oorwegend nie subsets van die ouers se gene weerspieël nie. Mutasie vind gewoonlik waarskynlik plaas, aangesien die waarskynlikheid dat 'n kind dit sal kry, sowel as die erns daarvan, deur verspreiding bepaal word.

Beëindiging

modellering en algoritmes
modellering en algoritmes

Op die ou end moet die algoritme eindig. Dit gebeur gewoonlik in twee gevalle: óf dit het 'n mate van maksimum uitvoeringstyd bereik, óf dit het 'n prestasiedrempel bereik. Op hierdie stadium word die finale oplossing gekies en teruggestuur.

Voorbeeld van evolusionêre algoritmes

Nou, om die resultaat van hierdie proses te illustreer, moet jy die adviseur in aksie sien. Om dit te doen, kan ons onthou hoe verskeie generasies dinosourusse geleer het om te loop (die land geleidelik bemeester het), die struktuur van hul liggaam te optimaliseer en spierkrag toe te pas. Selfs al kon die vroeë generasie reptiele nie loop nie, kon die adviseur hulle met verloop van tyd deur mutasie en oorkruising ontwikkel in 'n vorm wat kon loop.

Hierdie algoritmes word al hoe meer relevant in die moderne wêreld, aangesien oplossings wat daarop gebaseer is, toenemend gebruik word in industrieë soos digitale bemarking, finansies engesondheidsorg.

Waar word EA's gebruik?

Meer algemeen word evolusionêre algoritmes in 'n wye verskeidenheid toepassings gebruik, soos beeldverwerking, voertuigroetering, optimering van mobiele kommunikasie, sagteware-ontwikkeling en selfs kunsmatige neurale netwerkopleiding. Hierdie nutsgoed is die kern van baie van die toepassings en webwerwe wat mense daagliks gebruik, insluitend Google Maps en selfs speletjies soos The Sims. Daarbenewens gebruik die mediese veld EA om kliniese besluite te neem rakende kankerbehandeling. Trouens, evolusionêre algoritmes is so robuust dat dit gebruik kan word om byna enige optimaliseringsprobleem op te los.

Moore's Law

Die groeiende voorkoms van EO word gedryf deur twee hooffaktore: beskikbare rekenaarkrag en die ophoping van groot datastelle. Die eerste kan beskryf word deur Moore se wet, wat in wese bepaal dat die hoeveelheid rekenaarkrag in 'n rekenaar ongeveer elke twee jaar verdubbel. Hierdie voorspelling hou al dekades lank. Die tweede faktor hou verband met die groeiende afhanklikheid van tegnologie, wat instellings in staat stel om 'n ongelooflike groot hoeveelheid data in te samel, wat hulle in staat stel om tendense te ontleed en produkte te optimaliseer.

Hoe kan evolusionêre algoritmes bemarkers help?

genetiese modellering
genetiese modellering

Marktoestande verander vinnig en baie mededingend. Dit het bemarkingsbestuurders gedwing om mee te ding vir beter besluitneming. Verhoging in beskikbaarrekenaarkrag het daartoe gelei dat werkers EA gebruik vir probleemoplossing.

Omskakelingsoptimering

modellering en genetiese algoritmes
modellering en genetiese algoritmes

Een van die hoofdoelwitte is om die koers van besoekers aan die webwerf te verhoog. Hierdie probleem kom neer op die optimalisering van die aantal gebruikers wat doen wat die bemarker wil hê. Byvoorbeeld, as 'n maatskappy skootrekenaars verkoop, is die ideaal om die aantal werfbesoekers te verhoog wat uiteindelik die produk koop. Dit is die kern van omskakelingskoersoptimering.

Een van die verbasend belangrike aspekte is die keuse van gebruikerskoppelvlak. As die webontwerp nie baie gebruikersvriendelik is nie, is daar diegene wat uiteindelik om die een of ander rede nie die produk koop nie. Die doel is dan om die aantal gebruikers te verminder wat uiteindelik nie omskakel nie, wat die algehele wins verhoog.

Aanbeveel: