Evoluční algoritmy: co to je a k čemu jsou

V oblasti umělá inteligence evoluční algoritmus (EA) je podmnožinou výpočtu celkové populace na základě metaheuristické optimalizace. EA používá mechanismy inspirované biologickým vývojem, jako je reprodukce, mutace, rekombinace a selekce. Kandidátské řešení v problému evolučních optimalizačních algoritmů hraje roli jednotlivců v populaci. A také funkce fitness určuje kvalitu odpovědí.

Evoluční algoritmy často dobře aproximují řešení všech typů problémů. Protože v ideálním případě nedělají žádné předpoklady o základním fitness prostředí. Metody používané pro evoluční modelování a genetické algoritmy jsou obvykle omezeny na studie mikroevolučních procesů a modely plánování založené na buněčných krocích. Ve většině aplikací poradců v reálném světě je výpočetní složitost faktorem, který zakazuje.

Ve skutečnosti tento problém souvisí s hodnocením fitness funkce. Fitness aproximace je jedním z řešení k překonání této obtížnosti. Zdánlivě jednoduchá EA však může vyřešit často složité problémy. Proto nemůže existovat žádný přímý vztah mezi složitostí sekvence a problémem. Podrobněji si můžete přečíst v knihách evoluční algoritmy.

Realizace

evoluční modelování a algoritmy

Prvním krokem je vytvoření počáteční populace z jednotlivců v náhodném pořadí.

Krok dva-posouzení vhodnosti každého jednotlivce v této skupině (časový limit, dostatečná připravenost atd.). d.).

Krok tři-opakování následujících bodů regenerace před dokončením:

  1. Vybrat nejvhodnější lidi pro chov (rodiče).
  2. Odvodit nové jedince, kteří prošli evolučním algoritmem pomocí křížení a mutace, aby získali potomky.
  3. Posoudit individuální vhodnost nových lidí.
  4. Nahradit nejméně přizpůsobenou populaci jimi.

Typy

Genetický algoritmus je evoluční sekvence, nejoblíbenější typ poradce. Hledat řešení problémů do jako řetězce čísel (tradičně binárních, i když nejlepší reprezentace jsou obvykle ty, které odrážejí více v řešeném problému) použitím operátorů, jako je rekombinace a mutace (někdy jednoho, v jednotlivých případech obou). Tento typ poradce se často používá v optimalizačních problémech. Další název pro toto je fetura (z latinského "narození"):

  1. Genetické programování. V něm jsou řešení prezentována ve formě počítačových kódů a jejich vhodnost je určena schopností provádět výpočetní úkoly.
  2. Evoluční programování. Podobně jako evolučně genetický algoritmus, ale struktura je pevná a její numerické parametry se mohou měnit.
  3. Programování genové exprese. Vyvíjí počítačové aplikace, ale zkoumá systém genotyp-fenotyp, kde jsou projekty různých velikostí kódovány v lineárních chromozomech s pevnou délkou.
  4. Strategie. Pracuje s vektory reálných čísel jako reprezentace řešení. Obvykle používá samoadaptivní evoluční algoritmy rychlosti mutace.
  5. Diferenciální vývoj. Vytvořeno na základě vektorových rozdílů, a proto je primárně vhodné pro problémy numerické optimalizace.
  6. Neuroevoluce. Podobně jako evoluční programování a genetické algoritmy. Posledně jmenované jsou však umělé neuronové sítě, které popisují strukturu a hmotnost spojení. Kódování genomu může být přímé nebo nepřímé.

Srovnání s biologickými procesy

