Էվոլյուցիոն ալգորիթմներ. ինչ է դա և ինչու են դրանք անհրաժեշտ

Բովանդակություն:

Էվոլյուցիոն ալգորիթմներ. ինչ է դա և ինչու են դրանք անհրաժեշտ
Էվոլյուցիոն ալգորիթմներ. ինչ է դա և ինչու են դրանք անհրաժեշտ
Anonim

Արհեստական բանականության ոլորտում էվոլյուցիոն ալգորիթմը (EA) ընդհանուր բնակչության հաշվարկների ենթաբազմություն է, որը հիմնված է մետահևրիստական օպտիմալացման վրա: EA-ն օգտագործում է այնպիսի մեխանիզմներ, որոնք ոգեշնչված են կենսաբանական զարգացումից, ինչպիսիք են վերարտադրությունը, մուտացիան, վերահամակցումը և ընտրությունը: Էվոլյուցիոն օպտիմալացման ալգորիթմների հարցում թեկնածու լուծումը խաղում է բնակչության մեջ անհատների դերը: Եվ նաև ֆիթնես ֆունկցիան է որոշում պատասխանների որակը։

Էվոլյուցիոն ալգորիթմները հաճախ մոտավոր լուծումներ են ստանում բոլոր տեսակի խնդիրների համար: Որովհետև իդեալականորեն նրանք որևէ ենթադրություն չեն անում հիմքում ընկած ֆիթնեսի լանդշաֆտի վերաբերյալ: Էվոլյուցիոն մոդելավորման և գենետիկական ալգորիթմների համար օգտագործվող մեթոդները սովորաբար սահմանափակվում են միկրոէվոլյուցիոն գործընթացների ուսումնասիրություններով և բջջային փուլերի վրա հիմնված պլանավորման մոդելներով: Իրական EA հավելվածների մեծ մասում հաշվողական բարդությունն արգելող գործոն է:

Իրականումայս խնդիրը կապված է ֆիթնեսի ֆունկցիայի գնահատման հետ: Ֆիթնեսի մոտարկումը այս դժվարությունը հաղթահարելու լուծումներից մեկն է: Այնուամենայնիվ, պարզ թվացող EA-ն կարող է լուծել հաճախ բարդ խնդիրներ: Հետևաբար, հաջորդականության բարդության և խնդրի միջև ուղղակի կապ չի կարող լինել: Ավելի մանրամասն կարելի է գտնել «Էվոլյուցիոն ալգորիթմներ» գրքերում։

Իրականացում

էվոլյուցիոն մոդելավորում և ալգորիթմներ
էվոլյուցիոն մոդելավորում և ալգորիթմներ

Քայլ առաջին՝ պատահականորեն անհատների սկզբնական պոպուլյացիա ստեղծելն է:

Քայլ երկրորդ՝ գնահատել այս խմբի յուրաքանչյուր անհատի համապատասխանությունը (ժամկետային սահմանափակում, բավարար պատրաստվածություն և այլն):

Քայլ երրորդ. կրկնել վերականգնման հետևյալ քայլերը մինչև ավարտը.

  1. Ընտրեք բազմացման համար ամենահարմար մարդկանց (ծնողներին):
  2. Բերեք նոր անհատներ, ովքեր անցել են էվոլյուցիոն ալգորիթմը՝ օգտագործելով խաչմերուկ և մուտացիա՝ սերունդ ստանալու համար:
  3. Գնահատեք նոր մարդկանց անհատական պատրաստվածությունը:
  4. Փոխարինիր ամենաքիչ պիտանի բնակչությանը նրանցով։

Տեսակներ

