Genetic algorithms are a search technique based on Darwinian principles of natural selection and genetics. They maintain a population of candidate solutions and evolve them through selection, crossover and mutation to find optimal or near-optimal solutions. Originally developed by John Holland in the 1960s, genetic algorithms have been widely applied to problems that are difficult to solve with traditional techniques. A genetic algorithm initializes a population, evaluates fitness, selects parents for reproduction, performs crossover and mutation on offspring, then iterates the process until a termination condition is reached.