Në fushën e inteligjencës artificiale, një algoritëm evolucionar (EA) është një nëngrup i llogaritjeve totale të popullsisë bazuar në optimizimin metaheuristik. EA përdor mekanizma të frymëzuar nga zhvillimi biologjik si riprodhimi, mutacioni, rikombinimi dhe përzgjedhja. Zgjidhja kandidate në problemin e algoritmeve të optimizimit evolucionar luan rolin e individëve në popullatë. Dhe gjithashtu funksioni i fitnesit përcakton cilësinë e përgjigjeve.
Algoritmet evolucionare shpesh përafrojnë zgjidhjet për të gjitha llojet e problemeve. Sepse në mënyrë ideale ata nuk bëjnë asnjë supozim për peizazhin themelor të fitnesit. Metodat e përdorura për modelimin evolucionar dhe algoritmet gjenetike zakonisht kufizohen në studimet e proceseve mikroevolucionare dhe modeleve të planifikimit të bazuara në fazat qelizore. Në shumicën e aplikacioneve reale të EA, kompleksiteti llogaritës është një faktor ndalues.
Në faktkjo çështje lidhet me vlerësimin e funksionit të fitnesit. Përafrimi i fitnesit është një zgjidhje për të kapërcyer këtë vështirësi. Megjithatë, një EA në dukje e thjeshtë mund të zgjidhë probleme shpesh komplekse. Prandaj, nuk mund të ketë lidhje të drejtpërdrejtë midis kompleksitetit të sekuencës dhe problemit. Më shumë detaje mund të gjenden në librat "Algoritme Evolucionare".
Zbatimi
Hapi i parë është krijimi i një popullate fillestare individësh në mënyrë të rastësishme.
Hapi i dytë është vlerësimi i përshtatshmërisë së secilit individ në këtë grup (kufizimi kohor, gatishmëria e mjaftueshme, etj.).
Hapi i tretë - përsëritni hapat e mëposhtëm të rigjenerimit deri në përfundim:
- Zgjidhni njerëzit më të përshtatshëm për mbarështim (prindërit).
- Sillni individë të rinj që kanë kaluar algoritmin evolucionar duke përdorur kryqëzim dhe mutacion për të marrë pasardhës.
- Vlerëso aftësinë individuale të njerëzve të rinj.
- Zëvendësoni popullsinë më pak të përshtatshme me to.
Llojet
Algoritmi Gjenetik është një sekuencë evolucionare, lloji më i popullarizuar i Këshilltarit të Ekspertëve. Një zgjidhje për problemin kërkohet në formën e vargjeve të numrave (tradicionalisht binare, megjithëse paraqitjet më të mira janë zakonisht ato që reflektojnë më shumë në problemin që zgjidhet) duke aplikuar operatorë të tillë si rikombinimi dhe mutacioni (nganjëherë një, në disa raste të dyja). Ky lloj i këshilltarit ekspert përdoret shpesh në problemet e optimizimit. Një emër tjetër për këtë është fetura (nga latinishtja për "lindje"):
- Programimi gjenetik. Ai paraqet zgjidhjet si kode kompjuterike dhe përshtatshmëria e tyre përcaktohet nga aftësia e tyre për të kryer detyra llogaritëse.
- Programim evolucionar. Ngjashëm me algoritmin gjenetik evolucionar, por struktura është fikse dhe parametrat e saj numerikë mund të ndryshojnë.
- Programimi i shprehjes së gjenit. Zhvillon aplikacione kompjuterike, por eksploron sistemin gjenotip-fenotip, ku projektet e madhësive të ndryshme janë të koduara në kromozome lineare me gjatësi fikse.
- Strategji. Punon me vektorë të numrave realë si paraqitje zgjidhjesh. Zakonisht përdor algoritme vetë-përshtatëse të shkallës së mutacionit evolucionar.
- Zhvillimi diferencial. Bazuar në dallimet vektoriale dhe për këtë arsye kryesisht i përshtatshëm për problemet e optimizimit numerik.
- Neuroevolucioni. Ngjashëm me programimin evolucionar dhe algoritmet gjenetike. Por këto të fundit janë rrjete nervore artificiale, që përshkruajnë strukturën dhe peshën e lidhjeve. Kodimi i gjenomit mund të jetë i drejtpërdrejtë ose i tërthortë.
Krahasimi me proceset biologjike
Një kufizim i mundshëm i shumë algoritmeve evolucionare është mungesa e një dallimi të qartë midis gjenotipit dhe fenotipit. Në natyrë, një vezë e fekonduar i nënshtrohet një procesi kompleks të njohur si embriogjenezë për t'u pjekur. Ky kodim indirekt mendohet se i bën kërkimet gjenetike më të besueshme (d.m.th., më pak të ngjarë të shkaktojnë mutacione fatale) dhe gjithashtu mund të përmirësojë aftësinë e organizmit për t'u zhvilluar. Tërthorazi të tillë (me fjalë të tjera,kodimet gjeneruese ose zhvillimore) gjithashtu lejojnë evolucionin të shfrytëzojë rregullsinë në mjedis.
Puna e fundit në embriogjenezën artificiale ose sistemet e zhvillimit kërkon të adresojë këto çështje. Kur programohet shprehja e gjeneve, rajoni gjenotip-fenotip eksplorohet me sukses, ku i pari përbëhet nga kromozome lineare multigjenike me gjatësi fikse, dhe i dyti nga shumë pemë shprehëse ose programe kompjuterike të madhësive dhe formave të ndryshme.
Teknika të ngjashme
Algoritmet përfshijnë:
- Optimizimi i kolonisë së milingonave. Ai bazohet në idenë se insektet kërkojnë ushqim duke u lidhur me feromonet për të formuar shtigje. Kryesisht i përshtatshëm për optimizimin kombinues dhe problemet e grafikut.
- Algoritmi i rrëshqitësit rrënjë. Krijuesi u frymëzua nga funksioni i rrënjëve të bimëve në natyrë.
- Algoritmi për kolonitë artificiale të bletëve. Bazuar në sjelljen e bletëve. Kryesisht propozohet për optimizim numerik dhe zgjerohet për të zgjidhur problemet kombinuese, të kufizuara dhe me shumë objektiva. Algoritmi i bletëve bazohet në sjelljen e ushqimit të insekteve. Ai është aplikuar në shumë aplikacione të tilla si drejtimi dhe planifikimi.
- Optimizimi i tufës së grimcave - bazuar në idetë e sjelljes së tufës së kafshëve. Dhe gjithashtu i përshtatshëm kryesisht për detyrat e procesit numerik.
Metoda të tjera të njohura metaheuristike
- Kërkim për gjueti. Një metodë e bazuar në kapjen në grup të disa kafshëve, të tilla si ujqërit, për shembull, të cilëtshpërndajnë detyrat e tyre për të rrethuar gjahun. Secili nga anëtarët e algoritmit evolucionar lidhet me të tjerët në një farë mënyre. Kjo është veçanërisht e vërtetë për udhëheqësin. Kjo është një metodë optimizimi i vazhdueshëm i përshtatur si një metodë procesi kombinues.
- Kërko sipas matjeve. Ndryshe nga metodat metaheuristike të bazuara në natyrë, algoritmi i procesit adaptiv nuk përdor metaforën si parimin e tij kryesor. Përkundrazi, ai përdor një metodë të thjeshtë të orientuar nga performanca e bazuar në përditësimin e parametrit të raportit të dimensionit të kërkimit në çdo përsëritje. Algoritmi Firefly është i frymëzuar nga mënyra se si fishekzjarrët tërheqin njëri-tjetrin me dritën e tyre vezulluese. Kjo është veçanërisht e dobishme për optimizimin multimodal.
- Kërko për harmoni. Bazuar në idetë e sjelljes së muzikantëve. Në këtë rast, algoritmet evolucionare janë mënyra për të shkuar për optimizimin kombinator.
- Përshtatja Gaussian. Bazuar në teorinë e informacionit. Përdoret për të maksimizuar performancën dhe disponueshmërinë mesatare. Një shembull i algoritmeve evolucionare në këtë situatë: entropia në termodinamikën dhe teorinë e informacionit.
Memetic
Një metodë hibride e bazuar në idenë e Richard Dawkins për një meme. Zakonisht merr formën e një algoritmi të bazuar në popullatë të kombinuar me procedura individuale të të mësuarit të afta për të kryer përmirësime lokale. Thekson përdorimin e njohurive specifike për problemin dhe përpjekjet për të organizuar kërkime të hollësishme dhe globale në një mënyrë sinergjike.
Evolucionaralgoritmet janë një qasje heuristike ndaj problemeve që nuk mund të zgjidhen lehtësisht në kohë polinomiale, të tilla si problemet klasike të NP-hard dhe çdo gjë tjetër që do të kërkonte shumë kohë për t'u përpunuar në mënyrë shteruese. Kur përdoren në mënyrë të pavarur, ato zakonisht përdoren për probleme të kombinuara. Megjithatë, algoritmet gjenetike përdoren shpesh së bashku me metoda të tjera, duke vepruar si një mënyrë e shpejtë për të gjetur shumë vende fillestare optimale për të punuar.
Premisa e algoritmit evolucionar (i njohur si këshilltar) është mjaft i thjeshtë duke qenë se jeni njohur me procesin e seleksionimit natyror. Ai përmban katër hapa kryesorë:
- initializimi;
- zgjedhja;
- operatorë gjenetikë;
- fund.
Secili prej këtyre hapave përafërsisht korrespondon me një aspekt të caktuar të përzgjedhjes natyrore dhe ofron mënyra të thjeshta për të modularizuar atë kategori algoritmesh. E thënë thjesht, në EA, anëtarët më të fortë do të mbijetojnë dhe do të riprodhohen, ndërsa anëtarët e papërshtatshëm do të vdesin dhe nuk do të kontribuojnë në grupin e gjeneve të gjeneratës së ardhshme.
Inicializimi
Për të nisur algoritmin, fillimisht duhet të krijoni një grup zgjidhjesh. Popullsia do të përmbajë një numër arbitrar të deklaratave të mundshme të problemit, shpesh të referuara si anëtarë. Ato shpesh krijohen në mënyrë të rastësishme (brenda kufizimeve të detyrës) ose, nëse dihen disa njohuri paraprake, përqendrohen paraprakisht rreth asaj që konsiderohet ideale. Është e rëndësishme që popullsia të mbulojë një gamë të gjerë zgjidhjesh,sepse në thelb është një pishinë gjenesh. Prandaj, nëse dikush dëshiron të eksplorojë shumë mundësi të ndryshme brenda një algoritmi, duhet të përpiqet të ketë shumë gjene të ndryshme.
Zgjedhja
Pasi të krijohet popullata, anëtarët e saj tani duhet të vlerësohen sipas funksionit të fitnesit. Funksioni i fitnesit merr karakteristikat e një anëtari dhe jep një paraqitje numerike se sa i përshtatshëm është anëtari. Krijimi i tyre shpesh mund të jetë shumë i vështirë. Është e rëndësishme të gjesh një sistem të mirë që përfaqëson me saktësi të dhënat. Kjo është shumë specifike për problemin. Tani është e nevojshme të llogaritet përshtatshmëria e të gjithë pjesëmarrësve dhe të zgjidhen disa nga anëtarët më të mirë.
Funksione me shumë objektiva
EA mund të zgjerohen gjithashtu për të përdorur këto sisteme. Kjo e ndërlikon disi procesin, sepse në vend që të identifikohet një pikë optimale, merret një grup kur i përdorni. Grupi i zgjidhjeve quhet kufiri Pareto dhe përmban elementë që janë po aq të përshtatshëm në kuptimin që asnjëra prej tyre nuk dominon asnjë tjetër.
Operatorët gjenetikë
Ky hap përfshin dy nënhapa: kryqëzimin dhe mutacionin. Pas zgjedhjes së termave më të mirë (zakonisht 2 të parët, por ky numër mund të ndryshojë), ato tani përdoren për të krijuar gjeneratën e ardhshme në algoritëm. Duke zbatuar karakteristikat e prindërve të zgjedhur krijohen fëmijë të rinj që janë një përzierje cilësish. Kjo shpesh mund të jetë e vështirë në varësi të llojit të të dhënave, por zakonisht në probleme të kombinuaraështë mjaft e mundur të përzihen dhe të dalin kombinime të vlefshme.
Tani është e nevojshme të futet materiali i ri gjenetik në brez. Nëse ky hap i rëndësishëm nuk ndërmerret, shkencëtari shumë shpejt do të ngecë në ekstremet lokale dhe nuk do të marrë rezultate optimale. Ky hap është një mutacion dhe bëhet fare thjesht, duke ndryshuar një pjesë të vogël të fëmijëve në mënyrë të tillë që ata kryesisht të mos pasqyrojnë nëngrupe të gjeneve të prindërve. Mutacioni zakonisht ndodh në mënyrë probabilistike, pasi probabiliteti që një fëmijë ta marrë atë, si dhe ashpërsia e tij, përcaktohet nga shpërndarja.
Përfundimi
Në fund, algoritmi duhet të përfundojë. Kjo zakonisht ndodh në dy raste: ose ka arritur një kohë maksimale të ekzekutimit, ose ka arritur një prag të performancës. Në këtë pikë, zgjidhet zgjidhja përfundimtare dhe kthehet.
Shembull i algoritmeve evolucionare
Tani, për të ilustruar rezultatin e këtij procesi, duhet të shihni këshilltarin në veprim. Për ta bërë këtë, ne mund të kujtojmë se si disa breza dinosaurësh mësuan të ecnin (gradualisht zotëronin tokën), duke optimizuar strukturën e trupit të tyre dhe duke aplikuar forcën e muskujve. Edhe pse zvarranikët e gjeneratës së hershme nuk mund të ecnin, këshilltari ishte në gjendje t'i evolonte ata me kalimin e kohës nëpërmjet mutacionit dhe kryqëzimit në një formë që mund të ecnin.
Këto algoritme po bëhen gjithnjë e më të rëndësishme në botën moderne, pasi zgjidhjet e bazuara në to përdoren gjithnjë e më shumë në industri të tilla si marketingu dixhital, financa dhekujdesi shëndetësor.
Ku përdoren EA?
Më gjerësisht, algoritmet evolucionare përdoren në një shumëllojshmëri të gjerë aplikacionesh si përpunimi i imazhit, rrugëtimi i automjeteve, optimizimi i komunikimeve celulare, zhvillimi i softuerit dhe madje edhe trajnimi artificial i rrjeteve nervore. Këto mjete janë në qendër të shumë prej aplikacioneve dhe faqeve të internetit që njerëzit përdorin çdo ditë, duke përfshirë Google Maps dhe madje edhe lojëra si The Sims. Përveç kësaj, fusha mjekësore përdor EA për të ndihmuar në marrjen e vendimeve klinike në lidhje me trajtimin e kancerit. Në fakt, algoritmet evolucionare janë aq të fuqishme sa mund të përdoren për të zgjidhur pothuajse çdo problem optimizimi.
Ligji i Moore
Përhapja në rritje e OE nxitet nga dy faktorë kryesorë: fuqia kompjuterike e disponueshme dhe akumulimi i grupeve të mëdha të të dhënave. E para mund të përshkruhet nga Ligji i Moore, i cili në thelb thotë se sasia e fuqisë llogaritëse në një kompjuter dyfishohet afërsisht çdo dy vjet. Ky parashikim ka qëndruar për dekada. Faktori i dytë lidhet me mbështetjen në rritje nga teknologjia, e cila i lejon institucionet të mbledhin një sasi tepër të madhe të dhënash, gjë që u lejon atyre të analizojnë tendencat dhe të optimizojnë produktet.
Si mund t'i ndihmojnë algoritmet evolucionare tregtarët?
Kushtet e tregut po ndryshojnë me shpejtësi dhe janë shumë konkurruese. Kjo i ka detyruar menaxherët e marketingut të konkurrojnë për një vendimmarrje më të mirë. Rritja e disponueshmefuqia kompjuterike ka bërë që punëtorët të përdorin EA për zgjidhjen e problemeve.
Optimizimi i konvertimit
Një nga qëllimet kryesore është rritja e shkallës së vizitorëve në faqe. Ky problem zbret në optimizimin e numrit të përdoruesve që bëjnë atë që dëshiron tregtari. Për shembull, nëse një kompani shet laptopë, idealja është të rritet numri i vizitorëve të faqes që përfundojnë duke blerë produktin. Ky është thelbi i optimizimit të normës së konvertimit.
Një nga aspektet çuditërisht të rëndësishme është zgjedhja e ndërfaqes së përdoruesit. Nëse dizajni i uebit nuk është shumë miqësor për përdoruesit, ka nga ata që përfundojnë duke mos e blerë produktin për një arsye ose një tjetër. Qëllimi atëherë është të zvogëlohet numri i përdoruesve që përfundojnë duke mos konvertuar, gjë që rrit fitimin e përgjithshëm.