Գենետիկական ալգորիթմը էվոլյուցիոն հաջորդականություն է, փորձագետների խորհրդատուի ամենահայտնի տեսակը: Խնդրի լուծումը որոնվում է թվերի տողերի տեսքով (ավանդաբար երկուական, չնայած լավագույն ներկայացումները սովորաբար նրանք են, որոնք ավելի շատ են արտացոլվում լուծվող խնդրի մեջ)՝ կիրառելով օպերատորներ, ինչպիսիք են վերահամակցումը և մուտացիան (երբեմն մեկը, որոշ դեպքերում երկուսն էլ։): Փորձագետների այս տեսակը հաճախ օգտագործվում է օպտիմալացման խնդիրներում: Սրա մեկ այլ անուն է ֆետուրա (լատիներենից «ծնունդ»):

  1. Գենետիկ ծրագրավորում. Այն լուծումները ներկայացնում է որպես համակարգչային կոդեր, և դրանց համապատասխանությունը որոշվում է հաշվողական առաջադրանքներ կատարելու ունակությամբ:
  2. Էվոլյուցիոն ծրագրավորում. Նման է էվոլյուցիոն գենետիկական ալգորիթմին, սակայն կառուցվածքը ֆիքսված է, և դրա թվային պարամետրերը կարող են փոխվել։
  3. Ծրագրավորում գենի արտահայտություն. Մշակում է համակարգչային ծրագրեր, բայց ուսումնասիրում է գենոտիպ-ֆենոտիպ համակարգը, որտեղ տարբեր չափերի նախագծերը կոդավորված են ֆիքսված երկարությամբ գծային քրոմոսոմների վրա։
  4. Ռազմավարություն. Աշխատում է իրական թվերի վեկտորների հետ՝ որպես լուծումների ներկայացում։ Սովորաբար օգտագործում է ինքնադապտացվող էվոլյուցիոն մուտացիայի արագության ալգորիթմներ:
  5. Դիֆերենցիալ զարգացում. Վեկտորային տարբերությունների հիման վրա և, հետևաբար, հիմնականում հարմար է թվային օպտիմալացման խնդիրների համար:
  6. Նեյրոէվոլյուցիա. Էվոլյուցիոն ծրագրավորման և գենետիկական ալգորիթմների նման: Բայց վերջիններս արհեստական նեյրոնային ցանցեր են, որոնք նկարագրում են կապերի կառուցվածքն ու քաշը։ Գենոմի կոդավորումը կարող է լինել ուղղակի կամ անուղղակի:

Համեմատություն կենսաբանական գործընթացների հետ

Բազմաթիվ էվոլյուցիոն ալգորիթմների հնարավոր սահմանափակումը գենոտիպի և ֆենոտիպի միջև հստակ տարբերակման բացակայությունն է: Բնության մեջ բեղմնավորված ձվաբջիջը հասունանալու համար ենթարկվում է բարդ գործընթացի, որը հայտնի է որպես էմբրիոգենեզ: Ենթադրվում է, որ այս անուղղակի կոդավորումը գենետիկական որոնումները դարձնում է ավելի հուսալի (այսինքն՝ մահացու մուտացիաների առաջացման ավելի քիչ հավանականություն) և կարող է նաև բարելավել օրգանիզմի զարգանալու ունակությունը: Նման անուղղակի (այլ կերպ ասած.գեներատիվ կամ զարգացող) կոդավորումները նաև թույլ են տալիս էվոլյուցիային օգտագործել շրջակա միջավայրի կանոնավորությունը:

Վերջին աշխատանքները արհեստական սաղմի գենեզի կամ զարգացման համակարգերում փորձում են լուծել այս խնդիրները: Գենի արտահայտությունը ծրագրավորելիս հաջողությամբ ուսումնասիրվում է գենոտիպ-ֆենոտիպ տարածաշրջանը, որտեղ առաջինը բաղկացած է ֆիքսված երկարության գծային բազմածին քրոմոսոմներից, իսկ երկրորդը՝ արտահայտման ծառերից կամ տարբեր չափերի և ձևերի համակարգչային ծրագրերից:

Հարակից տեխնիկա

