Computational techniques that mimic the process of natural selection in order to optimize solutions to complex problems.