CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono...

29
CALCOLO EVOLUZIONISTICO

Transcript of CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono...

Page 1: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

CALCOLO EVOLUZIONISTICO

Page 2: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

In ogni popolazione si verificano delle mutazioni.

Le mutazioni possono generare individui che meglio si adattano all’ambiente.

Questi sopravviveranno più a lungo (selezione naturale) generando più figli (riproduzione).

I figli preservano in parte i caratteri genetici dei genitori (cromosomi, composti da geni) e, in parte, mescolandoli (crossover), creano nuovi tipi.

Evoluzione

Page 3: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Così si ha una maggiore probabilità che le generazioni successive presentino i caratteri degli individui più “adatti” (con fitness più elevata) all’ambiente in cui vivono (evoluzione).

Il codice genetico di un individuo è detto genotipo. La manifestazione dei caratteri codificati in tale codice è detta fenotipo.

Evoluzione

Page 4: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Nelle scienze:

• Verifica tramite simulazioni di ipotesi in biologia, sociologia, religione ecc.

Per l'ingegneria:

• Ottimizzazione di funzioni• Ottimizzazione combinatoria• Apprendimento• Soluzione di problemi

Calcolo Evoluzionistico

Page 5: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Corrispondenze natura-calcolo

Individuo Soluzione di un problema Popolazione Insieme di soluzioni

Fitness Qualità di una soluzione

Cromosoma Rappresentazione di una soluzione

Gene Componente di una

rappresentazione Crossover Mutazione Operatori per la ricerca di

soluzioni

Selezione Naturale Riutilizzo di buone soluzioni

Page 6: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Generico algoritmo evoluzionistico

1. Inizializza una popolazione2. Valuta la fitness della popolazione3. Ripeti:

a. seleziona un sottoinsieme della popolazione in base alla fitness

b. a partire dagli individui selezionati, genera una nuova popolazione c. Valuta la fitness della nuova popolazione

Page 7: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Algoritmi genetici

Negli algoritmi genetici si ottengono nuove soluzioni operando su una loro codifica: in termini genetici, si opera (come del resto accade anche in natura) sul solo genotipo.

E’ quindi necessaria una decodifica da genotipo a fenotipo.

I cromosomi sono stringhe di simboli (es. 0 o 1).

Gli individui possono essere qualunque cosa possa essere rappresentata con una stringa di simboli.

I fenotipi possono essere, ad esempio, vettori di parametri, liste di possibili scelte, connessioni fra neuroni in una rete neurale ecc.

Page 8: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Semplice algoritmo genetico

1. Genera una popolazione random di cromosomi.

2. Decodifica ogni cromosoma per ottenere un individuo.

3. Valuta la fitness di ciascun individuo.

4. Genera una nuova popolazione, in parte clonando (copiando), in parte ricombinando e in parte mutando i cromosomi degli individui con fitness più elevata.

5. Ripeti 2,3,4 fino ad una condizione di stop.

Page 9: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Problema della rappresentazione

Numeri

Interi (da 0 a 2n-1, da K a K+N, da 0 a M con M2n-1)

Reali

Elementi appartenenti ad insiemi limitati

Vettori di parametri o numeri

Page 10: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Problema della codifica

Rappresentazioni simili devono rappresentare cose simili

Codifica di Gray

Rappresentazioni di Interi consecutivi differiscono per un bit Gray Bin Gray Bin

0 000 000 4 110 1001 001 001 5 111 1012 011 010 6 101 1103 010 110 7 100 111

L’inversione di un bit produce piccoli cambiamenti

Se però il cambiamento è grande è maggiore che con una normale codifica binaria

Page 11: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

E’ l’operazione mediante la quale gli individui (in realtà il loro genotipo, rappresentato dai cromosomi) sono selezionati per la riproduzione.

Per simulare la selezione naturale gli individui con fitness più elevata hanno maggiore probabilità di essere selezionati.

Vi sono diverse strategie per la selezione (alcune non plausibili biologicamente).

Di solito in un algoritmo genetico:a. Un gruppo di soluzioni è selezionato per

l’accoppiamento (mating pool)b. Coppie di individui sono estratti a caso dal mating

pool e vengono accoppiati

Page 12: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Ipotesi fondamentali

1. Esiste una misura Q della bontà di una soluzione.

2. E’ sempre positiva

3. Va massimizzata

4. La Q di un individuo è la sua fitness

Page 13: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Selezione proporzionale alla fitness (fitness-proportionate selection)

E’ il metodo di selezione più comune.

Ad ogni individuo è assegnata una probabilità di essere selezionato

pi = fi/jfj

Page 14: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Implementazione (selezione proporzionale alla fitness)

Supponiamo di avere 4 individui con fitness

f1=f2=10 f3=15 f4=25

Allora si avrà (probabilità di selezione):

p1=p2=1/6 p3=1/4 p4=5/12