էվոլյուցիոն ալգորիթմներ
էվոլյուցիոն ալգորիթմներ

Ալգորիթմները ներառում են՝

  1. Մրջյունների գաղութի օպտիմիզացում: Այն հիմնված է այն գաղափարի վրա, որ միջատները սննդամթերք են փնտրում՝ կապվելով ֆերոմոնների հետ՝ ճանապարհներ ձևավորելու համար։ Հիմնականում հարմար է կոմբինատոր օպտիմալացման և գրաֆիկական խնդիրների համար:
  2. Արմատային սլայդերի ալգորիթմ: Ստեղծողին ոգեշնչել է բնության մեջ բույսերի արմատների գործառույթը։
  3. Ալգորիթմ արհեստական մեղուների գաղութների համար. Մեղր մեղուների վարքագծի հիման վրա. Այն հիմնականում առաջարկվում է թվային օպտիմալացման համար և ընդլայնվում է կոմբինատոր, սահմանափակ և բազմաբնույթ խնդիրներ լուծելու համար: Մեղուների ալգորիթմը հիմնված է միջատների կեր փնտրելու վարքագծի վրա: Այն կիրառվել է բազմաթիվ ծրագրերում, ինչպիսիք են երթուղիները և պլանավորումը:
  4. Մասնիկների պարամի օպտիմալացում՝ հիմնված կենդանիների հոտի վարքագծի գաղափարների վրա: Եվ նաև հիմնականում հարմար է թվային գործընթացների առաջադրանքների համար:

Այլ հայտնի մետահևրիստական մեթոդներ

  1. Որսորդական որոնում. Մեթոդ, որը հիմնված է որոշ կենդանիների խմբակային բռնելու վրա, օրինակ՝ գայլերին, որոնքբաշխել իրենց պարտականությունները՝ շրջապատել որսին: Էվոլյուցիոն ալգորիթմի անդամներից յուրաքանչյուրն ինչ-որ կերպ առնչվում է մյուսների հետ։ Սա հատկապես վերաբերում է առաջնորդին: Սա շարունակական օպտիմալացման մեթոդ է, որը հարմարեցված է որպես կոմբինատոր գործընթացի մեթոդ:
  2. Որոնել ըստ չափումների: Ի տարբերություն բնության վրա հիմնված մետահևրիստական մեթոդների, ադապտիվ գործընթացի ալգորիթմը որպես հիմնական սկզբունք չի օգտագործում փոխաբերությունը: Ավելի շուտ, այն օգտագործում է կատարման վրա հիմնված պարզ մեթոդ, որը հիմնված է յուրաքանչյուր կրկնության դեպքում որոնման չափումների հարաբերակցության պարամետրի թարմացման վրա: Firefly ալգորիթմը ներշնչված է այն բանից, թե ինչպես են կայծոռիկները գրավում միմյանց իրենց թարթող լույսով: Սա հատկապես օգտակար է մուլտիմոդալ օպտիմալացման համար:
  3. Փնտրեք ներդաշնակություն: Երաժիշտների վարքագծի գաղափարների հիման վրա. Այս դեպքում էվոլյուցիոն ալգորիթմները կոմբինատոր օպտիմալացման ճանապարհն են:
  4. Գաուսյան ադապտացիա. Տեղեկատվության տեսության հիման վրա: Օգտագործվում է արդյունավետությունը և միջին հասանելիությունը առավելագույնի հասցնելու համար: Էվոլյուցիոն ալգորիթմների օրինակ այս իրավիճակում. էնտրոպիան թերմոդինամիկայի և տեղեկատվության տեսության մեջ:

Memetic

էվոլյուցիոն մոդելավորում
էվոլյուցիոն մոդելավորում

