Evolūcijas algoritmi: kas tas ir un kāpēc tie ir vajadzīgi

Satura rādītājs:

Evolūcijas algoritmi: kas tas ir un kāpēc tie ir vajadzīgi
Evolūcijas algoritmi: kas tas ir un kāpēc tie ir vajadzīgi
Anonim

Mākslīgā intelekta jomā evolūcijas algoritms (EA) ir kopējās populācijas aprēķinu apakškopa, kuras pamatā ir metaheiristiskā optimizācija. EA izmanto mehānismus, kurus iedvesmo bioloģiska attīstība, piemēram, reprodukcija, mutācijas, rekombinācija un atlase. Evolūcijas optimizācijas algoritmu problēmas risinājuma kandidāts spēlē indivīdu lomu populācijā. Un arī fitnesa funkcija nosaka atbilžu kvalitāti.

Evolūcijas algoritmi bieži vien labi tuvina visu veidu problēmu risinājumus. Jo ideālā gadījumā viņi neizdara nekādus pieņēmumus par pamatā esošo fitnesa ainavu. Evolūcijas modelēšanai un ģenētiskajiem algoritmiem izmantotās metodes parasti aprobežojas ar mikroevolūcijas procesu pētījumiem un plānošanas modeļiem, kuru pamatā ir šūnu stadijas. Lielākajā daļā reālu EA lietojumprogrammu skaitļošanas sarežģītība ir pārmērīgs faktors.

Patiesībāšī problēma ir saistīta ar fitnesa funkcijas novērtēšanu. Fitnesa tuvināšana ir viens no risinājumiem, lai pārvarētu šīs grūtības. Tomēr šķietami vienkāršs EA var atrisināt bieži sarežģītas problēmas. Tāpēc nevar būt tiešas attiecības starp secības sarežģītību un problēmu. Sīkāku informāciju var atrast grāmatās "Evolutionary Algorithms".

Ieviešana

evolūcijas modelēšana un algoritmi
evolūcijas modelēšana un algoritmi

Pirmais solis ir nejauši izveidot sākotnējo indivīdu populāciju.

Otrais solis ir novērtēt katra indivīda piemērotību šajā grupā (laika ierobežojums, pietiekama sagatavotība utt.).

Trešais solis - atkārtojiet šīs reģenerācijas darbības, lai pabeigtu:

  1. Atlasiet audzēšanai piemērotākos cilvēkus (vecākus).
  2. Atnesiet jaunus indivīdus, kuri ir izturējuši evolūcijas algoritmu, izmantojot krustojumu un mutāciju, lai iegūtu pēcnācējus.
  3. Novērtējiet jaunu cilvēku individuālo piemērotību.
  4. Aizstāj ar tiem vismazāk piemēroto populāciju.

Veidi

Ģenētiskais algoritms ir evolucionāra secība, vispopulārākais ekspertu padomdevēja veids. Problēmas risinājums tiek meklēts skaitļu virkņu (tradicionāli bināro, lai gan vislabākie attēlojumi parasti ir tie, kas vairāk atspoguļo risināmo problēmu) veidā, izmantojot tādus operatorus kā rekombinācija un mutācija (dažreiz vienu, dažos gadījumos abus). Šāda veida ekspertu padomnieks bieži tiek izmantots optimizācijas problēmās. Cits nosaukums tam ir fetura (no latīņu valodas nozīmē "dzimšana"):

  1. Ģenētiskā programmēšana. Tā piedāvā risinājumus kā datoru kodus, un to piemērotību nosaka to spēja veikt skaitļošanas uzdevumus.
  2. Evolūcijas programmēšana. Līdzīgi kā evolūcijas ģenētiskais algoritms, taču struktūra ir fiksēta un tā skaitliskie parametri var mainīties.
  3. Gēnu ekspresijas programmēšana. Izstrādā datoru lietojumprogrammas, bet pēta genotipa-fenotipa sistēmu, kur dažāda lieluma projekti tiek iekodēti fiksēta garuma lineārās hromosomās.
  4. Stratēģija. Darbojas ar reālu skaitļu vektoriem kā risinājumu attēlojumu. Parasti izmanto pašadaptīvus evolūcijas mutāciju ātruma algoritmus.
  5. Diferenciālā attīstība. Balstīts uz vektoru atšķirībām un tāpēc galvenokārt piemērots skaitliskās optimizācijas problēmām.
  6. Neiroevolūcija. Līdzīgi kā evolūcijas programmēšana un ģenētiskie algoritmi. Bet pēdējie ir mākslīgie neironu tīkli, kas apraksta savienojumu struktūru un svaru. Genoma kodēšana var būt tieša vai netieša.

