Genetic algorithms are a type of evolutionary algorithm developed in the 1970s. They are typically applied to discrete optimization problems and use techniques inspired by natural selection, such as crossover and mutation to evolve solutions. John Holland developed the original simple genetic algorithm which uses binary representations of solutions and operates by selecting parents based on fitness, crossing over and mutating their bits to produce offspring for the next generation. There have since been many variants developed that use different representations, operators, and selection methods.