Հիբրիդային մեթոդ՝ հիմնված Ռիչարդ Դոքինսի՝ մեմի գաղափարի վրա։ Այն սովորաբար ընդունում է պոպուլյացիայի վրա հիմնված ալգորիթմի ձև՝ զուգորդված անհատական ուսուցման ընթացակարգերի հետ, որոնք կարող են կատարել տեղական ճշգրտումներ: Շեշտում է խնդրին հատուկ գիտելիքների օգտագործումը և փորձում է կազմակերպել մանրակրկիտ և գլոբալ որոնումները սիներգիստական եղանակով:

ԷվոլյուցիոնԱլգորիթմները էվրիստիկ մոտեցում են խնդիրներին, որոնք չեն կարող հեշտությամբ լուծվել բազմանդամ ժամանակում, ինչպես, օրինակ, դասական NP-կոշտ խնդիրները և ցանկացած այլ բան, որը չափազանց երկար կպահանջի սպառիչ մշակման համար: Անկախ օգտագործման դեպքում դրանք սովորաբար օգտագործվում են կոմբինատոր խնդիրների դեպքում։ Այնուամենայնիվ, գենետիկական ալգորիթմները հաճախ օգտագործվում են այլ մեթոդների հետ միասին՝ գործելով որպես արագ ճանապարհ՝ գտնելու բազմաթիվ օպտիմալ մեկնարկային վայրեր աշխատանքի համար:

Էվոլյուցիոն ալգորիթմի նախադրյալը (հայտնի է որպես խորհրդատու) բավականին պարզ է՝ հաշվի առնելով, որ դուք ծանոթ եք բնական ընտրության գործընթացին: Այն պարունակում է չորս հիմնական քայլ՝

  • նախնականացում;
  • ընտրություն;
  • գենետիկական օպերատորներ;
  • վերջ.

Այս քայլերից յուրաքանչյուրը մոտավորապես համապատասխանում է բնական ընտրության որոշակի ասպեկտին և ապահովում է ալգորիթմների այդ կատեգորիայի մոդուլյարացման հեշտ եղանակներ: Պարզ ասած, EA-ում ամենաուժեղ անդամները գոյատևելու և բազմանալու են, մինչդեռ ոչ պիտանի անդամները կմահանան և չեն նպաստի հաջորդ սերնդի գենոֆոնդին:

Նախնականացում

Ալգորիթմը սկսելու համար նախ պետք է ստեղծեք լուծումների մի շարք: Բնակչությունը կպարունակի կամայական թվով հնարավոր խնդրի հայտարարություններ, որոնք հաճախ կոչվում են անդամներ: Դրանք հաճախ ստեղծվում են պատահականորեն (առաջադրանքի սահմանափակումների շրջանակներում) կամ, եթե որոշ նախնական գիտելիքներ հայտնի են, փորձնականորեն կենտրոնացած են այն ամենի շուրջ, որը համարվում է իդեալական: Կարևոր է, որ բնակչությունն ընդգրկի լուծումների լայն շրջանակ,քանի որ այն ըստ էության գենոֆոնդ է: Հետևաբար, եթե որևէ մեկը ցանկանում է ուսումնասիրել բազմաթիվ տարբեր հնարավորություններ ալգորիթմի շրջանակներում, պետք է ձգտել ունենալ շատ տարբեր գեներ:

Ընտրություն

գենետիկ կոդեր
գենետիկ կոդեր

Հենց բնակչությունը ստեղծվի, նրա անդամներն այժմ պետք է գնահատվեն ըստ ֆիթնեսի ֆունկցիայի: Ֆիթնես ֆունկցիան ընդունում է անդամի բնութագրերը և թվային պատկերացում է տալիս, թե որքանով է համապատասխան անդամը: Դրանք ստեղծելը հաճախ կարող է շատ դժվար լինել: Կարևոր է գտնել լավ համակարգ, որը ճշգրիտ կներկայացնի տվյալները: Սա շատ կոնկրետ է խնդրին։ Այժմ անհրաժեշտ է հաշվարկել բոլոր մասնակիցների համապատասխանությունը և ընտրել լավագույն անդամներին։