Možným omezením mnoha evolučních algoritmů je nedostatek jasného rozdílu mezi genotypem a fenotypem. V přírodě oplodněné vajíčko prochází složitým procesem známým jako embryogeneze, aby se stalo zralým. Toto nepřímé kódování je považováno za spolehlivější genetické vyhledávání (tj. Taková nepřímá (aka generativní nebo vývojová) kódování také umožňují evoluci využívat pravidelnost v životní prostředí.

Nejnovější práce v oblasti umělé embryogeneze nebo vývojového systému se snaží tyto problémy vyřešit. Programování genové exprese úspěšně zkoumá oblast genotypu a fenotypu, kde první sestává z lineárních multigenních chromozomů pevné délky a druhý z mnoha expresních stromů nebo počítačových programů různých velikostí a tvarů.

Související techniky

evoluční algoritmy

Algoritmy zahrnují:

  1. Optimalizace kolonie mravenců. Je založen na myšlenkách hledání potravy hmyzem prostřednictvím spojení s feromony k vytvoření cest. Primárně vhodné pro kombinatorickou optimalizaci a problémy s grafy.
  2. Algoritmus kořenového běžce. Tvůrce byl inspirován funkcí kořenů rostlin v přírodě.
  3. Algoritmus umělých včelstev. Založeno na chování včel. Primárně navrženo pro numerickou optimalizaci a rozšířeno tak, aby řešilo kombinatorické, omezené a víceúčelové problémy. Algoritmus včel je založen na chování krmení hmyzem. Byl použit v mnoha aplikacích, jako je směrování a plánování.
  4. Optimalizace roje částic — na základě myšlenek chování stáda zvířat. A je také primárně vhodný pro problémy numerického procesu.

Jiné populační metaheuristické metody

  1. Lovecké vyhledávání. Metoda založená na skupinovém rybolovu některými zvířaty, jako jsou například vlci, kteří rozdělují své povinnosti, aby obklopili kořist. Každý z členů evolučního algoritmu se vztahují k jiným způsobem. To platí zejména pro vůdce. Jedná se o metodu kontinuální optimalizace přizpůsobenou jako způsob kombinatorického procesu.
  2. Hledání podle měření. Na rozdíl od metaheuristických metod založených na přírodě algoritmus adaptivních procesů nepoužívá metaforu jako základní princip. Spíše používá jednoduchou metodu zaměřenou na výkon založenou na aktualizaci parametru poměru dimenze vyhledávání v každé iteraci. Algoritmus Firefly je inspirován chováním světlušek, které se navzájem přitahují blikajícím světlem. To je zvláště užitečné pro multimodální optimalizaci.
  3. Hledání harmonie. Je založen na myšlenkách chování hudebníků. V tomto případě jsou evoluční algoritmy způsobem, který je vhodný pro kombinatorickou optimalizaci.
  4. Gaussova adaptace. Na základě teorie informací. Používá se k maximalizaci výkonu a průměrné kondice. Příklad evolučních algoritmů v dané situaci: entropie v termodynamice a teorii informací.

Memetic

evoluční modelování

Hybridní metoda založená na myšlence Richarda Dawkinse na meme. Obvykle má formu algoritmu založeného na populaci v kombinaci s individuálními tréninkovými postupy schopnými provádět místní zdokonalení. Zdůrazňuje využití znalostí specifických pro problémy a snaží se synergickým způsobem organizovat sekané a globální vyhledávání.

Evoluční algoritmy jsou heuristickým přístupem k problémům, které nelze snadno vyřešit v polynomiálním čase, jako jsou klasicky složité problémy NP a cokoli jiného, co bude trvat příliš mnoho pro vyčerpávající zpracování. Při samostatném použití se obvykle používají pro kombinatorické úkoly. Genetické algoritmy se však často používají v tandemu s jinými metodami, které fungují jako rychlý způsob nalezení více optimálních počátečních míst pro provoz.

Předpoklad evolučního algoritmu (známého jako poradce) je poměrně jednoduchý, protože jste obeznámeni s procesem přirozeného výběru. Obsahuje čtyři hlavní fáze:

  • inicializace;
  • výběr;
  • genetičtí operátoři;
  • dokončení.

Každý z těchto kroků zhruba odpovídá určitému aspektu přirozeného výběru a poskytuje jednoduché způsoby modulární implementace této kategorie algoritmů. Jednoduše řečeno, v EA přežijí a rozmnožují se přizpůsobivější členové, zatímco nevhodní účastníci zemřou a nepřispějí k genofondu následujících generací.

Inicializace

Chcete-li začít algoritmus, musíte nejprve vytvořit soubor řešení. Populace bude obsahovat libovolný počet možných řešení problému, často označovaných jako účastníci. Často jsou vytvářeny náhodně (v rámci omezení úkolu) nebo, pokud jsou známy některé předchozí znalosti, jsou orientačně soustředěny kolem toho, co je považováno za ideální. Je důležité, aby populace pokrývala širokou škálu řešení, protože v podstatě představuje genový fond. Pokud je tedy třeba v rámci algoritmu prozkoumat mnoho různých možností, je třeba se snažit mít mnoho různých genů.

Výběr

genetické kódy

Jakmile je populace vytvořena, musí být její členové nyní hodnoceni podle funkce fitness. Fitness funkce přijímá charakteristiky člena a poskytuje numerickou reprezentaci toho, jak životaschopná je. Jejich vytvoření může být často velmi obtížné. Je důležité najít dobrý systém, který přesně představuje data. To je velmi specifické pro problém. Nyní je nutné vypočítat vhodnost všech účastníků a vybrat část nejlepších členů.

Více cílových funkcí

Poradci mohou být také rozšířeni o využití těchto systémů. To proces poněkud komplikuje, protože místo identifikace jednoho optimálního bodu se při jejich použití získá sada. Množina řešení se nazývá Paretova hranice a obsahuje prvky, které jsou stejně vhodné v tom smyslu, že žádný z nich dominuje žádnému jinému.

Genetičtí operátoři

Tento krok zahrnuje dva dílčí kroky: crossover a mutaci. Po výběru nejlepších členů (obvykle horní 2, ale toto číslo se může lišit) se nyní používají k vytvoření nové generace v algoritmu. Použitím charakteristik vybraných rodičů jsou vytvořeny nové děti, které jsou směsí kvalit. To může být často obtížné v závislosti na datovém typu, ale obvykle je v kombinatorických úkolech docela možné kombinovat a vydávat platné kombinace.

Nyní je třeba do generace zavést nový genetický materiál. Pokud ne tohoto důležitého krok, pak se vědec velmi rychle uvízne v místních extrémech a nedosáhne optimálních výsledků. Tento krok je mutace a je poměrně jednoduchý, mění malou část dětí způsobem, který přednostně neodráží podmnožiny rodičovských genů. Mutace se obvykle vyskytuje pravděpodobněji, protože možnost, že ji dítě dostane, a její závažnost jsou určeny distribucí.

Zastavení

simulace a algoritmy

Nakonec by měl algoritmus skončit. K tomu obvykle dochází ve dvou případech: buď dosáhl určité maximální doby běhu, nebo prahové hodnoty výkonu. V tomto okamžiku je konečné řešení vybráno a vráceno.

Příklad evolučních algoritmů

Pro ilustraci výsledku tohoto procesu je nyní nutné zkontrolovat poradce v akci. Za tímto účelem si můžeme vzpomenout, jak se několik generací dinosaurů naučilo chodit (postupně zvládat zemi), optimalizovat strukturu svého těla a aplikovat svalové síly. Přestože plazi rané generace nemohli chodit, poradce je dokázal časem vyvinout mutací a přechodem do formy schopné chůze.

Tyto algoritmy jsou v dnešním světě stále důležitější, protože řešení založená na nich se stále více používají v průmyslových odvětvích, jako je digitální marketing, finance a zdravotní péče.

Kde se používají EA?

V širším smyslu se evoluční algoritmy používají v nejrůznějších aplikace, jako je zpracování obrazu, směrování vozidel, optimalizace mobilní komunikace, vývoj softwaru a dokonce i učení umělých neuronových sítí. Tyto nástroje jsou jádrem mnoha aplikací a webových stránek, které lidé denně používají, včetně Map Google a dokonce i her jako The Sims. Kromě toho lékařská oblast používá EA k pomoci při klinickém rozhodování o léčbě rakoviny. Evoluční algoritmy jsou ve skutečnosti tak robustní, že je lze použít k řešení téměř všech optimalizačních problémů.

Mooreův Zákon

Rostoucí prevalence EO je způsobena dvěma hlavními faktory: dostupným výpočetním výkonem a hromaděním velkých datových souborů. První může být popsán Mooreovým zákonem, který v podstatě říká, že množství výpočetního výkonu počítače se zdvojnásobuje přibližně každé dva roky. Tato předpověď trvá desítky let. Druhým faktorem je rostoucí závislost na technologii, která umožňuje institucím shromažďovat neuvěřitelně velké množství dat, což jim umožňuje analyzovat trendy a optimalizovat produkty.

Jak mohou evoluční algoritmy pomoci obchodníkům?

genetické modelování

Tržní podmínky se rychle mění a jsou velmi konkurenceschopné. To vedlo marketingové manažery k soupeření o lepší rozhodování. Zvýšení dostupného výpočetního výkonu vedl pracovníky k použití EA k řešení problémů.

Optimalizace konverze

simulace a genetické algoritmy

Jedním z hlavních cílů je zvýšit návštěvnost webu. Tento problém spočívá v optimalizaci počtu uživatelů, kteří dělají, co obchodník chce. Pokud například společnost prodává notebooky, je ideální zvýšit počet návštěvníků webu, kteří produkt nakonec zakoupí. To je podstata optimalizace konverzního poměru.

Jedním z překvapivě důležitých aspektů je výběr uživatelského rozhraní. Pokud webový design není pro uživatele příliš uživatelsky přívětivý, existují ty, které nakonec produkt z nějakého důvodu nekupují. Cílem je pak snížit počet uživatelů, kteří nakonec nepřevádějí, což zvyšuje celkový zisk.

Články na téma