
Un algoritmo genetico è un algoritmo euristico utilizzato per tentare di risolvere problemi di ottimizzazione per i quali non si conoscono altri algoritmi efficienti di complessità lineare o polinomiale. L'aggettivo "genetico", ispirato al principio della selezione naturale ed evoluzione biologica teorizzato nel 1859 da Charles Darwin, deriva dal fatto che, al pari del modello evolutivo darwiniano che trova spiegazioni nella branca della biologia detta genetica, gli algoritmi genetici attuano dei meccanismi concettualmente simili a quelli dei processi biochimici scoperti da questa scienza.
In sintesi gli algoritmi genetici consistono in algoritmi che permettono di valutare diverse soluzioni di partenza (come se fossero diversi individui biologici) e che ricombinandole (analogamente alla riproduzione biologica sessuata) ed introducendo elementi di disordine (analogamente alle mutazioni genetiche casuali) producono nuove soluzioni (nuovi individui) che vengono valutate scegliendo le migliori (selezione ambientale) nel tentativo di convergere verso soluzioni "di ottimo". Ognuna di queste fasi di ricombinazione e selezione si può chiamare generazione come quelle degli esseri viventi. Nonostante questo utilizzo nell'ambito dell'ottimizzazione, data la natura intrinsecamente casuale dell'algoritmo genetico, non vi è modo di sapere a priori se sarà effettivamente in grado di trovare una soluzione accettabile al problema considerato. Se si otterrà un soddisfacente risultato, non è detto che si capisca perché abbia funzionato, in quanto non è stato progettato da nessuno ma da una procedura casuale.
Gli algoritmi genetici rientrano nello studio dell'intelligenza artificiale e più in particolare nella branca della "computazione evolutiva", vengono studiati e sviluppati all'interno del campo dell'intelligenza artificiale e delle tecniche di soft computing, ma trovano applicazione in un'ampia varietà di problemi afferenti a diversi contesti quali l'elettronica, la biologia e l'economia.
La nascita degli algoritmi genetici trova origine dalle prime teorizzazioni di Ingo Rechenberg che, per la prima volta, nel 1960, cominciò a parlare di "strategie evoluzionistiche" all'interno dell'informatica.
La vera prima creazione di un algoritmo genetico è tuttavia storicamente attribuita a John Henry Holland che, nel 1975, nel libro "Adaptation in Natural and Artificial Systems" pubblicò una serie di teorie e di tecniche tuttora di fondamentale importanza per lo studio e lo sviluppo della materia. Agli studi di Holland si deve infatti sia il teorema che assicura la convergenza degli algoritmi genetici verso soluzioni ottimali sia il cosiddetto teorema degli schemi, conosciuto anche come "teorema fondamentale degli algoritmi genetici". Quest'ultimo teorema fu originariamente pensato e dimostrato su ipotesi di codifica binaria ma nel 1991, Wright, l'ha estesa a casi di codifica con numeri reali dimostrando anche che una tale codifica è preferibile nel caso di problemi continui d'ottimizzazione.
Enormi contributi si devono anche a John Koza che nel 1992 inventò la programmazione genetica ossia l'applicazione degli algoritmi genetici alla produzione di software in grado di evolvere diventando capace di svolgere compiti che in origine non era in grado di svolgere.
Nel 1995 Stewart Wilson re-inventò i sistemi a classificatori dell'intelligenza artificiale ri-denominandoli come XCS e rendendoli capaci di apprendere attraverso le tecniche degli algoritmi genetici mentre nel 1998 Herrera e Lozano presentarono un'ampia rassegna di operatori genetici. Gli operatori di Herrera e Lozano sono applicabili a soluzioni codificate mediante numeri reali ed hanno reso il campo dei numeri reali un'appropriata e consolidata forma di rappresentazione per gli algoritmi genetici in domini continui.
Prima dell'effettiva spiegazione del funzionamento degli algoritmi genetici, è necessario premettere che questi ereditano e riadattano dalla biologia alcune terminologie che vengono qui preventivamente presentate per una successiva maggiore chiarezza espositiva:
Un tipico algoritmo genetico, nel corso della sua esecuzione, provvede a fare evolvere delle soluzioni secondo il seguente schema di base:
L'iterazione dei passi presentati permette l'evoluzione verso una soluzione ottimizzata del problema considerato.
Poiché questo algoritmo di base soffre del fatto che alcune soluzioni ottime potrebbero essere perse durante il corso dell'evoluzione e del fatto che l'evoluzione potrebbe ricadere e stagnare in "ottimi locali" spesso viene integrato con la tecnica dell'"elitarismo" e con quella delle mutazioni casuali. La prima consiste in un ulteriore passo precedente al punto "3" che copia nelle nuove popolazioni anche gli individui migliori della popolazione precedente, la seconda invece successiva al punto "4" introduce nelle soluzioni individuate delle occasionali mutazioni casuali in modo da permettere l'uscita da eventuali ricadute in ottimi locali.
Come accennato le soluzioni al problema considerato, siano queste quelle casuali di partenza o quelle derivate da evoluzione, devono essere codificate con qualche tecnica.
Le codifiche più diffuse sono:
All'interno della codifica vettoriale è giusto introdurre anche i concetti di "schema" e di "blocchi costruttori" strettamente legati poi al teorema degli schemi di Holland.
La funzione di fitness è quella che permette di associare ad ogni soluzione uno o più parametri legati al modo in cui quest'ultima risolve il problema considerato. Generalmente è associata alle prestazioni computazionali e quindi alle prestazioni temporali della soluzione.
A causa di complessi fenomeni di interazione non lineare (epistaticità), non è dato per scontato né che da due soluzioni promettenti ne nasca una terza più promettente né che da due soluzioni con valori di fitness basso ne venga generata una terza con valore di fitness più basso. Per ovviare a questi problemi, durante la scelta delle soluzioni candidate all'evoluzione, oltre che sul parametro ottenuto dalla funzione di fitness ci si basa anche su particolari tecniche di "selezione". Le più comuni sono:
Per semplicità, durante la spiegazione del crossover, si farà riferimento alle codifiche vettoriali ma il procedimento per le codifiche ad albero è simile ed invece che essere applicato ai campi dei vettori viene applicato ai nodi dell'albero.
In base ad un operatore stabilito inizialmente, alcune parti dei geni delle soluzioni candidate all'evoluzione vengono mescolate per ricavare nuove soluzioni.
Gli operatori più comunemente utilizzati sono:
Non è detto che il crossover debba avvenire ad ogni iterazione dell'algoritmo genetico. Generalmente la frequenza di crossover è regolata da un apposito parametro comunemente denominato formula_9.
La mutazione consiste nella modifica pseudocasuale di alcune parti dei geni in base a coefficienti definiti inizialmente.
Queste modifiche alle volte sono utilizzate per migliorare il valore della funzione di fitness per la soluzione in questione e altre volte sono utilizzate per ampliare lo spazio di ricerca ed attuare la tecnica dell'elitarismo per non far ricadere l'evoluzione in ottimi locali.
La frequenza con cui deve avvenire una mutazione è generalmente regolata da un apposito parametro comunemente denominato formula_10.
Nel caso in cui si abbia più di un obiettivo da ottimizzare, è possibile utilizzare un algoritmo genetico multiobiettivo.
Sostanzialmente l'algoritmo funziona come quando va a perseguire un singolo obiettivo, quindi parte sempre da un certo numero di possibili soluzioni (la popolazione) e cerca di individuare, mediante diverse iterazioni, un certo numero di soluzioni ottimali, che si andranno a trovare su un fronte di Pareto. La diversità sta nel fatto che ora esistono due o più funzioni fitness da valutare.
In questa sezione verranno analizzati ed affrontati dei problemi didattici per mostrare come si applica un algoritmo genetico.
Il problema dello zaino consiste nel riuscire ad inserire in uno zaino con una certa capienza più oggetti possibili prelevati da un elenco dato rispettando anche particolari vincoli di peso.
La soluzione ottima consiste nel riuscire ad inserire nello zaino quanti più oggetti possibili senza superare i limiti di peso imposti.
Il problema del commesso viaggiatore consiste nel riuscire a visitare almeno una volta tutte le città presenti in un elenco, sfruttando al meglio i collegamenti tra queste e percorrendo meno strada possibile.