Salīdzinājums ar bioloģiskajiem procesiem

Iespējamais daudzu evolūcijas algoritmu ierobežojums ir skaidras atšķirības starp genotipu un fenotipu trūkums. Dabā apaugļotā olšūnā notiek sarežģīts process, kas pazīstams kā embrioģenēze, lai tā kļūtu nobriedusi. Tiek uzskatīts, ka šī netiešā kodēšana padara ģenētiskos meklējumus uzticamākus (t.i., mazāku iespējamību izraisīt letālas mutācijas), kā arī var uzlabot organisma spēju attīstīties. Šādas netiešas (citiem vārdiem sakot,ģeneratīvie vai attīstības) kodējumi arī ļauj evolūcijai izmantot vides regularitāti.

Pēdējais darbs mākslīgās embrioģenēzes vai attīstības sistēmās cenšas risināt šīs problēmas. Programmējot gēnu ekspresiju, tiek veiksmīgi izpētīts genotipa-fenotipa reģions, kur pirmo veido fiksēta garuma lineāras daudzgēnu hromosomas, bet otro no daudziem dažāda izmēra un formas ekspresijas kokiem vai datorprogrammām.

Saistītās metodes

evolūcijas algoritmi
evolūcijas algoritmi

Algoritmi ietver:

  1. Skudru kolonijas optimizācija. Tā pamatā ir ideja, ka kukaiņi meklē barību, savienojoties ar feromoniem, veidojot ceļus. Galvenokārt piemērots kombinatoriskai optimizācijai un grafiku problēmām.
  2. Saknes slīdņa algoritms. Radītāju iedvesmoja augu sakņu funkcija dabā.
  3. Algoritms mākslīgajām bišu saimēm. Pamatojoties uz medus bišu uzvedību. Tas galvenokārt ir ierosināts skaitliskai optimizācijai un paplašināts, lai atrisinātu kombinatoriskas, ierobežotas un vairāku mērķu problēmas. Bišu algoritma pamatā ir kukaiņu barības meklēšanas uzvedība. Tas ir izmantots daudzās lietojumprogrammās, piemēram, maršrutēšanā un plānošanā.
  4. Daļiņu spieta optimizācija - pamatojoties uz dzīvnieku ganāmpulka uzvedības idejām. Un arī galvenokārt piemērots skaitlisku procesu uzdevumiem.

Citas populāras metaheiristiskās metodes

  1. Medību meklēšana. Metode, kuras pamatā ir noteiktu dzīvnieku, piemēram, vilku, grupā noķeršana, kassadalīt savus pienākumus, lai apņemtu upuri. Katrs no evolūcijas algoritma dalībniekiem kaut kādā veidā ir saistīts ar citiem. Īpaši tas attiecas uz vadītāju. Šī ir nepārtrauktas optimizācijas metode, kas pielāgota kā kombinatoriskā procesa metode.
  2. Meklēt pēc mērījumiem. Atšķirībā no dabā balstītām metaheiristiskām metodēm, adaptīvā procesa algoritms neizmanto metaforu kā galveno principu. Tā drīzāk izmanto vienkāršu uz veiktspēju orientētu metodi, kuras pamatā ir meklēšanas dimensiju attiecības parametra atjaunināšana katrā iterācijā. Firefly algoritms ir iedvesmots no tā, kā ugunspuķes piesaista viena otru ar savu mirgojošo gaismu. Tas ir īpaši noderīgi multimodālai optimizācijai.
  3. Meklējiet harmoniju. Balstīts uz priekšstatiem par mūziķu uzvedību. Šajā gadījumā kombinatoriskajai optimizācijai ir jāizmanto evolūcijas algoritmi.
  4. Gausa adaptācija. Balstīts uz informācijas teoriju. Izmanto, lai palielinātu veiktspēju un vidējo pieejamību. Evolūcijas algoritmu piemērs šajā situācijā: entropija termodinamikā un informācijas teorijā.

Memetic

evolūcijas modelēšana
evolūcijas modelēšana

