A genetikai algoritmus olyan algoritmus, amely a természetes szelekció folyamatát utánozza. Segítségükkel optimalizálási és keresési problémákat lehet megoldani. A genetikai algoritmusok az evolúciós algoritmusok nagyobb osztályának részét képezik. A genetikai algoritmusok utánozzák a természetes biológiai folyamatokat, például az öröklődést, a mutációt, a szelekciót és a keresztezést.
A genetikus algoritmusok fogalma egy olyan keresési technika, amelyet az informatikában gyakran használnak arra, hogy összetett, nem nyilvánvaló megoldásokat találjanak algoritmikus optimalizálási és keresési problémákra. A genetikai algoritmusok globális keresési heurisztikák.
Működési elv
Röviden a genetikai algoritmus egy populáció alapú, iteratív optimalizáló módszer. Az alaplépések:
- Inicializálás: létrehozunk egy kezdeti populációt (megoldások halmaza), általában véletlenszerűen.
- Értékelés (fitnesz): minden egyedet egy fitneszfüggvénnyel értékelünk, amely megmondja, mennyire jó az adott megoldás a cél szempontjából.
- Szelekció: kiválasztjuk a kiválóbb egyedeket párosításra (pl. rulettkerék, torna-választás, rangsor alapú szelekció).
- Keresztezés (crossover): a kiválasztott párokból új egyedeket hozunk létre, kombinálva szülőik jellemzőit (például egypontos, kétpontos vagy uniform keresztezéssel).
- Mutáció: kis, véletlenszerű változtatásokat végzünk az utódokon, hogy fenntartsuk a genetikai diverzitást.
- Reprodukció/Replace: kialakítjuk a következő generációt (teljes cserével vagy részleges elitizmussal, amely megtartja a legjobbat).
- Leállítás: a folyamatot egy előre meghatározott feltételig futtatjuk (például generációk száma, elért fitnesz, vagy stagnálás).
Reprezentációk és fitnesz
A megoldások kódolása (kromoszóma-reprezentáció) kritikus:
- Bináris kódolás: egyszerű és gyakori (0/1 vektorok).
- Valós értékű (floating-point) kódolás: folyamatos optimalizálási problémákhoz jobb.
- Permutációs kódolás: például ütemezési feladatokhoz vagy TSP-hez (útvonalak reprezentálása).
A fitneszfüggvényt úgy kell megválasztani, hogy tükrözze a feladat célját, és lehetőleg sima, jól differenciálható rangsort biztosítson a populáció számára.
Gyakori operátorok és beállítások
- Szelekciós módszerek: roulette wheel, tournament selection, rank selection.
- Keresztezés típusai: egypontos, kétpontos, többpontos, uniform. Valós értékű kromoszómáknál aritmetikai vagy BLX-algoritmusok.
- Mutáció: bináris flip, valósértékű zaj hozzáadása (Gaussian), permutációs swap.
- Elitizmus: a legjobb egyed(ek) megőrzése a következő generációra, hogy ne veszítsük el a legjobb eddigi megoldásokat.
- Paraméterek: populációméret, keresztezési ráta, mutációs ráta, generációk száma — ezek finomhangolása kulcsfontosságú a jó működéshez.
Előnyök és korlátok
- Előnyök: képesek nemlineáris, többcsúcsú (multimodális) felületeken globális keresésre; párhuzamosíthatók; nem igényelnek deriváltakat; jól kombinálhatók más módszerekkel (pl. lokális kereséssel).
- Korlátok: számításigényesek lehetnek nagy populáció és sok generáció esetén; érzékenyek a paraméterekre; hajlamosak a prématur konvergenciára (korai beesés helyi optimumba).
Alkalmazások
Genetikai algoritmusokat sok területen alkalmaznak, például:
- Útvonaltervezés és TSP (utazó ügynök probléma)
- Ütemezés, erőforrás-allokáció
- Funkcióoptimalizálás, paraméterhangolás
- Gépi tanulás: hiperparaméter-optimalizálás, neurális hálók topológiájának keresése
- Műszaki tervezés: formaoptimalizálás, aerodinamikai paraméterek
- Képfeldolgozás és jelfeldolgozás: szűrők, jellemzők kiválasztása
Gyakorlati tippek
- Általában érdemes kombinálni a GA-t lokális kereséssel (memetic algoritmus), hogy gyorsabban finomítsuk a jó megoldásokat.
- Tuning: használj kísérleti tervezést vagy automatizált keresést (pl. grid/random search) a paraméterekhez.
- Figyelj a diverzitásra: ha túl kevés, növeld a mutációs rátát vagy a populáció méretét; ha túl sok, csökkentsd a mutációt vagy növeld a szelekciós nyomást.
Egyszerű pszeudokód
Inicializálj populációt P véletlenszerű egyeddel Értékeld ki P minden egyedét fitnesz szerint Amíg (lezárási feltétel nem teljesül): Válassz szülőkat P-ből Alkalmazz crossovert és mutációt utódok létrehozásához Értékeld ki az utódokat Alkossd meg a következő generációt (esetleg elitizmussal) Visszaadja a legjobb egyedet
Összefoglalva, a genetikai algoritmusok rugalmas, természet ihlette eszközök összetett optimalizálási problémák megoldására. Helyes kódolással, jól megválasztott fitneszfüggvénnyel és paraméterhangolással hatékony, gyakran versenyképes megoldásokat adnak a mérnöki, tudományos és üzleti alkalmazások széles körében.