Page 15: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Implementazione (selezione proporzionale alla fitness)

1. Metodo della roulette

Ogni posizione della freccia corrisponde ad un certo numero. Si estrae un numero casuale e si seleziona l'individuo puntato dalla freccia.

Page 16: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Implementazione (selezione proporzionale alla fitness)

2. Vettore di dimensione N

112233344444 0 N-1

Si estrae un numero a caso (da 0 a N-1) e si seleziona l’individuo corrispondente al valore nella posizione estratta.

3. Numero reale compreso fra 0 e jfj

Si estrae un numero a caso r compreso in tale intervallo e si seleziona l’individuo i tale che

j=1,i-1 fj r < j=1,i fj

Page 17: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Problemi

Convergenza prematura

Se un individuo i ha fitness molto maggiore della media della popolazione ma molto minore della massima fitness possibile, tenderà a essere sempre selezionato e quindi a generare una popolazione “mediocre”.

Stagnazione

Dopo un certo numero di generazioni, tutti gli individui hanno una buona fitness e quindi tendono ad avere la stessa probabilità di essere selezionati.

Page 18: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Selezione per rango (rank selection)

Individui ordinati per fitness (decrescente). Si impone una distribuzione di probabilità decrescente con la posizione occupata, indipendentemente dai valori di fitness.

Vantaggi•Non si ha convergenza prematura: nessun individuo ha probabilità molto maggiore degli altri di essere selezionato•Non c’è stagnazione: la distribuzione probabilità non varia.

SvantaggiComputazionalmente pesante.

Nota: non è biologicamente plausibile.

Page 19: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Selezione tramite torneo

(tournament selection)

Per ogni individuo da selezionare, si seleziona un gruppo di

individui e si clona il migliore (torneo).

Vantaggi

Come selezione per rango, ma non c’è necessità di

ordinamento.

Page 20: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Selezione

Selezione elitista

Almeno una copia dell’individuo migliore viene mantenuta nella generazione successiva.

VantaggiNon si perdono soluzioni buone nei processi “casuali” di selezione.

SvantaggiSi possono raggiungere massimi locali se i caratteri di tale individuo diventano “dominanti”.

Page 21: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Crossover

Una volta selezionati gli individui che costituiscono il mating pool, la nuova generazione viene creata ricombinando il loro materiale genetico.

Il crossover consente, come nel caso della riproduzione sessuata in natura, di ottenere nuovi individui il cui codice genetico è mutuato in parte dall’uno e in parte dall’altro genitore.

Page 22: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Crossover uniforme: ogni bit è selezionato a caso da uno dei due genitori

Page 23: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Operatori genetici: Mutazione

Operatore che mira a mantenere diversità genetica per cercare di esplorare anche zone dello spazio di ricerca non presenti nella popolazione attuale.

Si sceglie un bit a caso e si inverte.

Page 24: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Parametri di un algoritmo genetico

• Dimensione della popolazione

• Criterio di arresto

• numero max di iterazioni

• soglia di fitness

• Distribuzione operatori per la nuova generazione:

• percentuale clonazione

• percentuale crossover

• percentuale mutazione

Page 25: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Programmazione genetica

• Variante degli algoritmi genetici

• Si evolvono funzioni rappresentate come alberi sintattici

Simboli terminali

Funzioni

Page 26: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Programmazione genetica

• I nodi rappresentano funzioni; le foglie i simboli terminali (costanti, puntatori o dati)

• Gli operatori devono soddisfare la proprietà di chiusura, cioè il tipo di dato deve essere lo stesso sia per gli ingressi che per le uscite di tutti gli operatori (esistono comunque anche varianti in cui sono ammessi tipi diversi)

• La procedura di valutazione della funzione avviene mediante un attraversamento simmetrico dell’albero sintattico

Page 27: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Programmazione genetica

• Bisogna adattare gli operatori alla rappresentazione

Page 28: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Programmazione genetica

• La programmazione genetica è un algoritmo genetico, quindi si utilizzano gli stessi parametri visti per gli algoritmi genetici.

• Tuttavia opera ad un livello di astrazione maggiore:

• negli algoritmi genetici la rappresentazione ha sempre bit come elementi atomici ed è solo definire la semantica della rappresentazione

• nella programmazione genetica bisogna definire a priori anche gli elementi atomici, cioè l’insieme dei simboli terminali e delle funzioni che devono essere utilizzate per la costruzione degli alberi

Page 29: CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.

Programmazione genetica

• Resta il problema di definire le costanti

• Una soluzione (Ephemeral Random Constant) consiste nell’utilizzare un simbolo terminale costante definito entro un certo intervallo;

• al momento della generazione di un nuovo albero (inizializzazione), e quindi in corrispondenza del primo uso di ogni ERC, ad essa viene assegnato un valore casuale entro il dominio di definizione

• per ogni successivo uso, l’ERC si comporta di fatto come una costante, mantenendo il valore cui è stata inizializzata