Բազմաթիվ նպատակային ֆունկցիաներ

EA-ները կարող են նաև ընդլայնվել այս համակարգերն օգտագործելու համար: Սա որոշ չափով բարդացնում է գործընթացը, քանի որ մեկ օպտիմալ կետ հայտնաբերելու փոխարեն դրանք օգտագործելիս հավաքույթ է ստացվում: Լուծումների ամբողջությունը կոչվում է Պարետոյի սահման և պարունակում է տարրեր, որոնք հավասարապես հարմար են այն իմաստով, որ դրանցից ոչ մեկը չի գերակշռում որևէ մեկին:

Գենետիկական օպերատորներ

Այս քայլը ներառում է երկու ենթաքայլ՝ խաչմերուկ և մուտացիա: Լավագույն տերմիններն ընտրելուց հետո (սովորաբար լավագույն 2-ը, բայց այս թիվը կարող է տարբեր լինել), դրանք այժմ օգտագործվում են ալգորիթմում հաջորդ սերունդ ստեղծելու համար: Կիրառելով ընտրված ծնողների առանձնահատկությունները՝ ստեղծվում են նոր երեխաներ, որոնք որակների խառնուրդ են։ Դա հաճախ կարող է դժվար լինել՝ կախված տվյալների տեսակից, բայց սովորաբար կոմբինատոր խնդիրների դեպքումմիանգամայն հնարավոր է խառնել և դուրս բերել վավեր համակցություններ։

Այժմ անհրաժեշտ է սերունդ ներմուծել նոր գենետիկական նյութ. Եթե այս կարևոր քայլը չկատարվի, գիտնականը շատ արագ կխրվի լոկալ ծայրահեղությունների մեջ և օպտիմալ արդյունքների չհասնի։ Այս քայլը մուտացիա է, և դա արվում է բավականին պարզ՝ երեխաների մի փոքր հատվածին այնպես փոխելով, որ նրանք հիմնականում չեն արտացոլում ծնողների գեների ենթաբազմությունները։ Մուտացիան սովորաբար տեղի է ունենում հավանականորեն, քանի որ երեխայի մոտ այն ստանալու հավանականությունը, ինչպես նաև դրա ծանրությունը որոշվում է բաշխմամբ:

դադարեցում

մոդելավորում և ալգորիթմներ
մոդելավորում և ալգորիթմներ

Ի վերջո, ալգորիթմը պետք է ավարտվի: Դա սովորաբար տեղի է ունենում երկու դեպքում՝ կա՛մ այն հասել է կատարման որոշ առավելագույն ժամանակի, կա՛մ հասել է կատարողականի շեմին: Այս պահին վերջնական լուծումը ընտրվում և վերադարձվում է:

Էվոլյուցիոն ալգորիթմների օրինակ

Այժմ, այս գործընթացի արդյունքը պատկերացնելու համար, դուք պետք է տեսնեք խորհրդատուին գործողության մեջ: Դա անելու համար մենք կարող ենք հիշել, թե ինչպես դինոզավրերի մի քանի սերունդ սովորեցին քայլել (աստիճանաբար տիրապետելով հողին), օպտիմալացնելով իրենց մարմնի կառուցվածքը և կիրառելով մկանային ուժ: Թեև վաղ սերնդի սողունները չէին կարողանում քայլել, խորհրդատուն կարողացավ ժամանակի ընթացքում դրանք զարգացնել մուտացիայի և խաչմերուկի միջոցով քայլելու համար:

Այս ալգորիթմները գնալով ավելի արդիական են դառնում ժամանակակից աշխարհում, քանի որ դրանց վրա հիմնված լուծումներն ավելի ու ավելի են օգտագործվում այնպիսի ոլորտներում, ինչպիսիք են թվային մարքեթինգը, ֆինանսները և այլն:առողջապահություն.

