Algoritmo genetico, in intelligenza artificiale, un tipo di algoritmo informatico evolutivo in cui i simboli (spesso chiamati “geni” o “cromosomi”) che rappresentano possibili soluzioni sono “allevati”. Questo “allevamento” di simboli include tipicamente l’uso di un meccanismo analogo al processo di crossing-over nella ricombinazione genetica e un tasso di mutazione regolabile. Una funzione di fitness è usata su ogni generazione di algoritmi per migliorare gradualmente le soluzioni in analogia al processo di selezione naturale. Il processo di evoluzione degli algoritmi genetici e di automatizzazione della selezione è noto come programmazione genetica. Oltre al software generale, gli algoritmi genetici sono talvolta utilizzati nella ricerca sulla vita artificiale, sugli automi cellulari e sulle reti neurali.
Anche se non è stato il primo a sperimentare gli algoritmi genetici, John Holland ha fatto molto per sviluppare e rendere popolare il campo con il suo lavoro nei primi anni ’70 all’Università del Michigan. Come descritto nel suo libro, Adaptation in Natural and Artificial Systems (1975; rivisto e ampliato 1992), ha ideato un metodo, o teorema dello schema, per valutare ogni generazione di algoritmi genetici. John Koza, uno degli studenti di dottorato di Holland e titolare di più di una dozzina di brevetti relativi alla programmazione genetica, fu uno dei primi a sviluppare applicazioni commerciali del campo, come fondatore di una società nota come Scientific Games. Koza ha condiviso le sue esperienze di programmazione in una sequenza di libri che iniziano con Genetic Programming: On the Programming of Computers by Means of Natural Selection (1992).
Una difficoltà spesso incontrata nella programmazione genetica è quella degli algoritmi che si bloccano nella regione di una soluzione ragionevolmente buona (una “regione localmente ottimale”) piuttosto che trovare la soluzione migliore (un “optimum globale”). Superare questi vicoli ciechi evolutivi a volte richiede l’intervento umano. Inoltre, la programmazione genetica è computazionalmente intensa. Durante gli anni ’90 le tecniche di programmazione per essa non si erano sviluppate abbastanza da giustificare l’uso costoso di supercomputer, il che limitava le applicazioni a problemi piuttosto semplicistici. Tuttavia, quando i personal computer più economici sono diventati più potenti, la programmazione genetica ha iniziato ad avere un notevole successo commerciale nella progettazione di circuiti, nell’ordinamento e nella ricerca di dati, e nel calcolo quantistico. Inoltre, la National Aeronautics and Space Administration (NASA) ha usato la programmazione genetica nella progettazione di antenne per il progetto Space Technology 5, che ha coinvolto tre “micro-satelliti” lanciati nel 2006 per monitorare gli effetti dell’attività solare sulla magnetosfera terrestre.