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.