En la inteligencia artificial, la programación genética (GP, de sus siglas en inglés: Genetic Programming) es una metodología basada en los algoritmos evolutivos e inspirada en la evolución biológica para desarrollar automáticamente programas de computadoras que realicen una tarea definida por el usuario.
[3] En la década de los 1990's, GP se utilizó principalmente para resolver problemas relativamente simples, ya que es muy costoso computacionalmente.
[4] Estos resultados incluyen la reproducción o el desarrollo de varias invenciones posteriores al año 2000.
Representaciones que no utilizan árboles se han sugerido y aplicado con éxito, tales como programación genética lineal, la cual se adapta a los tradicionales lenguajes imperativos [véase, por ejemplo, Banzhaf et al.
μGP[7] usa multigrafos dirigidos para generar programas que explotan al máximo la sintaxis de un dado lenguaje ensamblador.
Los principales operadores usados en algoritmos evolutivos así como GP son cruzamiento y mutación.
Se sugiere que los cromosomas, el cruzamiento, y la mutación vayan evolucionando ellos mismos, por lo tanto, al igual que sus homólogos en la vida real deben ser flexibles al cambio en el medio escogido por un programador humano.
Los críticos de esta idea a menudo dicen este enfoque es demasiado amplio en su alcance.
Sin embargo, podría ser posible restringir el criterio de la aptitud en una clase general de los resultados, y así obtener un GP evolucionado que sería más eficiente para producir resultados para las sub-clases.