Hibrīda metode, kuras pamatā ir Ričarda Dokinsa ideja par mēmu. Tas parasti izpaužas kā uz populāciju balstīts algoritms apvienojumā ar individuālām mācību procedūrām, kas spēj veikt lokālus uzlabojumus. Uzsver problēmu specifisku zināšanu izmantošanu un mēģinājumus organizēt smalku un globālu meklēšanu sinerģiski.

Evolūcijasalgoritmi ir heiristiska pieeja problēmām, kuras nevar viegli atrisināt polinoma laikā, piemēram, klasiski NP grūtiem uzdevumiem un visam citam, kura pilnīga apstrāde aizņem pārāk ilgu laiku. Ja tos izmanto neatkarīgi, tos parasti izmanto kombinatoriskām problēmām. Tomēr ģenētiskos algoritmus bieži izmanto kopā ar citām metodēm, kas darbojas kā ātrs veids, kā atrast vairākas optimālas sākuma vietas darbam.

Evolūcijas algoritma (pazīstams kā padomdevēja) priekšnoteikums ir diezgan vienkāršs, ņemot vērā, ka esat pazīstams ar dabiskās atlases procesu. Tajā ir četras galvenās darbības:

  • inicializācija;
  • izvēle;
  • ģenētiskie operatori;
  • beigas.

Katra no šīm darbībām aptuveni atbilst noteiktam dabiskās atlases aspektam un nodrošina vienkāršus veidus, kā modularizēt šo algoritmu kategoriju. Vienkārši sakot, EA labākie dalībnieki izdzīvos un vairosies, bet nepiemērotie dalībnieki mirs un nedos ieguldījumu nākamās paaudzes genofondā.

Inicializācija

Lai sāktu algoritmu, vispirms jāizveido risinājumu kopa. Kopā būs iekļauts patvaļīgs skaits iespējamo problēmu formulējumu, ko bieži dēvē par dalībniekiem. Tās bieži tiek ģenerētas nejauši (uzdevuma ierobežojumu ietvaros) vai, ja ir zināmas dažas iepriekšējās zināšanas, provizoriski centrētas uz to, kas tiek uzskatīts par ideālu. Ir svarīgi, lai iedzīvotāji aptvertu plašu risinājumu klāstu,jo tas būtībā ir gēnu fonds. Tāpēc, ja kāds vēlas izpētīt daudzas dažādas algoritma iespējas, jācenšas izmantot daudz dažādu gēnu.

Izvēle

ģenētiskie kodi
ģenētiskie kodi

Kad populācija ir izveidota, tās dalībnieki tagad ir jānovērtē atbilstoši fitnesa funkcijai. Fitnesa funkcija ņem vērā dalībnieka raksturlielumus un sniedz skaitlisku priekšstatu par dalībnieka piemērotību. To izveide bieži var būt ļoti sarežģīta. Ir svarīgi atrast labu sistēmu, kas precīzi attēlo datus. Tas ir ļoti specifisks problēmai. Tagad ir nepieciešams aprēķināt visu dalībnieku piemērotību un atlasīt dažus no labākajiem dalībniekiem.

Vairākas mērķa funkcijas

EA var arī paplašināt, lai izmantotu šīs sistēmas. Tas nedaudz sarežģī procesu, jo tā vietā, lai noteiktu vienu optimālo punktu, tos izmantojot tiek iegūta kopa. Risinājumu kopu sauc par Pareto robežu, un tajā ir elementi, kas ir vienlīdz piemēroti tādā nozīmē, ka neviens no tiem nedominē nevienā citā.

Ģenētiskie operatori

Šajā darbībā ir iekļauti divi apakšsoļi: krustojums un mutācija. Pēc labāko terminu atlases (parasti 2 populārākie, taču šis skaitlis var atšķirties), tagad tie tiek izmantoti, lai algoritmā izveidotu nākamo paaudzi. Pielietojot izvēlēto vecāku īpašības, tiek radīti jauni bērni, kas ir īpašību sajaukums. Tas bieži var būt sarežģīti atkarībā no datu veida, bet parasti kombinatoriskās problēmasir pilnīgi iespējams sajaukt un izvadīt derīgas kombinācijas.

Tagad nepieciešams paaudzē ieviest jaunu ģenētisko materiālu. Ja šis svarīgais solis netiks sperts, zinātnieks ļoti ātri iestrēgs vietējās galējībās un nesasniegs optimālus rezultātus. Šis solis ir mutācija, un tas tiek darīts pavisam vienkārši, mainot nelielu daļu bērnu tā, ka tie pārsvarā neatspoguļo vecāku gēnu apakškopas. Mutācija parasti notiek varbūtības dēļ, jo varbūtību, ka bērns to saņems, kā arī tās smagumu nosaka sadalījums.

