Genetic algorithms are optimization techniques inspired by natural selection, used to solve complex problems by evolving solutions over generations. They involve creating a population of potential solutions, selecting the best candidates, and combining and mutating them to explore the solution space. This iterative process continues until a satisfactory solution is found, making it especially useful for NP-hard problems.