Geneettiset algoritmit ovat luonnolliselle valinnalle pohjautuvaa evoluutiota ja adaptaatiota kuvaavia optimointimenetelmiä. Käytännössä ne ovat heuristisia – kokemuksesta oppivia – ja käyttämällä paranevia hakumetodeja. Luonnossa evoluutiota: geeniperimän sopeutumista vallitseviin olosuhteisiin, tapahtuu luonnonvalinnan, jälkeläisten erilaisuuden ja vanhempien ominaisuuksien perimisen kautta. Geneettiset algoritmit matkivat ja käyttävät hyväksi näitä luonnon evoluutiossa käyttämiä geneettisiä menetelmiä etsiessään parasta ratkaisua yleisiin optimointiongelmiin.

Geneettinen ohjelmointi puolestaan on geneettisistä algoritmeista rakennettu tietokoneohjelman osa. Geneettisen ohjelmoinnin tavoitteena on saada ratkaistua tietty ongelma generoimalla aina vain parempia tietokoneohjelmia ongelman ratkaisuun.