An algorithm used in particular for combinatorial optimization and machine learning. Later search locations are derived by reproduction, mutation, or crossover, which represent three different rules for adjusting or combining the coordinates of earlier search locations.