Որտե՞ղ են օգտագործվում EA-ները:

Ավելի լայնորեն, էվոլյուցիոն ալգորիթմներն օգտագործվում են մի շարք ծրագրերում, ինչպիսիք են պատկերների մշակումը, տրանսպորտային միջոցների երթուղին, բջջային կապի օպտիմիզացումը, ծրագրային ապահովման մշակումը և նույնիսկ արհեստական նեյրոնային ցանցի ուսուցումը: Այս գործիքները շատ հավելվածների և կայքերի հիմքն են, որոնք մարդիկ օգտագործում են ամեն օր, ներառյալ Google Քարտեզները և նույնիսկ այնպիսի խաղեր, ինչպիսիք են The Sims-ը: Բացի այդ, բժշկական ոլորտն օգտագործում է EA՝ օգնելու քաղցկեղի բուժման վերաբերյալ կլինիկական որոշումներ կայացնել: Իրականում, էվոլյուցիոն ալգորիթմներն այնքան ամուր են, որ դրանք կարող են օգտագործվել օպտիմիզացման գրեթե ցանկացած խնդիր լուծելու համար:

Մուրի օրենքը

EO-ի աճող տարածվածությունը պայմանավորված է երկու հիմնական գործոնով՝ հասանելի հաշվողական հզորություն և տվյալների մեծ հավաքածուների կուտակում: Առաջինը կարելի է նկարագրել Մուրի օրենքով, որն ըստ էության ասում է, որ համակարգչի հաշվողական հզորության քանակը կրկնապատկվում է մոտավորապես երկու տարին մեկ: Այս կանխատեսումը պահպանվել է տասնամյակներ շարունակ: Երկրորդ գործոնը վերաբերում է տեխնոլոգիայի վրա աճող ապավինմանը, որը թույլ է տալիս հաստատություններին հավաքել աներևակայելի մեծ քանակությամբ տվյալներ, ինչը նրանց թույլ է տալիս վերլուծել միտումները և օպտիմալացնել արտադրանքը:

Ինչպե՞ս կարող են էվոլյուցիոն ալգորիթմներն օգնել շուկայավարներին:

գենետիկ մոդելավորում
գենետիկ մոդելավորում

Շուկայի պայմանները արագ փոխվում են և շատ մրցունակ: Սա ստիպել է մարքեթինգի մենեջերներին մրցել ավելի լավ որոշումներ կայացնելու համար: Հասանելիության ավելացումհաշվողական հզորությունը ստիպել է աշխատողներին օգտագործել EA խնդիրները լուծելու համար:

Կոնվերսիայի օպտիմիզացում

մոդելավորում և գենետիկական ալգորիթմներ
մոդելավորում և գենետիկական ալգորիթմներ

Գլխավոր նպատակներից է կայքի այցելուների մակարդակի բարձրացումը։ Այս խնդիրը հանգում է այն օգտատերերի թվի օպտիմալացմանը, ովքեր անում են այն, ինչ ցանկանում է շուկայավարը: Օրինակ, եթե ընկերությունը վաճառում է դյուրակիր համակարգիչներ, ապա իդեալականը կայքէջի այցելուների քանակի ավելացումն է, ովքեր ի վերջո գնում են ապրանքը: Սա է փոխակերպման տոկոսադրույքի օպտիմալացման էությունը:

Զարմանալիորեն կարևոր կողմերից մեկը օգտատիրոջ միջերեսի ընտրությունն է: Եթե վեբ դիզայնը այնքան էլ հարմար չէ օգտատերերի համար, կան մարդիկ, ովքեր այս կամ այն պատճառով չեն գնում ապրանքը: Այնուհետև նպատակն է նվազեցնել այն օգտատերերի թիվը, ովքեր վերջնականապես չեն փոխակերպում, ինչը մեծացնում է ընդհանուր շահույթը:

Խորհուրդ ենք տալիս: