V oblasti umělé inteligence je evoluční algoritmus (EA) podmnožinou výpočtů celkové populace založených na metaheuristické optimalizaci. EA využívá mechanismy inspirované biologickým vývojem, jako je reprodukce, mutace, rekombinace a selekce. Kandidátní řešení v problému evolučních optimalizačních algoritmů hraje roli jednotlivců v populaci. A také fitness funkce 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ě nevytvářejí žádné předpoklady o základním prostředí fitness. Metody používané pro evoluční modelování a genetické algoritmy se obvykle omezují na studium mikroevolučních procesů a plánovací modely založené na buněčných stádiích. Ve většině skutečných aplikací EA je výpočetní složitost nepřípustným faktorem.
Ve skutečnostitento problém souvisí s odhadem fitness funkce. Aproximace fitness je jedním z řešení, jak překonat tento problém. Zdánlivě jednoduchý EA však dokáže vyřešit často složité problémy. Proto nemůže existovat přímý vztah mezi složitostí sekvence a problémem. Více podrobností lze nalézt v knihách "Evoluční algoritmy".
Implementace
Prvním krokem je vytvoření počáteční populace náhodně.
Krokem dva je posouzení vhodnosti každého jednotlivce v této skupině (časový limit, dostatečná připravenost atd.).
Krok tři – opakujte následující regenerační kroky až do konce:
- Vyberte nejvhodnější lidi pro chov (rodiče).
- Přiveďte nové jedince, kteří prošli evolučním algoritmem pomocí křížení a mutací, abyste získali potomky.
- Posuďte individuální zdatnost nových lidí.
- Nahraďte jimi nejméně vhodnou populaci.
Typy
Genetic Algorithm je evoluční sekvence, nejoblíbenější typ expertního poradce. Řešení problému se hledá ve formě řetězců čísel (tradičně binárních, i když nejlepší reprezentace jsou obvykle ty, které se více odrážejí v řešeném problému) aplikací operátorů, jako je rekombinace a mutace (někdy jeden, v některých případech oba). Tento typ Expert Advisor se často používá při optimalizačních problémech. Jiný název pro toto je fetura (z latiny pro „narození“):
- Genetické programování. Představuje řešení jako počítačové kódy a jejich vhodnost je určena jejich schopností provádět výpočetní úlohy.
- Evoluční programování. Podobné jako u evolučního genetického algoritmu, ale struktura je pevná a její číselné parametry se mohou měnit.
- 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 na lineárních chromozomech s pevnou délkou.
- Strategie. Pracuje s vektory reálných čísel jako reprezentacemi řešení. Obvykle používá samoadaptivní algoritmy evoluční mutace.
- Rozdílový rozvoj. Založeno na vektorových rozdílech, a proto vhodné především pro numerické optimalizační problémy.
- Neuroevoluce. Podobně jako evoluční programování a genetické algoritmy. Ale ty poslední jsou umělé neuronové sítě, popisující strukturu a váhu 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 rozlišení mezi genotypem a fenotypem. V přírodě prochází oplodněné vajíčko složitým procesem známým jako embryogeneze, aby se stalo zralým. Předpokládá se, že toto nepřímé kódování činí genetické vyhledávání spolehlivějším (tj. s menší pravděpodobností způsobí fatální mutace) a může také zlepšit schopnost organismu se vyvíjet. Takové nepřímé (jinými slovy,generativní nebo vývojové) kódování také umožňuje evoluci využívat pravidelnost v prostředí.
Nedávné práce v oblasti umělé embryogeneze nebo vývojových systémů se snaží tyto problémy řešit. Při programování genové exprese je úspěšně prozkoumána oblast genotyp-fenotyp, kde první sestává z lineárních multigenový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
Algoritmy zahrnují:
- Optimalizace mravenčí kolonie. Vychází z myšlenky, že hmyz hledá potravu tak, že se spojuje s feromony a vytváří si cesty. Vhodné především pro kombinatorickou optimalizaci a problémy s grafy.
- Kořenový posuvný algoritmus. Tvůrce se inspiroval funkcí kořenů rostlin v přírodě.
- Algoritmus pro umělá včelstva. Na základě chování včel. Je primárně navržen pro numerickou optimalizaci a rozšířen o řešení kombinatorických, omezených a vícecílových problémů. Včelí algoritmus je založen na chování hmyzu při hledání potravy. Byl použit v mnoha aplikacích, jako je směrování a plánování.
- Optimalizace roje částic – na základě nápadů na chování stád zvířat. A také primárně vhodný pro úlohy numerických procesů.
Další oblíbené metaheuristické metody
- Lovecké vyhledávání. Metoda založená na skupinovém odchytu určitých zvířat, jako jsou například vlci, kteřírozdělit své povinnosti tak, aby obklíčili kořist. Každý z členů evolučního algoritmu se nějakým způsobem vztahuje k ostatním. To platí zejména pro vůdce. Jedná se o kontinuální optimalizační metodu upravenou jako kombinatorická procesní metoda.
- Vyhledávání podle měření. Na rozdíl od metaheuristických metod založených na přírodě nepoužívá algoritmus adaptivního procesu metaforu jako svůj hlavní princip. Spíše používá jednoduchou metodu orientovanou na výkon založenou na aktualizaci parametru poměru dimenze vyhledávání při každé iteraci. Algoritmus Firefly je inspirován tím, jak se světlušky navzájem přitahují svým blikajícím světlem. To je užitečné zejména pro multimodální optimalizaci.
- Hledejte harmonii. Na základě představ o chování hudebníků. V tomto případě jsou cestou ke kombinatorické optimalizaci evoluční algoritmy.
- Gaussova adaptace. Na základě teorie informace. Používá se k maximalizaci výkonu a průměrné dostupnosti. Příklad evolučních algoritmů v této situaci: entropie v termodynamice a teorii informace.
Memetic
Hybridní metoda založená na myšlence Richarda Dawkinse o meme. Obvykle má podobu algoritmu založeného na populaci kombinovaného s individuálními učebními postupy schopnými provádět místní upřesnění. Klade důraz na využití znalostí specifických pro daný problém a pokouší se synergickým způsobem organizovat jemnozrnné 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 NP-těžké problémy a cokoli jiného, co by trvalo příliš dlouho, než by se dalo vyčerpávajícím způsobem zpracovat. Při samostatném použití se obvykle používají pro kombinatorické problémy. Genetické algoritmy se však často používají v tandemu s jinými metodami a fungují jako rychlý způsob, jak najít několik optimálních výchozích míst pro práci.
Premisa evolučního algoritmu (známého jako poradce) je poměrně jednoduchá vzhledem k tomu, že jste obeznámeni s procesem přirozeného výběru. Obsahuje čtyři hlavní kroky:
- initialization;
- choice;
- genetické operátory;
- konec.
Každý z těchto kroků zhruba odpovídá určitému aspektu přirozeného výběru a poskytuje snadné způsoby modularizace dané kategorie algoritmů. Jednoduše řečeno, v EA nejschopnější členové přežijí a rozmnoží se, zatímco nevhodní členové zemřou a nebudou přispívat do genofondu nové generace.
Inicializace
Abyste mohli spustit algoritmus, musíte nejprve vytvořit sadu řešení. Populace bude obsahovat libovolný počet možných problémových prohlášení, často označovaných jako členové. Často jsou generovány náhodně (v rámci omezení daného úkolu) nebo, pokud jsou známy nějaké předchozí znalosti, předběž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 je to v podstatě genofond. Pokud tedy někdo chce prozkoumat mnoho různých možností v rámci algoritmu, měl by se snažit mít mnoho různých genů.
Volba
Jakmile byla populace vytvořena, musí být její členové nyní vyhodnoceni podle funkce fitness. Funkce fitness přebírá charakteristiky člena a poskytuje číselnou reprezentaci toho, jak je daný člen fit. Jejich vytvoření může být často velmi obtížné. Je důležité najít dobrý systém, který přesně zobrazuje data. To je velmi specifické pro daný problém. Nyní je nutné spočítat vhodnost všech účastníků a vybrat některé z nejlepších členů.
Funkce s více cíli
EA lze také rozšířit o použ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á množina. Sada řešení se nazývá Paretova hranice a obsahuje prvky, které jsou stejně vhodné v tom smyslu, že žádné z nich nedominuje žádnému jinému.
Genetické operátory
Tento krok zahrnuje dva dílčí kroky: křížení a mutaci. Po výběru nejlepších výrazů (obvykle 2 nejlepších, ale toto číslo se může lišit) jsou nyní použity k vytvoření další generace v algoritmu. Aplikací vlastností vybraných rodičů vznikají nové děti, které jsou směsí vlastností. To může být často obtížné v závislosti na typu dat, ale obvykle v kombinatorických problémechje docela možné míchat a vydávat platné kombinace.
Nyní je nutné zavést do generace nový genetický materiál. Pokud tento důležitý krok neučiní, vědec velmi rychle uvízne v lokálních extrémech a nedosáhne optimálních výsledků. Tento krok je mutace, a to docela jednoduše, změna malé části dětí tak, že převážně neodrážejí podskupiny genů rodičů. Mutace se obvykle vyskytuje pravděpodobnostně, protože pravděpodobnost, že ji dítě dostane, stejně jako její závažnost, je určena distribucí.
Ukončení
Nakonec musí algoritmus skončit. K tomu obvykle dochází ve dvou případech: buď dosáhl určité maximální doby provádění, nebo dosáhl prahu výkonu. V tomto okamžiku je vybráno a vráceno konečné řešení.
Příklad evolučních algoritmů
Nyní, abyste ilustrovali výsledek tohoto procesu, musíte vidět poradce v akci. K tomu si můžeme připomenout, jak se několik generací dinosaurů naučilo chodit (postupně ovládat zemi), optimalizovat stavbu svého těla a uplatňovat svalovou sílu. I když raná generace plazů neuměla chodit, poradce je dokázal postupem času vyvinout mutací a křížením do formy, která by mohla chodit.
Tyto algoritmy jsou v moderním světě stále relevantnější, protože řešení na nich založená se stále více používají v odvětvích, jako je digitální marketing, finance azdravotní péče.
Kde se používají EA?
V širším měřítku se evoluční algoritmy používají v široké řadě aplikací, jako je zpracování obrazu, směrování vozidel, optimalizace mobilní komunikace, vývoj softwaru a dokonce i trénování umělých neuronových sítí. Tyto nástroje jsou základem mnoha aplikací a webů, které lidé denně používají, včetně Map Google a dokonce i her jako The Sims. Kromě toho lékařská oblast využívá EA k tomu, aby pomáhala přijímat klinická rozhodnutí týkající se léčby rakoviny. Ve skutečnosti jsou evoluční algoritmy tak robustní, že je lze použít k řešení téměř jakéhokoli optimalizačního problému.
Mooreův zákon
Rostoucí prevalence EO je způsobena dvěma hlavními faktory: dostupným výpočetním výkonem a akumulací velkých souborů dat. První lze popsat Moorovým zákonem, který v podstatě říká, že množství výpočetního výkonu v počítači se zdvojnásobí přibližně každé dva roky. Tato předpověď platí po celá desetiletí. Druhý faktor souvisí s rostoucí závislostí na technologii, která institucím umožňuje 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?
Tržní podmínky se rychle mění a jsou velmi konkurenční. To donutilo marketingové manažery soutěžit o lepší rozhodování. Zvýšení dostupnéhovýpočetní výkon vedl pracovníky k používání EA k řešení problémů.
Optimalizace konverzí
Jedním z hlavních cílů je zvýšit návštěvnost webu. Tento problém se scvrkává na optimalizaci počtu uživatelů, kteří dělají to, co obchodník chce. Pokud například firma prodává notebooky, ideální je zvýšit počet návštěvníků webu, kteří si produkt nakonec koupí. 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 web design není příliš uživatelsky přívětivý, najdou se tací, kteří si produkt z toho či onoho důvodu nekoupí. Cílem je pak snížit počet uživatelů, kteří nakonec neprovedou konverzi, což zvýší celkový zisk.