part of a series on |
artificial intelligence (ai) |
---|
![]() |
evolutionary algorithm (tsz. evolutionary algorithms)
Az evolúciós algoritmusok (EA) a természetes szelekció és a Darwin-féle evolúció elvein alapuló metaheurisztikus keresési és optimalizálási módszerek. Ezek az algoritmusok az élővilágban megfigyelhető evolúciós folyamatokat utánozzák – mint például a szaporodás, mutáció, kiválasztás és szelekció – hogy megtalálják a legjobb vagy közel optimális megoldásokat összetett problémákra.
Az EA-k rendkívül hasznosak nemlineáris, nem differenciálható, nagydimenziós, vagy nem jól strukturált problémák esetén, ahol klasszikus optimalizálási módszerek nem alkalmazhatók hatékonyan.
Az evolúciós algoritmusok négy fő komponensre épülnek:
Az egyedek (megoldások) gyakran bitláncokként, vektorokként, vagy fa-struktúrákként jelennek meg. Például:
10101011
A fitneszfüggvény határozza meg, hogy egy adott megoldás mennyire jó. Ez a legkritikusabb komponens, mert az egész evolúció ezt optimalizálja.
Példák:
A cél lehet maximalizálás vagy minimalizálás.
Két szülő kombinációja, hogy új megoldásokat hozzunk létre.
Példa (egypontos):
Szülő 1: 101|0110
Szülő 2: 110|1001
Gyermek: 1011001
Véletlenszerű, kis módosítás az egyeden, hogy változatosságot vigyünk a populációba.
Példa:
Eredeti: 1011001
Mutált: 1001001
(megfordult az egyik bit)
Típus | Rövid leírás |
---|---|
Genetikus algoritmus (GA) | A legelterjedtebb EA. Klasszikus bitláncos vagy vektoros reprezentációval dolgozik. |
Evolúciós stratégia (ES) | Kiemelten kezeli a paraméterek adaptív mutációját. |
Diverzifikált keresés (DE – Differential Evolution) | Valós számokkal dolgozik, differenciális módon generál új egyedeket. |
Genetikus programozás (GP) | Fa-struktúrákkal dolgozik, pl. kódot vagy képleteket generál. |
1. Inicializáld a populációt P
2. Míg nem teljesül a megállási feltétel:
a. Számítsd ki a fitneszt minden egyedre
b. Válaszd ki a szülőket szelekcióval
c. Alkalmazz keresztezést és mutációt → új egyedek
d. Hozz létre új populációt
3. Térj vissza a legjobb egyeddel
✅ Nem szükséges derivált vagy folytonosság ✅ Képes kilépni lokális optimumokból ✅ Jó robusztusság, általános célú optimalizálás ✅ Párhuzamosítható
❌ Lassú lehet ❌ Paraméterérzékeny (pl. populációméret, mutációs ráta) ❌ Nem garantált a globális optimum megtalálása ❌ Fitneszfüggvény-tervezés nehézsége
Az evolúciós algoritmusok inspirációjukat a természetből merítik, és egyedi módon oldanak meg komplex keresési, optimalizálási problémákat. Bár nem garantálnak tökéletes megoldást, sok esetben képesek jó közelítő megoldásokat találni olyan problémákra is, ahol más módszerek csődöt mondanak.
Hatékonyságuk kulcsa a populációalapú keresés, a genetikai variáció, valamint a fitnesz-alapú szelekció.