Izbeigšana

modelēšana un algoritmi
modelēšana un algoritmi

Beigās algoritmam ir jābeidzas. Tas parasti notiek divos gadījumos: vai nu tas ir sasniedzis kādu maksimālo izpildes laiku, vai arī ir sasniegts veiktspējas slieksnis. Šajā brīdī tiek atlasīts un atgriezts gala risinājums.

Evolūcijas algoritmu piemērs

Tagad, lai ilustrētu šī procesa rezultātu, jums jāredz padomdevējs darbībā. Lai to izdarītu, varam atgādināt, kā vairākas dinozauru paaudzes mācījās staigāt (pamazām apgūstot zemi), optimizējot sava ķermeņa uzbūvi un pieliekot muskuļu spēku. Lai gan agrīnās paaudzes rāpuļi nevarēja staigāt, konsultants laika gaitā spēja tos pārveidot mutācijas un krustošanās ceļā, veidojot formu, kas varētu staigāt.

Šie algoritmi kļūst arvien aktuālāki mūsdienu pasaulē, jo uz tiem balstītie risinājumi arvien vairāk tiek izmantoti tādās nozarēs kā digitālais mārketings, finanses unveselības aprūpe.

Kur tiek izmantotas EA?

Plašāk evolucionārie algoritmi tiek izmantoti dažādās lietojumprogrammās, piemēram, attēlu apstrādē, transportlīdzekļu maršrutošanā, mobilo sakaru optimizācijā, programmatūras izstrādē un pat mākslīgā neironu tīkla apmācībā. Šie rīki ir pamatā daudzām lietotnēm un vietnēm, kuras cilvēki izmanto ikdienā, tostarp Google Maps un pat tādas spēles kā The Sims. Turklāt medicīnas nozare izmanto EA, lai palīdzētu pieņemt klīniskus lēmumus par vēža ārstēšanu. Faktiski evolūcijas algoritmi ir tik spēcīgi, ka tos var izmantot, lai atrisinātu gandrīz jebkuru optimizācijas problēmu.

Mūra likums

Pieaugošo EO izplatību nosaka divi galvenie faktori: pieejamā skaitļošanas jauda un lielu datu kopu uzkrāšanās. Pirmo var raksturot ar Mūra likumu, kas būtībā nosaka, ka skaitļošanas jaudas apjoms datorā dubultojas aptuveni ik pēc diviem gadiem. Šī prognoze ir spēkā vairākus gadu desmitus. Otrs faktors ir saistīts ar pieaugošo paļaušanos uz tehnoloģijām, kas ļauj iestādēm savākt neticami lielu datu apjomu, kas ļauj tām analizēt tendences un optimizēt produktus.

Kā evolucionārie algoritmi var palīdzēt mārketinga speciālistiem?

ģenētiskā modelēšana
ģenētiskā modelēšana

Tirgus apstākļi strauji mainās un ir ļoti konkurētspējīgi. Tas ir piespiedis mārketinga vadītājus sacensties par labāku lēmumu pieņemšanu. Pieejamā apjoma pieaugumsskaitļošanas jauda ir likusi darbiniekiem izmantot EA problēmu risināšanai.

Reklāmguvumu optimizācija

modelēšana un ģenētiskie algoritmi
modelēšana un ģenētiskie algoritmi

Viens no galvenajiem mērķiem ir palielināt vietnes apmeklētāju skaitu. Šī problēma ir saistīta ar to lietotāju skaita optimizēšanu, kuri dara to, ko vēlas tirgotājs. Piemēram, ja uzņēmums pārdod klēpjdatorus, ideāls ir palielināt vietnes apmeklētāju skaitu, kuri galu galā iegādājas produktu. Tā ir reklāmguvumu līmeņa optimizācijas būtība.

Viens no pārsteidzoši svarīgajiem aspektiem ir lietotāja interfeisa izvēle. Ja tīmekļa dizains nav ļoti lietotājam draudzīgs, ir tādi, kas viena vai otra iemesla dēļ produktu neiegādājas. Mērķis ir samazināt to lietotāju skaitu, kuri neveic reklāmguvumu, kas palielina kopējo peļņu.

Ieteicams: