programmeerimine, mis põhineb programmi optimaalse struktuuri otsingul looduslikku valikut jäljendavate meetoditega (juhuslikkus, mutatsioonid jne)