Algoritmi evolutivi: ce sunt și de ce sunt necesari

Pe teren de inteligență artificială Un algoritm evoluționar (EA) este un subset de calcul al populației totale bazat pe o meta-euristică. EA utilizează mecanisme inspirate din dezvoltarea biologică, cum ar fi reproducerea, mutația, recombinarea și selecția. O soluție candidată în problematica algoritmilor de optimizare evoluționistă joacă rolul unor indivizi dintr-o populație de. Iar funcția de fitness determină calitatea răspunsurilor.

Algoritmii evolutivi aproximează adesea bine soluțiile la toate tipurile de probleme. Pentru că, în mod ideal, acestea nu fac nicio presupunere cu privire la peisajul de fitness de bază. Metodele utilizate pentru modelarea evoluționistă și algoritmii genetici sunt de obicei limitate la studii ale proceselor microevolutive și la modele de planificare bazate pe etape celulare. În majoritatea aplicațiilor reale de EA, complexitatea de calcul este un factor prohibitiv.

De fapt, această problemă este legată de estimarea fitness-ului. Aproximația de fitness este o soluție pentru a depăși această dificultate. Cu toate acestea, o EA aparent simplă poate rezolva probleme adesea complexe. În consecință, nu poate exista o corelație directă între complexitatea secvenței și problema. Puteți citi mai multe în cărțile Evolutionary Algorithms.

Implementare

modelare și algoritmi evolutivi

Primul pas este crearea unei populații inițiale de indivizi în ordine aleatorie.

Pasul doi constă în evaluarea aptitudinii fiecărui individ din acest grup (constrângere de timp, aptitudine suficientă etc. д.).

Pasul trei constă în repetarea următoarelor etape de regenerare până la finalizare:

  1. Selectarea celor mai potriviți indivizi pentru reproducere (părinți).
  2. Reproducerea de noi indivizi care au trecut prin algoritmul evolutiv cu crossover și mutație pentru a produce descendenți.
  3. Evaluați adecvarea individuală a noilor persoane.
  4. Înlocuirea populației mai puțin apte cu ei.

Tipuri

Un algoritm genetic este o secvență evolutivă, cel mai popular tip de consilier. Căutând rezolvarea problemelor в forma de linii numere (în mod tradițional binare, deși cele mai bune reprezentări sunt, de obicei, cele care reflectă cel mai mare dintre cele două în problema care se rezolvă) prin aplicarea operatori cum ar fi recombinarea și mutația (uneori una, alteori ambele). Acest tip EA este adesea folosită în probleme de optimizare. Un alt nume pentru aceasta este fetura (din latină pentru "naștere"):

  1. Programarea genetică. În cadrul acesteia, soluțiile sunt prezentate sub formă de coduri de calculator, iar adecvarea lor este determinată de capacitatea lor de a îndeplini sarcini de calcul.
  2. Programarea evolutivă. Similar cu algoritmul genetic evolutiv, dar structura este fixă și parametrii numerici pot varia.
  3. Programarea expresiei genice. Dezvoltă aplicații computaționale, dar explorează sistemul genotip-fenotip, în care proiectele de dimensiuni diferite sunt codificate în cromozomi liniari de lungime fixă.
  4. Strategie. Gestionează vectorii de numere reale ca reprezentări ale soluțiilor. De obicei, utilizează algoritmi de mutație evolutivă cu rată de mutație autoadaptivă.
  5. Evoluția diferențială. Bazat pe diferențe vectoriale și, prin urmare, potrivit în primul rând pentru probleme de optimizare numerică.
  6. Neuroevoluție. Similar cu programarea evolutivă și algoritmii genetici. Dar acestea din urmă sunt rețele neuronale artificiale, care descriu structura și greutățile conexiunilor. Codificarea genomului poate fi directă sau indirectă.

Comparație cu procesele biologice

O posibilă limitare a multor algoritmi evolutivi este lipsa unei distincții clare între genotip și fenotip. În natură, un ovul fertilizat trece printr-un proces complex cunoscut sub numele de embriogeneză pentru a deveni matur. Se crede că această codificare indirectă face ca căutările genetice să fie mai fiabile (adică reduce probabilitatea apariției mutațiilor fatale) și poate, de asemenea, să îmbunătățească capacitatea unui organism de a evolua. O astfel de codificare indirectă (cunoscută și sub numele de codificare generativă sau de dezvoltare) permite, de asemenea, evoluției să exploateze regularitatea în medii.

Lucrările recente în domeniul embriogenezei artificiale sau al sistemelor de dezvoltare încearcă să rezolve aceste probleme. Programarea expresiei genice a explorat cu succes domeniul genotip-fenotip, în care primul constă în cromozomi multigene liniare de lungime fixă, iar cel de-al doilea în arbori de expresie multipli sau programe de calculator de diferite dimensiuni și forme.

Tehnici conexe

algoritmi evolutivi

