Geneetiline algoritm on algoritm, mis imiteerib loodusliku valiku protsessi. Need aitavad lahendada optimeerimis- ja otsinguprobleeme. Geneetilised algoritmid on osa suuremast evolutsiooniliste algoritmide klassist. Geneetilised algoritmid imiteerivad looduslikke bioloogilisi protsesse, nagu pärimine, mutatsioon, valik ja ristumine.

Geneetiliste algoritmide kontseptsioon on arvutiteaduses sageli kasutatav otsingutehnika, et leida keerulisi, mitteilmseid lahendusi algoritmilisele optimeerimisele ja otsinguprobleemidele. Geneetilised algoritmid on globaalsed otsinguheuristikud.

Kuidas geneetilised algoritmid töötavad

Lihtsustatult toimib geneetiline algoritm järgmiselt:

  • Alguses genereeritakse juhuslik populatsioon võimalikest lahendustest (isenditest, kromosoomidest).
  • Iga isendi puhul arvutatakse sobivusfunktsioon ehk fitness, mis mõõdab lahenduse kvaliteeti antud probleemis.
  • Valikuprotsessis valitakse järgnevale põlvkonnale isendeid tõenäosuse alusel, mis sõltub nende sobivusest (näiteks ruletivalik, turniirivalik vms).
  • Valitud isendid ristatakse (crossover) ja neile võidakse rakendada mutatsiooni, et tekitada mitmekesisust.
  • Uus populatsioon asendab osa või kogu eelneva populatsiooni ja protsess kordub, kuni saavutatakse peatamiskriteerium (näiteks piisav sobivus või maksimaalne iteratsioonide arv).

Põhikomponendid ja meetodid

  • Esindus (encoding): lahendused võivad olla esitatud binaarsete kromosoomidena, täisarvudena, ujukomadena või otse probleemse kujuna (näiteks permutatsioon graafide ja marsruutide puhul).
  • Fitness: hindamisskala peab peegeldama eesmärki — maksimeerimine või minimiseerimine (vajadusel teisendatakse).
  • Valikumeetodid: ruletivalik (fitness-proportsionaalne), turniirivalik, reastamine (rank selection) ja elitism (parimad säilitatakse).
  • Ristumine (crossover): tavalised variandid on ühepunkti-, kahepunkti- ja ühtlane (uniform) ristumine; permutatsioonipõhistes probleemides kasutatakse spetsiaalseid meetodeid (PMX, OX).
  • Mutatsioon: juhuslike geenide muutmine aitab vältida kohalike optimume jäämist; mutatsioonikiirus on tavaliselt madal, kuid oluline.
  • Termineerimine: peatatakse, kui saavutatud on piisavalt hea lahendus, pole täheldatud paranemist mingi aja jooksul või jõutud max iteratsioonideni.

Parameetrid ja nende tähendus

  • Populatsiooni suurus: suurem populatsioon annab parema otsingumahutavuse, aga on kulukam arvutuslikult.
  • Ristumise tõenäosus (crossover rate): määrab, kui tihti toimub geenide vahetamine; liiga madal aeglustab õppimist, liiga kõrge võib hävitada häid rakke.
  • Mutatsiooni tõenäosus: aitab hoida mitmekesisust; liiga madal viib üleoptimeerumiseni, liiga kõrge muudab otsingu juhuslikuks.
  • Elitism: mõistlik lisada, et parimad lahendused ei kaoks juhuslike operatsioonide tõttu.

Eelised ja piirangud

  • Eelised: heade globaalsete otsinguvõimetega, ei nõua gradientinfo olemasolu, sobivad mittelineaarsetele ja keerukatele otsinguruumidele, paindlikud erinevatele esitustele.
  • Piirangud: võivad nõuda palju arvutusressursse, ei taga absoluutset optimaalsust (leiab sageli ligikaudse parima lahenduse), tundlikud parameetrite valikule ja esindusele.

Kus geneetilisi algoritme kasutatakse

  • Optimeerimisülesanded inseneriteaduses (nt struktuuri- ja disainoptimeerimine).
  • Ajastamis- ja marsruutimisprobleemid (nt tööde järjekord tootmises, logistika).
  • Masinõpe ja hüperparameetrite häälestus.
  • Symbolic regression ja funktsioonide leidmine.
  • Evolutsioonilised strateegiad neurovõrkude arhitektuuri kujundamiseks (neuroevolutsioon).

Praktilised näpunäited

  • Alusta lihtsast esitlusest ja fitness-funktsioonist; keerukuse lisamine samm-sammult.
  • Katsed erinevate parameetritega — ristlused, mutatsioonimäärad ja populatsiooni suurused — aitavad leida tõhusa konfiguratsiooni.
  • Kombineeri geneetilisi algoritme teiste heuristikatega (nt lokaalsed otsingumeetodid), et parandada tulemuste stabiilsust.
  • Jälgi mitmekesisust populatsioonis; kui varane kokkukuivamine tekib, suurenda mutatsiooni või lisa mitmekesise initsiatsiooni mehhanisme.

Lõppsõna

Geneetilised algoritmid on võimas ja mitmekülgne tööriist keerukate optimeerimis- ja otsinguprobleemide lahendamiseks. Kuigi need ei pruugi alati anda absoluutset globaalset optimaali, pakuvad nad sageli praktiliselt head ja stabiilseid lahendusi olukordades, kus traditsioonilised meetodid ebaõnnestuvad või on liiga piiravad. Õige esinduse, sobivusfunktsiooni ja häälestatud parameetrite kombinatsiooniga saab geneetiliste algoritmidega lahendada väga erinevaid reaalse maailma ülesandeid.