La selezione naturale, concetto introdotto da Charles Darwin nel 1859 nel libro "L'origine delle specie", e indipendentemente da Alfred Russel Wallace nel saggio "On the Tendency of Varieties to Depart Indefinitely From the Original Type," è un meccanismo chiave dell'evoluzione e secondo cui, nell'ambito della diversità genetica delle popolazioni, si ha un progressivo (e cumulativo) aumento degli individui con caratteristiche ottimali per l'ambiente in cui vivono.
In riferimento alla competizione tra individui, Darwin, ispirandosi a Thomas Malthus, descrisse il concetto di "lotta per l'esistenza", che si basava sull'osservazione che gli organismi, moltiplicandosi con un ritmo troppo elevato, producono una progenie quantitativamente superiore a quella che le limitate risorse naturali possono sostenere, e di conseguenza sono costretti a una dura competizione per raggiungere lo stato adulto e riprodursi.
Gli individui di una stessa specie si differenziano l'uno dall'altro per caratteristiche genetiche (genotipo) e quindi fenotipiche (cioè morfologiche e funzionali, frutto dell'interazione del genotipo con l'ambiente). La teoria della selezione naturale prevede che all'interno di tale variabilità, derivante da mutazioni genetiche casuali (nel senso che esse sono casuali rispetto a un adattamento), nel corso delle generazioni successive al manifestarsi della mutazione, vengano favorite ("selezionate") quelle mutazioni che portano gli individui ad avere caratteristiche più vantaggiose in date condizioni ambientali, determinandone, cioè, un vantaggio adattativo (migliore adattamento) in termini di sopravvivenza e riproduzione. La selezione naturale quindi, favorendo le mutazioni vantaggiose, funziona come meccanismo deterministico, opposto al caso. 
Gli individui meglio adattati a un certo habitat si procureranno più facilmente il cibo e si accoppieranno più facilmente degli altri individui della stessa specie che non presentano tali caratteristiche. In altre parole, è l'ambiente a selezionare le mutazioni secondo il criterio di vantaggiosità sopra descritto: i geni forieri di vantaggio adattativo potranno così essere trasmessi, attraverso la riproduzione, alle generazioni successive e con il susseguirsi delle generazioni si potrà avere una progressiva affermazione dei geni "buoni" a discapito dei geni inutili o dannosi. La specie potrà evolversi progressivamente grazie allo sviluppo di caratteristiche che la renderanno meglio adattata all'ambiente, sino a una situazione di equilibrio tra ambiente e popolazione che persisterà finché un cambiamento ambientale non innescherà un nuovo fenomeno evolutivo.
Esempio tipico è l'evoluzione del collo delle giraffe. Nel corso di milioni di anni le mutazioni genetiche che portarono alcuni individui ad avere un collo (sempre) più lungo si rivelarono vantaggiose; questi individui potevano raggiungere più facilmente le foglie di alberi alti, il che, in condizioni di scarsità di cibo, determinò un migliore adattamento all'ambiente rispetto agli individui col collo più corto: migliore capacità di procurarsi il cibo, quindi maggiore probabilità di sopravvivere, di raggiungere l'età della riproduzione e di riprodursi, dunque, maggiore probabilità di trasmettere il proprio patrimonio genetico (e quindi la lunghezza del collo) alle generazioni successive.
I principi fondamentali su cui si basa la selezione naturale sono:
Il concetto della selezione naturale sviluppato da Charles Darwin nel libro "The Origin of species", pubblicato nella sua prima edizione nel 1859, è stato successivamente integrato con la genetica mendeliana nel libro pubblicato da Ronald Fisher nel 1930, "The Genetical theory of natural selection", che è considerato uno dei più importanti documenti della Moderna sintesi dell’evoluzione.
Le variazioni del fenotipo all'interno di una popolazione derivano da variazioni del genotipo, ma possono a volte essere influenzate dall'ambiente e dalle interazioni gene/ambiente.
Un gene per un determinato carattere può esistere, all'interno di una popolazione, sotto forma di versioni diverse, denominate alleli.
Solo alcuni caratteri sono il risultato dell'espressione di un singolo locus, mentre la maggior parte delle caratteristiche fenotipiche, come il colore degli occhi e il colore della pelle, derivano dalla cooperazione dei prodotti di più coppie di geni. Una mutazione in uno di questi geni può determinare solo una piccola variazione del carattere, mentre mutazioni in più geni, che avvengono in maniera progressiva nel corso delle generazioni, hanno un effetto cumulativo producendo notevoli differenze nei fenotipi.
Inoltre, ci sono casi in cui la selezione di un carattere è correlata alla selezione di un altro carattere; questo si verifica perché i geni corrispondenti sono intimamente associati in "loci" molto vicini nello stesso cromosoma, oppure perché ci sono geni che possono influenzare più caratteri contemporaneamente.
La frequenza allelica, calcolata come il rapporto tra il numero degli alleli uguali, presenti all'interno di una popolazione, rispetto al numero totale di alleli per un determinato "locus" genico, definisce quanto una determinata versione di un gene è rappresentata all'interno della popolazione.
La mutazione e la ricombinazione sono i meccanismi principali con i quali sono prodotti nuovi alleli, mentre la selezione naturale rappresenta il meccanismo che influenza le frequenze relative dei vari alleli all'interno di una popolazione.
Bisogna distinguere tra il meccanismo con cui agisce la selezione naturale e i suoi effetti.
La selezione naturale agisce sui fenotipi, favorendo quelli più adatti e conferendo loro un vantaggio sia di sopravvivenza sia riproduttivo.
La selezione naturale agisce indistintamente sia sulla componente ereditaria sia su quella non ereditaria dei caratteri, ma è solo sulla prima, vale a dire sul genotipo, che si manifestano i suoi effetti, poiché è solo questa che è trasmessa alla progenie.
Fondamentale nella descrizione della selezione è il concetto di fitness, che misura la capacità di un genotipo di riprodursi e di trasmettersi alla generazione successiva, conferendo, se superiore a quella media, un vantaggio riproduttivo all'individuo che lo possiede.
Di conseguenza, genotipi con fitness elevata aumenteranno di frequenza nelle generazioni successive e diventeranno i più rappresentati, mentre genotipi con fitness bassa, diventeranno sempre meno frequenti, fino alla scomparsa.
La fitness si riferisce, quindi, alla capacità di produrre prole; poiché il numero di discendenti che un individuo può generare dipende sia dalla sua capacità di arrivare allo stato adulto, sia dalla sua fertilità, possiamo considerare la fitness come il prodotto di due componenti, la vitalità e la fertilità:
fenotipi che aumentano la capacità di sopravvivenza di un individuo, ma lo rendono sterile hanno fitness nulla.
La fitness è influenzata dall'ambiente in cui l'organismo vive, infatti, lo stesso fenotipo può avere fitness diverse in ambienti diversi.
La fitness può essere misurata in vari modi:
La "fitness assoluta" W, di un determinato genotipo, si riferisce al rapporto del numero d'individui con quel genotipo dopo un evento selettivo (N2) rispetto al loro numero prima dell'evento selettivo(N1):
formula_1
La fitness assoluta può essere calcolata all'interno della stessa generazione, immediatamente prima e dopo l'evento selettivo (ad esempio l'introduzione di un parassita, l'aumento di temperatura o l'esposizione a un antibiotico, per quanto riguarda le colonie batteriche); più in generale, la fitness si misura dopo una generazione, mettendo in rapporto il numero di discendenti con un determinato genotipo rispetto a quello della generazione precedente (in questo caso N2 rappresenta il numero di figli e N1 il numero dei genitori con lo stesso genotipo).
Un altro sistema di misura della fitness mette in relazione le frequenze geniche riscontrate nella progenie rispetto alle frequenze geniche attese secondo l'equazione di Hardy- Weinberg, misurando in questo caso la deviazione da quest'equilibrio.
Più usata è la "fitness relativa", ω, che si calcola assumendo che il genotipo più rappresentato all'interno della popolazione, con W = Wmax, abbia una fitness relativa ωmax = 1, mentre le fitness relative degli altri genotipi derivano dal rapporto della loro fitness assoluta rispetto a quella massima:
formula_2
Di conseguenza omega può assumere valori compresi tra zero e uno:
0<ω<1
Un altro parametro di misura della selezione naturale è il "coefficiente di selezione", s, misurato secondo l'equazione:
s = 1 – ω,
che ha un significato opposto a quello della fitness, infatti un suo aumento significa una diminuzione delle frequenze alleliche corrispondenti nella popolazione.
All'interno di una popolazione naturale, la variabilità tra gli individui, requisito essenziale della selezione, può esistere a vari livelli: morfologico, cellulare, subcellulare, biochimico, genico.
Occorre precisare che, anche se la fitness è spesso riferita al genotipo, il bersaglio della selezione naturale è l'organismo "in toto", e deriva dalle interazioni delle diverse fitness genotipiche. Ogni gene, infatti, può contribuire aumentando o diminuendo la capacità riproduttiva di un individuo, o la sua sopravvivenza, ma la fitness totale sarà il risultato delle diverse pressioni selettive.
Molto spesso, i fenotipi di determinati caratteri, ad esempio l'altezza degli individui o il loro peso corporeo, variano in maniera continua e le loro frequenze possono essere distribuite secondo una curva a campana, distribuzione normale, con un massimo di frequenza in corrispondenza del fenotipo medio. In altri casi, come la presenza/assenza di una determinata malattia ereditaria o la resistenza/sensibilità agli antibiotici, riscontrata nelle popolazioni batteriche, il fenotipo può presentarsi in maniera discontinua, sotto forma di due o poche varianti.
La selezione naturale può essere distinta in tre tipi:
Si parla inoltre di selezione negativa, intendendo la rimozione selettiva di alleli rari che sono dannosi. Viene detta anche selezione purificante e può portare al mantenimento delle sequenze geniche, conservate tra le specie, per lunghi periodi di tempo evolutivo. La progressiva epurazione di alleli dannosi, per il costante ripresentarsi di nuove mutazioni dannose, si ricollega alla selezione ambientale.
Darwin, nel capitolo 4 del suo libro "The Origin of Species" dedicò un paragrafo alla definizione di un altro tipo di selezione, distinta da quella ecologica, che veniva descritta come il processo attraverso il quale un individuo acquisisce vantaggio rispetto a un altro dello stesso sesso, grazie alla sua capacità di accoppiarsi con un maggior numero di partner e, di conseguenza, di avere un maggior numero di discendenti.
Questo tipo di selezione, nota come selezione sessuale, interessa generalmente gli individui di sesso maschile e si può manifestare con due tipi di comportamenti:
Questo tipo di selezione conduce all'evoluzione di armi speciali o di caratteri ornamentali che si definiscono caratteri sessuali secondari perché, a differenza di quelli primari, non sono coinvolti direttamente nella riproduzione ma offrono un vantaggio nell'accoppiamento. Le relative differenze tra maschio e femmina determinano il dimorfismo sessuale. Darwin attribuì una notevole importanza al dimorfismo sessuale, che descrisse in un gran numero di specie. La comparazione tra le specie dimostrava che tale dimorfismo era più diffuso nelle specie poligame, nelle quali il maschio poteva accoppiarsi con più femmine, rispetto a quelle monogame.
Sebbene la teoria classica della selezione naturale consideri l'individuo come il principale bersaglio delle forze selettive, esiste un altro approccio (benché molto controverso e minoritario) che prende in considerazione la presenza di una selezione multilivello, con forze selettive che agiscono sui vari livelli della gerarchia biologica, cioè i geni, la cellula, l'individuo, il gruppo e la specie.
Da questa considerazione deriva la possibilità dell'esistenza di forze selettive che agiscono su caratteristiche o comportamenti condivisi da gruppi d'individui o da intere popolazioni.
L'ipotesi della selezione di gruppo è stata introdotta nel 1962 da Wynne-Edwards, il quale sosteneva che alcuni individui, in determinate circostanze, possono sacrificare la loro riproduzione per offrire un vantaggio al gruppo a cui appartengono. In altre parole, ci sarebbero forze selettive che agiscono sulla competizione tra gruppi e non su quella tra individui e, di conseguenza, si osserverebbe una diminuzione della fitness individuale per la sopravvivenza del gruppo. È ciò che succede, ad esempio, nelle popolazioni di insetti sociali. In alcune occasioni, secondo Wynne-Edwards, gli individui possono limitare la loro riproduzione, ad esempio quando scarseggia il cibo, per evitare il sovraffollamento con successivo impoverimento delle risorse alimentari.
Esistono numerose controversie riguardo all'esistenza della selezione di gruppo e, secondo un'opinione abbastanza condivisa, la maggior parte dei casi di questo tipo di selezione si possono spiegare con una selezione individuale.
Uno dei maggiori problemi sollevati dagli oppositori di questa teoria è che, diminuendo la fitness individuale, i tratti legati a questo tipo di comportamento "altruistico" non possono essere trasmessi nelle generazioni.
Nel 1964 W.D.Hamilton, rielaborando un'ipotesi espressa da J.B.S.Haldane nel 1932, introdusse il concetto di selezione di parentela o "kin selection". 
Secondo questo zoologo, il comportamento altruistico è favorito solo se gli individui che ricevono i benefici sono imparentati con l'individuo altruista, cioè quando esiste una forte condivisione di geni tra l'altruista e il beneficiario e, di conseguenza, i geni possono essere trasmessi alle generazioni successive. In questi casi, la fitness individuale viene sostituita da una "fitness inclusive".
Hamilton espresse matematicamente questa sua tesi con la seguente equazione:
rb>c
dove r rappresenta la frazione dei geni condivisi tra individui altruisti e beneficiari;
b è il beneficio del ricevente e c il costo pagato dall'individuo altruista.
Con questa teoria si possono spiegare le cure parentali dei genitori per i figli e anche i comportamenti altruistici riscontrati nelle popolazioni di insetti sociali, i cui individui condividono un'alta percentuale di geni.
La teoria della selezione di parentela è stata in seguito sostenuta anche da altri studiosi, tra cui Maynard-Smith.
La selezione naturale è alla base dei processi di adattamento e speciazione, e quindi dell'evoluzione delle specie.
L'adattamento è l'insieme delle caratteristiche, sia strutturali sia comportamentali, che sono state favorite dalla selezione naturale perché aumentano le possibilità di sopravvivenza e di riproduzione di un organismo nel suo habitat naturale.
L'adattamento è la conseguenza dei cambiamenti del pool genico che avvengono all'interno delle popolazioni in seguito alle pressioni selettive dell'ambiente, che favoriscono individui con fitness più elevata. Variazioni del pool genico possono risultare, oltre che dalla selezione naturale, anche dalla deriva genetica.
Tuttavia, si deve precisare che il concetto di adattamento è relativo, perché ciò che può essere adatto in un ambiente può non esserlo in un altro e, in seguito a variazioni ambientali, caratteristiche vantaggiose possono diventare svantaggiose e/o viceversa. Inoltre, in natura l'adattamento non è mai perfetto, ma risulta come compromesso tra le esigenze adattative delle diverse caratteristiche di un organismo.
Un classico esempio di adattamento, descritto da Darwin, è rappresentato dal becco del picchio, perfettamente adattato a estrarre gli insetti dalla corteccia degli alberi. Altro esempio tipico è il mimetismo criptico, con il quale il colore e la forma di alcuni animali si adatta perfettamente all'ambiente in cui vivono, proteggendoli dai predatori.
Esempi tipici di evoluzione adattativa si possono facilmente osservare nelle popolazioni di microrganismi, come batteri o virus, grazie ai loro tempi di generazioni molto brevi. Ad esempio in una popolazione di batteri esistono individui che contengono geni conferenti resistenza ad alcuni farmaci, come gli antibiotici. In assenza di tale farmaco, tutti gli individui hanno la stessa probabilità di sopravvivenza, ma se esposti all'antibiotico specifico, i batteri sensibili saranno inibiti, mentre quelli che contengono il gene della resistenza potranno moltiplicarsi indisturbati e, dopo poche generazioni, la popolazione sarà formata quasi esclusivamente da batteri resistenti; la popolazione si è dunque adattata. Alcuni virus, come il virus dell'influenza e il virus dell'immunodeficienza acquisita, subiscono una continua evoluzione, per la presenza di ceppi resistenti alle terapie e alle reazioni immunitarie dell'ospite.
Se, da una parte, è relativamente semplice spiegare l'evoluzione adattativa di caratteristiche fenotipiche semplici, che derivano da uno o pochi geni, come il mimetismo, la resistenza ai farmaci, ecc., risulta più complicato seguire l'evoluzione di un organo complesso, ad esempio l'occhio dei vertebrati.
Secondo la teoria evoluzionistica, questi caratteri complessi, che derivano da più geni, hanno subito adattamenti successivi, verificatisi in molte tappe, ciascuna delle quali ha coinvolto mutazioni in geni differenti che hanno conferito un vantaggio addizionale agli individui portatori. Si è verificata quindi una lenta e progressiva evoluzione che ha portato allo sviluppo di organi specializzati in determinate funzioni.
Poiché l'adattamento rappresenta una risposta degli organismi alle pressioni selettive dell'ambiente, che si realizza con lo sviluppo di organi che hanno una determinata funzione, esso riesce a spiegare anche altri fenomeni evolutivi, come la convergenza evolutiva, in base alla quale specie diverse, vivendo in ambienti simili e quindi sottoposte allo stesso tipo di selezione, hanno sviluppato organi o funzioni simili.
Gli organi vestigiali, a loro volta, sono strutture rappresentanti un retaggio del passato, che si erano selezionate per una specifica funzione e che, per cambiamenti ambientali avvenuti in seguito, hanno perso il loro significato.
La selezione naturale è alla base della speciazione, il processo evolutivo che conduce alla formazione di nuove specie. Generalmente la speciazione avviene quando popolazioni della stessa specie sono separate da barriere geografiche o comportamentali e sono quindi sottoposte a pressioni selettive differenti, che conducono alla divergenza delle loro strutture anatomiche, fino a quando le differenze accumulate producono popolazioni di individui nettamente distinte e incapaci di accoppiarsi. Esistono quattro tipi di speciazione: allopatrica, peripatrica, parapatrica e simpatrica. Un classico esempio di speciazione allopatrica è quello proposto da Darwin, che descrisse quattordici specie di fringuelli in diverse isole delle Galápagos, tutte derivanti da un'unica specie parentale.