Algoritmii includ:

  1. Optimizarea coloniei de furnici. Se bazează pe ideile insectelor care caută hrană folosind cuplarea feromonilor pentru a forma căi. În primul rând, este potrivit pentru optimizarea combinatorie și problemele de grafuri.
  2. Algoritmul runner-root. Creatorul a fost inspirat de funcția rădăcinilor plantelor în natură.
  3. Algoritm de fermă artificială de albine. Pe baza comportamentului albinelor. Propus în primul rând pentru optimizare numerică și extins pentru a rezolva probleme combinatorii, limitate și multi-obiective. Algoritmul albinei se bazează pe comportamentul de căutare a hranei al insectelor. Acesta a fost aplicat în multe aplicații, cum ar fi rutarea și programarea.
  4. Optimizarea roiului de particule - bazată pe idei despre comportamentul turmelor de animale. Este, de asemenea, potrivit în primul rând pentru probleme de procesare numerică.

Alte meta-euristici populaționale

  1. Căutare de vânătoare. Metodă bazată pe prinderea în grup de către unele animale, cum ar fi lupii, care își distribuie sarcinile pentru a-și înconjura prada. Fiecare dintre membrii algoritmului evolutiv se raportează la ceilalți membri într-un anumit fel. Mai ales liderul. Aceasta este o metodă de optimizare continuă adaptată ca o metodă de proces combinatoriu.
  2. Căutare dimensională. Spre deosebire de metodele metaeuristice bazate pe natură, un algoritm pe procese adaptative nu folosește metafora ca principiu de bază. Mai degrabă, se aplică o metodă simplă orientată spre performanță, bazată pe actualizarea parametrului raportului dimensiunii de căutare la fiecare iterație. Algoritmul Firefly inspirat de licuricii care se atrag între ei prin lumină intermitentă. Acest lucru este deosebit de util pentru optimizarea multimodală.
  3. Căutare armonică. Bazat pe idei despre comportamentul muzicienilor. În acest caz, algoritmii evolutivi sunt o metodă potrivită pentru optimizarea combinatorie.
  4. Adaptare gaussiană. Bazat pe teoria informației. Folosit pentru a maximiza performanța și pentru a îmbunătăți condiția fizică medie. Un exemplu de algoritmi evolutivi în această situație: entropia în termodinamică și teoria informației.

Memetic

Modelarea evolutivă

Metodă hibridă bazată pe ideea de meme a lui Richard Dawkins. De obicei, ia forma unui algoritm bazat pe agregare combinat cu proceduri de învățare individuale capabile să realizeze rafinamente locale. Pune accentul pe utilizarea cunoștințelor specifice unei probleme și încearcă să organizeze căutările precise și globale într-un mod sinergic.

Algoritmii evolutivi reprezintă o abordare euristică a problemelor care nu pot fi rezolvate cu ușurință în timp polinomial, cum ar fi problemele clasice NP-complexe și orice altceva care ar necesita prea mult timp pentru a fi tratate exhaustiv. Atunci când sunt utilizate independent, ele sunt de obicei aplicate la probleme combinatorii. Cu toate acestea, algoritmii genetici sunt adesea utilizați în tandem cu alte metode, acționând ca o modalitate rapidă de a găsi câteva puncte de plecare optime să lucreze.

Premisa algoritmului evolutiv (cunoscut sub numele de EA) este destul de simplă, având în vedere că sunteți familiarizați cu procesul de selecție naturală. Acesta conține patru etape de bază:

  • inițializare;
  • selecție;
  • Operatori genetici;
  • terminarea.

Fiecare dintre aceste etape corespunde aproximativ unui anumit aspect al selecției naturale și oferă modalități simple de implementare modulară a acestei categorii de algoritmi. Pur și simplu, în EA, membrii mai adaptați vor supraviețui și se vor reproduce, în timp ce membrii nepotriviți vor muri și nu vor contribui la fondul genetic al generațiilor viitoare.

Inițializare

Pentru a porni un algoritm, trebuie mai întâi să creați un set de soluții. Populația va conține un număr arbitrar de soluții posibile la problemă, adesea numite actori. Acestea sunt adesea generate aleatoriu (în limitele constrângerilor problemei) sau, dacă se cunosc anumite cunoștințe prealabile, sunt grupate provizoriu în jurul celui considerat ideal. Este important ca populația să acopere o gamă largă de soluții, deoarece este în esență un fond genetic. În consecință, dacă se dorește explorarea mai multor posibilități diferite în cadrul unui algoritm, ar trebui să se urmărească existența mai multor gene diferite.

Selecție

coduri genetice

Odată ce o populație a fost stabilită, membrii acesteia trebuie să fie evaluați în funcție de o funcție de adecvare. Funcția de fitness ia în considerare caracteristicile membrului și oferă o reprezentare numerică a gradului de viabilitate a acestuia. Adesea poate fi foarte dificil să creezi. Este important să găsiți un sistem bun care să reprezinte cu acuratețe datele. Acest lucru este foarte specific problemei. Acum trebuie să calculăm fitness-ul tuturor membrilor și să selectăm o fracțiune din cei mai buni membri.

Funcții țintă multiple

EA pot fi, de asemenea, extinse pentru a utiliza aceste sisteme. Acest lucru complică într-o oarecare măsură procesul, deoarece în loc să se identifice un singur punct optim, se obține un set atunci când se utilizează acestea. Ansamblul soluțiilor se numește frontiera Pareto și conține elemente care sunt la fel de potrivite în sensul că niciuna dintre ele nu domină pe oricare alta.

Operatori genetici

Această etapă implică două subetape: crossover și mutație. După selectarea celor mai buni membri (de obicei primii 2, dar acest număr poate varia), aceștia sunt folosiți pentru a crea următoarea generație a algoritmului. Prin aplicarea caracteristicilor părinților selectați, se creează noi copii, care sunt un amestec de calități. Acest lucru poate fi adesea dificil, în funcție de tipul de date, dar, de obicei, este destul de fezabil în problemele combinatorii să se amestece și să se obțină combinații valide.

Noul material genetic trebuie acum introdus în generația. Dacă nu a acestui important pas, omul de știință se va bloca foarte repede în extreme locale și nu va obține rezultate optime. Acest pas este o mutație și se realizează pur și simplu prin modificarea unei mici părți a copiilor, astfel încât aceștia să nu reflecte în mod predominant un subset de gene ale părinților. O mutație este, de obicei, probabilistică, deoarece posibilitatea ca un copil să o primească, precum și gravitatea ei, este determinată de o distribuție.

Terminare

modelare și algoritmi

În cele din urmă, algoritmul trebuie să se încheie. Acest lucru se întâmplă de obicei în două cazuri: fie a atins un anumit timp maxim de execuție, fie un prag de performanță. În această etapă, soluția finală este selectată și returnată.

Un exemplu de algoritmi evolutivi

Acum, pentru a ilustra rezultatul acestui proces, trebuie să privim EA în acțiune. În acest sens, ne putem aminti cum mai multe generații de dinozauri au învățat să meargă (stăpânind treptat pământul) prin optimizarea structurii corporale și prin exercitarea forței musculare. Deși primele reptile nu puteau merge, EA a reușit să le facă să evolueze în timp prin mutații și încrucișări într-o formă capabilă să meargă.

Acești algoritmi devin din ce în ce mai relevanți în lumea de astăzi, deoarece soluțiile bazate pe ei sunt din ce în ce mai mult utilizate în industrii precum marketingul digital, finanțele și asistența medicală.

În cazul în care se utilizează EA?

Într-un sens mai larg, algoritmii evolutivi sunt utilizați în o mare varietate de aplicații precum procesarea imaginilor, rutarea vehiculelor, optimizarea mobilității, dezvoltarea de software și chiar antrenarea rețelelor neuronale artificiale. Aceste instrumente stau la baza multor aplicații și site-uri web pe care oamenii le folosesc în fiecare zi, inclusiv Google Maps și chiar jocuri precum The Sims. În plus, domeniul medical utilizează EA pentru a ajuta la luarea deciziilor clinice privind tratamentul cancerului. De fapt, algoritmii evoluționari sunt atât de rezistenți încât pot fi utilizați pentru a rezolva aproape orice problemă de optimizare.

Legea lui Moore

Prevalența crescândă a EA se datorează a doi factori principali: puterea de calcul disponibilă și acumularea de seturi mari de date. Prima poate fi descrisă prin Legea lui Moore, care afirmă în esență că puterea de calcul a unui computer se dublează la aproximativ fiecare doi ani. Această predicție se menține de zeci de ani. Al doilea factor este legat de dependența tot mai mare de tehnologie, care permite instituțiilor să colecteze o cantitate incredibilă de date care le permite să analizeze tendințele și să optimizeze produsele.

Cum îi pot ajuta algoritmii evolutivi pe cei care fac marketing?

modelare genetică

Condițiile de piață se schimbă rapid și sunt foarte competitive. Acest lucru a forțat managerii de marketing să concureze pentru a obține cele mai bune luarea deciziilor. Creșterea puterii de calcul disponibile a condus angajații să utilizeze EA pentru a rezolva probleme.

Optimizarea conversiilor

modelare și algoritmi genetici

Unul dintre principalele obiective este creșterea ratei de vizitatori pe site. Această problemă se rezumă la optimizarea numărului de utilizatori care fac ceea ce dorește marketerul. De exemplu, dacă o companie vinde laptopuri, ideal ar fi să creșteți numărul de vizitatori ai site-ului care ajung să cumpere produsul. Aceasta este esența optimizării ratei de conversie.

Un aspect surprinzător de important este alegerea interfeței cu utilizatorul. Dacă designul web nu este foarte ușor de utilizat, există persoane care ajung să nu cumpere produsul dintr-un motiv sau altul. Scopul este de a reduce numărul de utilizatori care nu se convertesc, ceea ce crește profitul general.

Articole pe această temă