SlideShare a Scribd company logo
1 of 36
UNIVERSIT`A DEGLI STUDI DI TRIESTE
Tesi Magistrale in Ingegneria Informatica
Analisi sperimentale comparativa
dell’evolvibilit`a nei sistemi di evoluzione
grammaticale
LAUREANDO RELATORE
Tagliapietra Danny Chiar.mo Prof. Eric Medvet
Universit`a degli Studi di Trieste
CORRELATORE
Dott. Fabio Daolio
University of Stirling, Stirling
Anno Accademico 2015/2016
Indice
Elenco delle figure iii
Elenco delle tabelle iv
1 Introduzione 1
1.1 Stato dell’arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Evoluzione Grammaticale 4
2.1 Grammatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Funzioni di Mappatura . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Standard e Breadth First GE . . . . . . . . . . . . . . . . . . 6
2.2.2 PiGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.3 Structured GE . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Inizializzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 One e Two Point(s) Crossover . . . . . . . . . . . . . . . . . . 9
2.4.2 Probabilistic Mutation . . . . . . . . . . . . . . . . . . . . . . 10
2.4.3 Crossover e Mutazione per SGE . . . . . . . . . . . . . . . . . 10
2.5 Selezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.1 Roulette Wheel e Tournament Selection . . . . . . . . . . . . 10
2.6 Rimpiazzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Evolvibilit`a 12
3.1 Problemi esaminati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Analisi statica dell’evolvibilit`a . . . . . . . . . . . . . . . . . . . . . . 14
3.2.1 Procedura sperimentale . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2 Fitness-Probability cloud e AEP . . . . . . . . . . . . . . . . . 15
3.2.3 Risultati e osservazioni: AEP . . . . . . . . . . . . . . . . . . 15
3.2.4 Risultati e osservazioni: Fitness-Probability Cloud . . . . . . . 16
3.3 Analisi dinamica dell’evolvibilit`a . . . . . . . . . . . . . . . . . . . . . 18
3.3.1 Procedura sperimentale . . . . . . . . . . . . . . . . . . . . . . 19
i
3.3.2 Risultati e osservazioni . . . . . . . . . . . . . . . . . . . . . . 19
4 Ulteriori esperimenti 22
4.1 Ridondanza e localit`a . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Proposta di mapper con bassa ridondanza . . . . . . . . . . . . . . . 23
4.3 Rappresentazione visiva dei genotipi durante l’evoluzione . . . . . . . 26
5 Considerazioni finali e conclusioni 28
Bibliografia 30
ii
Elenco delle figure
2.1 Esempio di grammatica. . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Esempio della grammatica in 2.1 nella forma BNF. . . . . . . . . . . 5
2.3 Applicazione del mapper GE e BGE. . . . . . . . . . . . . . . . . . . 7
2.4 Esempio di applicazione di One Point Crossover. . . . . . . . . . . . . 9
3.1 Le grammatiche dei problemi considerati. . . . . . . . . . . . . . . . . 13
3.2 AEP vs. dimensione genotipo |g|. . . . . . . . . . . . . . . . . . . . . 18
3.3 Fitness-Probability Cloud per dimensione di genotipo |g| = 1024 (o
quella predefinita per SGE). . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 AEP durante l’evoluzione. . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Miglior fitness durante l’evoluzione. . . . . . . . . . . . . . . . . . . . 21
4.1 AEP vs. ridondanza. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 AEP vs. localit`a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Grammatica del problema SantaFe resa non ricorsiva. . . . . . . . . . 24
4.4 LrGE confrontato con GE, BGE e πGE in termini di ridondanza per
ogni problema con dimensione del genotipo |g| = 1024 . . . . . . . . . 25
4.5 Miglior fitness durante l’evoluzione; confronto col mapper proposto. . 25
4.6 confronto AEP durante l’evoluzione con dimensione del genotipo |g| =
1024. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.7 Rappresentazione dei migliori individui durante l’evoluzione per i
problemi Harmonic, Polynomial, SantaFe e Text . . . . . . . . . . . . 27
iii
Elenco delle tabelle
3.1 Parametri usati per l’analisi statica . . . . . . . . . . . . . . . . . . . 14
3.2 Valori AEP per gli operatori mutazione e crossover. . . . . . . . . . 17
3.3 Parametri usati per l’analisi dinamica. . . . . . . . . . . . . . . . . . 20
iv
Capitolo 1
Introduzione
La necessit`a di trovare la soluzione a problemi molto complessi nel minor tem-
po possibile ha portato negli scorsi decenni a studiare metodi alternativi a quelli
puramente matematici per risolverli, accettando un compromesso tra tempo di ese-
cuzione ed esattezza della soluzione. Fra questi metodi la computazione evolutiva
(EC) permette l’utilizzo di un sistema evolutivo come un processo computazionale
per la risoluzione di problemi di varia natura, che possono spaziare dalla rilevazione
di frodi al riconoscimento facciale, fino ad arrivare alla risoluzione di problemi di
ottimizzazione. Il sistema evolutivo considerato in EC `e basato sul processo naturale
che regola l’esistenza degli esseri viventi e in particolare sulla teoria evoluzionistica
Darwiniana [1], i quali elementi chiave, utili a comprendere i concetti base sul suo
funzionamento, sono i seguenti:
• Uno o pi`u popolazioni di individui in competizione per delle risorse limitate.
• Il cambiamento della popolazione causato dalla morte e nascita di individui.
• Il concetto di fitness che rispecchia l’abilit`a di un individuo di sopravvivere.
• Il concetto di ereditariet`a variabile: i figli non sono identici ai genitori seppur
ci sia una notevole somiglianza.
Similmente a come avviene in natura, l’evoluzione consiste nel variare la popo-
lazione ricombinandone gli individui, ottenendo di volta in volta una nuova popo-
lazione formata da discendenti sempre migliori in termini di fitness, sfruttando il
fatto che, seppur i figli differiscano dai genitori, mantengono comunque una parte
del patrimonio genetico. Questo processo viene iterato pi`u volte con lo scopo di
avvicinarsi il pi`u possibile all’individuo perfetto, ovvero alla soluzione del proble-
ma che ci si era imposti di risolvere. Data l’estrema somiglianza con l’evoluzione
naturale molti termini e concetti usati in EC sono stati assimilati dalla biologia.
1
La computazione evolutiva comprende, oltre al concetto base di evoluzione, vari
algoritmi evoluzionistici che la implementano. Uno tra questi `e l’evoluzione gramma-
ticale (GE), particolare algoritmo genetico dove l’elemento fondamentale che costi-
tuisce le caratteristiche di un individuo `e il genotipo, espresso come stringa binaria,
allo stesso modo in cui il cromosoma costituisce il fenotipo di un essere vivente.
Sui genotipi viene poi applicata una funzione, detta di mappatura o mapper, che
determina la costruzione di un albero, le quali foglie consistono in una soluzione
di un determinato problema formalizzato con una grammatica; per questo motivo
nella comunit`a scientifica GE `e considerato come un particolare caso della program-
mazione genetica (GP) [2], dato che molti concetti, descritti nel prossimo capitolo,
sono comuni mentre differiscono principalmente per la presenza del genotipo e del
mapper.
Essendo GE, come tutti gli algoritmi genetici, di tipo euristico, non `e detto
che una evoluzione porti sicuramente ad una soluzione ottima, n`e tanto meno ad
una soluzione che pi`u le si avvicina. Per questo solitamente si `e portati a dover
scegliere, non facilmente, la giusta configurazione di rappresentazione, operatori e
parametri (per esempio la dimensione del genotipo [3]) che consenta di risolvere al
meglio il problema considerato, solitamente poco conosciuto. Un modo per ovviare a
questa difficolt`a `e l’analisi della Fitness Landscape, ovvero lo studio dello spazio delle
soluzioni atto a identificare le caratteristiche di un problema, in modo da aiutare
nella scelta della miglior metaeuristica1
da applicare [4].
In questo studio son state analizzate le misure della Fitness Landscape legate
al concetto di evolvibilit`a. L’evolvibilit`a, ovvero la capacit`a di generare una prole
di individui con miglior fitness ad ogni generazione per tutta la durata dell’evolu-
zione, `e solitamente usata per quantificare la difficolt`a di un problema, ma qui `e
stata esaminata per confrontare diverse varianti di GE (cio`e funzioni di mappatura)
usando gli stessi problemi. In particolare `e stata analizzata e valutata sperimental-
mente l’evolvibilit`a di alcuni mapper, variando operatore genetico e dimensione del
genotipo, per quattro differenti problemi comunemente utilizzati come benchmark.
Successivamente un confronto con altre due metriche relative ai mapper (ridondanza
e localit`a) ha mostrato come una bassa ridondanza porti ad un’alta evolvibilit`a.
1.1 Stato dell’arte
Ad oggi sono stati effettuati numerosi studi per caratterizzare i comportamenti
di GE e l’interazione tra le funzioni di mappatura e operatori genetici, specialmente
1
Metodo euristico per la soluzione di un insieme di problemi combinando diverse procedure a
loro volta euristiche
2
in termini di localit`a e ridondanza2
[5; 6; 7]. In particolare si `e scoperto come
la ridondanza sia non uniforme, ovvero presenta una non uniformit`a nel numero
di genotipi che mappano lo stesso genotipo, e come, durante l’evoluzione, ci sia
un’interazione tra localit`a/ridondanza e altre misure relative all’evoluzione, cio`e
dimensione del genotipo e diversit`a degli individui a livello di genotipo, fenotipo
e valore di fitness. Altri studi sono stati effettuati sulla programmazione genetica
riguardo l’evolvibilit`a, in particolare sulle metriche adottate [4]. Tra queste ci si `e
basati sul concetto di “Fitness Cloud” introdotto in [8] che esprime l’evolvibilit`a in
termini di correlazione tra il valore di fitness di un individuo genitore e quello dei
suoi figli. In questa tesi ci si `e concentrati su due strumenti piuttosto recenti per
la misura dell’evolvibilit`a: la “Fitness Probability Cloud”, che in essenza mostra la
correlazione tra il valore di fitness del genitore con il tasso che i suoi figli possano
essere migliori, e una misura numerica basata su di essa, chiamata “Average Escape
Probability”, per quantificare la difficolt`a di un problema [9].
2
caratteristiche che indicano rispettivamente la correlazione della modifica sul genotipo con la
modifica sul fenotipo che ne deriva e il tasso di fenotipi uguali mappati da diversi genotipi
3
Capitolo 2
Evoluzione Grammaticale
Come anticipato nell’introduzione, l’evoluzione grammaticale `e un particolare
algoritmo genetico che ha come aspetto saliente la funziona di mappatura genotipo-
fenotipo. A seguire `e riportato un breve elenco delle componenti che, compreso il
mapper, caratterizzano GE:
Grammatica insieme di regole attraverso le quali `e possibile rappresentare qual-
siasi stringa della lingua atta a descrivere un problema.
Funzione di mappatura funzione che permette la creazione di un legame tra ge-
notipo, rappresentato come stringa binaria, e fenotipo, rappresentato come
albero.
Operatore genetico funzione che ha il compito di variare la popolazione ricombi-
nandone gli individui.
Inizializzazione processo durante il quale la popolazione iniziale `e generata, il
quale pu`o influire sull’intera evoluzione.
Funzione di fitness funzione che quantifica la performance di un individuo una
volta considerato come soluzione di un problema.
Selezione processo per cui tra tutti gli individui della popolazione sono scelti i
migliori secondo un criterio, solitamente il valore di fitness, da far riprodurre.
rimpiazzamento operazione attraverso la quale tra tutti i genitori e i figli generati
vengono scelti gli individui per generare la nuova popolazione, ovvero della
successiva generazione.
A seguire son descritti gli aspetti sopra elencati, comprese le principali varianti,
e alcune delle quali sono state prese in esame per gli esperimenti effettuati.
4
E → EOE
E → V
O → +
O → -
V → x
V → y
Figura 2.1: Esempio di grammatica.
<e> ::= <e> <o> <e> | <v>
<o> ::= + | -
<v> ::= x | y
Figura 2.2: Esempio della grammatica in 2.1 nella forma BNF.
2.1 Grammatica
Una grammatica, qui intesa come generativa, pu`o essere definita come un insieme
di regole grazie alle quali `e possibile generare qualsiasi stringa di un determinato
linguaggio, a partire da un simbolo iniziale definito. Di conseguenza formalizza
un algoritmo che genera stringhe linguistiche [10]. Formalmente, dato un insieme
N di simboli non terminali, s0 ∈ N simbolo iniziale, un insieme R di regole di
produzione e un insieme Σ di simboli terminali disgiunto da N, una grammatica
consiste in una quadrupla G = N, s0, Σ, R . Un linguaggio L(G) `e definito quindi
come l’insieme di tutte le stringhe composte da simboli non terminali generate a
partire dal simbolo iniziale s0 ed applicando le regole di produzione fintantoch´e
vi siano solamente simboli terminali. Le grammatiche per descrivere alcuni dei
problemi standard per l’analisi degli algoritmi evolutivi sono libere dal contesto,
ovvero le regole di produzione presentano a sinistra un unico simbolo non terminale.
Un modo canonico per rappresentare le regole di produzione `e mostrato in Figura
2.1 dove → rappresenta la produzione, ovvero a partire dai simboli a sinistra, si
“producono” quelli indicati a destra. La forma BNF (Backus-Naur Form [11]) `e un
formalismo che d`a la possibilit`a di descrivere la sintassi di un linguaggio in modo
preciso e non ambiguo. Per questi motivi `e molto utilizzato, soprattutto in ambito
informatico e in generale per descrivere grammatiche libere dal contesto. Il modo in
cui le regole di produzione sono rappresentate `e il seguente, dove espressione pu`o
essere una serie di una o pi`u sequenze composte a loro volta da uno o pi`u simboli
(terminali o non):
<simbolo>::= espressione
5
2.2 Funzioni di Mappatura
Il processo di mappatura `e la conversione di un genotipo in fenotipo, ovvero
dato un genotipo e una grammatica context-free di un determinato problema si
costruisce univocamente l’albero di derivazione, dove la radice `e il simbolo iniziale, i
nodi i simboli non terminali e le foglie i simboli terminali. Da quest’albero `e possibile
leggere la soluzione del problema, in particolare leggendo direttamente le foglie, da
sinistra a destra. Il vantaggio del mapping (e di conseguenza di GE) consiste nel fatto
che pu`o essere applicato per qualsiasi problema che abbia una grammatica che ne
descriva formalmente le soluzioni, senza dover ridefinire gli operatori genetici o altri
componenti dell’algoritmo evolutivo, dato che essi operano sul genotipo (quindi ad
un livello inferiore) che poi viene mappato in una soluzione specifica del problema
scelto. Il mapper originario (standard) utilizzato per la grammatical evolution si
basa sull’operazione di modulo (indicata col simbolo %), ovvero la scelta del nodo
successivo si basa sul resto di una divisione per il numero di regole di produzione che
ha il nodo corrente. Questa operazione viene effettuata fintantoch´e non si arriva ad
aver solamente simboli terminali e quindi non si ha pi`u la possibilit`a di espandere
l’albero di derivazione.
Regola selezionata = valore del codone % numero di regole (2.1)
2.2.1 Standard e Breadth First GE
Nello standard GE il genotipo, espresso in binario, viene suddiviso in parti lunghe
n, dette codoni, poi convertite in un numero intero. La procedura di mapping di un
genotipo g in un fenotipo p inizia con p = s0 (simbolo iniziale), un indice i = 0 e un
contatore w = 0. Successivamente i seguenti passi sono iterati:
1. il simbolo non terminale s di p pi`u a sinistra `e espanso usando la j−th opzione
della regola rs ∈ R per s, con j = gi mod |rs|, ovvero la divisione in modulo
dell’i−esimo codone per il numero di opzioni della regola rs.
2. l’indice i viene incrementato. Se i ≥ |g|
n
, ovvero se maggiore o uguale del
numero di codoni viene settato a 0 e w incrementato. Se w supera un limite
prefissato nw, il processo di mappatura `e terminato e il fenotipo risultante `e
nullo.
3. se p contiene almeno un simbolo non terminale si ricomincia al passo 1, altri-
menti il processo `e terminato e il fenotipo `e esattamente p.
Questa procedura, poich´e riutilizza il genotipo fino ad avere un fenotipo composto
da soli simboli terminali, potrebbe non terminare mai (se la grammatica usata `e
6
Genotipo:
11000010100000110101001010011110011000111000101001111100
Grammatica:
<e> ::= <e> <o> <e> | <v>
<o> ::= + | -
<v> ::= X | Y
Lunghezza codone: 4
1100 0010 1000 0011 0101 0010 1001 1110 0110 0011 1000 1
010 0111 1100
Genotipo riscritto come sequenza di numeri decimali:
12 2 8 3 5 2 9 14 6 3 8 10 7 12
Soluzione ottenuta applicando GE:
Y+X+X+X
Soluzione ottenuta applicando BGE:
X+Y+X
Figura 2.3: Applicazione del mapper GE e BGE.
ricorsiva), per questo motivo si usa il contatore w, formalmente chiamato “wrapping”
che evita questo spiacevole caso [12]. Agli individui mappati su fenotipo nullo viene
assegnato il peggior valore nel dominio della fitness.
Il mapper BGE (Breadth First GE) `e una variante del mapper standard di GE,
dove l’unica differenza consiste nell’ordine di espansione dei nodi non terminali.
Infatti l’espansione `e eseguita in ampiezza da sinistra a destra, al contrario del
mapper standard dove avviene per profondit`a prendendo sempre l’elemento pi`u a
sinistra.
2.2.2 PiGE
Un’altra variante del mapper standard `e una sua estensione, la quale ha il van-
taggio di essere indipendente dalla posizione (Position Indipendent GE) [13; 14].
Essenzialmente invece di espandere il simbolo non terminale pi`u a sinistra del fe-
notipo, viene espanso uno scelto utilizzando il genotipo. In dettaglio in πGE ogni
codone consiste in un paio di interi identificati come sequenze di bit entrambe di
lunghezza n. Il primo intero della coppia serve per decidere quale nodo tra i non
terminali espandere, mentre il secondo per la scelta della regola di produzione, come
avviene per il mapper standard. In questo modo la struttura del fenotipo `e codificata
nel genotipo e varia anch’essa durante l’evoluzione.
Nodo da espandere = valore del codone % numero di nodi non terminali (2.2)
7
Come per lo standard mapper, anche qui nel caso in cui si termini la lettura del
genotipo prima di arrivare ad una soluzione valida, si opta per il wrapping, con i
dovuti limiti.
2.2.3 Structured GE
SGE `e uno dei pi`u recenti mapper, il quale si differenzia da tutti i precedenti
[15]. Questa variante si avvantaggia di una struttura tale che durante la mappatura
ogni codone `e utilizzato al massimo una volta per scegliere l’espansione di un nodo
non terminale. Infatti `e presente una corrispondenza 1 : 1 tra ogni gene (parte di
un genotipo) e simbolo non terminale, assicurando che la modifica di quel gene non
influisca sulle opzioni di derivazioni degli altri simboli non terminali presenti nel
fenotipo. Di conseguenza questo mapper `e strettamente dipendente dalla gramma-
tica in uso e necessita di operatori costruiti su questa sua particolare struttura (per
esempio la mutazione modifica direttamente l’intero codone, andando a sostituirlo
con un altro casuale appartenente allo stesso dominio). Poich´e non c’`e la possibilit`a
diretta di riutilizzare il genotipo, una grammatica ricorsiva deve essere convertita
in una non ricorsiva impostando un parametro di massima profondit`a dell’albero.
I vantaggi di SGE consistono nell’avere, come riportato dagli autori, una maggiore
localit`a e una minore ridondanza. Inoltre ha la peculiarit`a di mappare un genotipo
sempre in un fenotipo valido, al contrario delle altre varianti.
2.3 Inizializzazione
Per quanto riguarda l’inizializzazione, essa pu`o influire sul risultato dell’evolu-
zione, e perci`o `e molto importante scegliere una buona dimensione e distribuzione
degli individui [16]. Un metodo alternativo alla generazione puramente casuale de-
gli individui `e il cosiddetto Ramped Half and Half, che consiste nella generazione
di individui con diversa lunghezza e cardinalit`a (caratteristiche che invece nella ge-
nerazione casuale rimarrebbero mediamente costanti). Per lo studio effettuato in
questa tesi `e stata usata la generazione puramente casuale.
2.4 Operatori
Negli algoritmi evoluzionistici gli operatori sono i protagonisti nell’esplorazione
nello spazio delle soluzioni del problema. Mentre l’inizializzazione gioca un ruolo
importante sulla variet`a iniziale di individui, gli operatori di variazione hanno il
compito di variare la popolazione durante l’evoluzione, diminuendo la probabilit`a di
ritrovarsi immediatamente in una soluzione ottima locale (chiaramente l’obiettivo `e
trovare quella ottima globale).
8
01001000110100010001000
Individuo 1
11010111011101011011101
Individuo 2
0100100 0110100010001000 11011101 110101110111010
0100100 11011101 0110100010001000 110101110111010
010010011011101
Figlio 1
0110100010001000110101110111010
Figlio 2
Figura 2.4: Esempio di applicazione di One Point Crossover.
2.4.1 One e Two Point(s) Crossover
L’operazione di crossover (ovvero ricombinazione) `e un processo di scambio in-
formativo tra i membri della popolazione con lo scopo di creare individui con una
miglior fitness. Esso ha la particolarit`a di variare anche la dimensione degli indi-
vidui, generandone di pi`u grandi o di pi`u piccoli [17]. Mentre in GP l’operazione
di scambio avviene direttamente sugli alberi scambiando due sotto-alberi a partire
da nodi scelti casualmente, in GE lo scambio riguarda porzioni di genotipo, ovve-
ro sotto-stringhe numeriche. In GE sono presenti vari tipi di crossover; qui sono
descritti solo i pi`u comuni, ovvero one e two point crossover e le loro varianti che
mantengono costante la dimensione dei figli (denominate come length preserving
crossover). Nello studio effettuato in questa tesi `e stato considerato solamente la
versione di one point crossover che mantiene fissa la lunghezza, dato che durante
l’evoluzione la lunghezza degli individui tende a crescere di molto rallentando l’ese-
cuzione, di fatto andando contro lo scopo della computazione evolutiva di rendere
pi`u veloce la risoluzione dei problemi.
Come visibile in figura 2.4 in one point crossover viene selezionata una posizione
casuale in entrambi i genotipi genitori e le parti a seguire da quelle posizioni sono
scambiate in modo da generare due nuovi membri. Two points crossover opera in
modo similare, selezionando due posizioni e scambiando la parte compresa da esse.
Le due varianti di one e two point(s) crossover che hanno la particolarit`a di
mantenere la stessa dimensione del genotipo operano spezzando entrambi i genitori
9
nella stessa posizione scelta casualmente. In questo modo la lunghezza degli indi-
vidui di una popolazione `e controllata, evitando che vengano generati individui di
dimensione tale da rallentare drasticamente l’evoluzione.
2.4.2 Probabilistic Mutation
La mutazione opera andando a modificare piccole e mirate parti genotipo, nel
caso in cui esso sia binario sono modificati i singoli bit effettuandone un’operazione
detta “flip”, ovvero di inversione. Questo specifico operatore modifica ogni singolo
bit, effettuandone il flip con una probabilit`a precedentemente impostata.
2.4.3 Crossover e Mutazione per SGE
Poich`e il mapper SGE necessita di una particolare struttura del genotipo diversa
dalla stringa binaria, gli operatori sopra descritti non si possono applicare. Gli
autori di questa variante hanno ideato quindi due operatori di crossover e mutazione
adattati per questo caso. In particolare la mutazione si basa su integer flip mutation,
qui inteso come sostituzione dell’intero con un altro casuale all’interno del dominio,
mentre il crossover `e simulato da un’operazione di ricombinazione, che, attraverso
una maschera binaria, indica quali parti dei genotipi scambiare [15].
2.5 Selezione
La selezione `e il meccanismo usato dalla computazione evolutiva per scegliere
quali genitori far riprodurre. `E un processo al quale porre una particolare attenzione,
poich´e, come avviene in natura, se si scegliesse soltanto gli individui migliori (e quindi
potenzialmente simili) si rischierebbe di creare una omogeneit`a tra gli individui
che potrebbe causare una convergenza prematura ad una soluzione ottima locale.
L’operazione di crossover, per sua natura, genera individui con valori di fitness
migliore o peggiore indipendentemente dal fatto che i genitori abbiamo una buona
fitness o meno. Questo fatto, comunemente causato dalla presenza di pi`u soluzioni
ottime locali nello spazio, porta a dover selezionare individui con valori di fitness
non sempre ottimali, in modo da mantenere una certa diversit`a tra la popolazione
[18].
2.5.1 Roulette Wheel e Tournament Selection
Due metodi per effettuare una selezione volutamente “imperfetta” degli individui
sono i seguenti:
10
Roulette Wheel Detta anche “selezione proporzionale alla fitness”, consiste nel-
l’associare ad ogni individuo una probabilit`a di essere scelto proporzionale al
suo valore di fitness. In particolare un individuo i ∈ C ha una probabilit`a
di essere scelto Pi = fi
j∈C fj
. In questo modo si da la possibilit`a anche ad
individui con bassa fitness di essere selezionati.
Tournament Si applica—ogni volta che si deve scegliere un individuo—prelevando
un sottoinsieme casuale di individui dall’intera popolazione e scegliendone
quello con miglior fitness. Ha inoltre l’abilit`a di poter variare, cambiando
la dimensione del sottoinsieme da prelevare, la “pressione” della selezione; in-
fatti se la dimensione del sottoinsieme `e pari a quella della popolazione, sar`a
assicurata la scelta del miglior individuo, se invece la dimensione `e pari a 1, si
pu`o considerare la scelta come puramente casuale.
2.6 Rimpiazzamento
Generalmente, avanzando con l’evoluzione, la numerosit`a della popolazione tende
a crescere, mentre nella computazione evolutiva generalmente `e di una dimensione
fissa. Per questo motivo `e necessario effettuare un’operazione di rimpiazzamento,
per poter costruire la nuova popolazione combinando nuovi e vecchi individui [18].
I due pi`u comuni metodi utilizzati in GE sono i seguenti:
Steady State consiste nel valutare ogni individuo generato al momento della sua
creazione; se il suo valore di fitness `e migliore di quello del peggior individuo
della attuale popolazione, allora viene inserito nella nuova popolazione e il
peggiore eliminato. Poich´e questo metodo tende a mantenere solamente gli
individui con miglior fitness, c’`e il rischio di una convergenza prematura ad
una soluzione locale.
Generational in questo metodo la popolazione ad ogni generazione `e formata da
nuovi individui, con i figli che sostituiscono i genitori. In questo modo l’esplo-
razione dello spazio `e pi`u ampio e si evita una immediata convergenza dato che
non sempre le operazioni di crossover e mutazione generano migliori individui.
Per evitare che il valore di fitness migliore della popolazione cali con l’avan-
zare dell’evoluzione, si procede solitamente con l’integrazione di una sorta di
elitismo, mantenendo i migliori individui incontrati durante l’evoluzione.
11
Capitolo 3
Evolvibilit`a
L’evolvibilit`a `e una caratteristica importante dei sistemi evoluzionistici, pu`o esse-
re definita come l’abilit`a di apportare dei miglioramenti in termini di fitness variando
casualmente la popolazione degli individui. Dato che in GE avvengono due trasfor-
mazioni, una data dalla funzione di mappatura e una dalla funzione di fitness, lo
studio dell’evolvibilit`a risulta ancora pi`u interessante dato che le variabili in gioco
sono maggiori rispetto ad altri algoritmi evoluzionistici. L’aggiunta di una trasfor-
mazione attuata dal mapper introduce, come gi`a anticipato, altre due caratteristiche,
ovvero ridondanza degli individui mappati e localit`a delle modifiche. `E probabile
di conseguenza che ci sia una relazione tra ridondanza/localit`a e evolvibilit`a, e di
conseguenza tra quest’ultima e mapper.
Lo scopo di questa tesi `e quindi analizzare da quali aspetti dipenda l’evolviblit`a
e cosa pu`o influire sul suo miglioramento o peggioramento. In particolare si valuter`a
l’influenza del tipo di operatore (mutazione e crossover), del mapper utilizzato (GE,
BGE, πGE e SGE) e della dimensione del genotipo. Ad oggi questo `e il primo
studio effettuato su questa possibile relazione tra evolvibilit`a e alcune tra le altre
caratteristiche di GE.
L’analisi `e stata suddivisa in due fasi, “statica” e “dinamica”. La prima consiste
nell’analisi dell’evolvibilit`a applicando pi`u volte gli operatori ad una popolazione
statica di individui. La seconda consiste invece nel valutare l’evolvibilit`a durante
l’evoluzione, calcolandola ad ogni generazione. Questa scelta di effettuare entrambe
le analisi `e derivata dal fatto che l’evolvability possa cambiare drasticamente da un
caso all’altro oppure variare soltanto ad un certo punto dell’evoluzione.
3.1 Problemi esaminati
Per non limitare l’analisi dell’evolvability ad uno specifico caso, si son considerati
quattro problemi di diversa natura: Harmonic, Polynomial, Santa-Fe e Text. Mentre
12
<expr> ::= (<expr><op><expr>) |
(<pre-op><expr>) |
<var>
<op> ::= + | *
<pre-op> ::= uminus | 1/ | sqrt
<var> ::= x
(a) Harmonic
<expr> ::= (<expr><op><expr>) |
(<pre-op><expr>) |
<var>
<op> ::= + | - | * | /
<pre-op> ::= sin | cos | exp | log
<var> ::= x | 1.0
(b) Polynomial
<code> ::= <line> | <code> <line>
<line> ::= <if> | <op>
<if> ::= if(food ahead())<line>
else<line>
<op> ::= left(); | right(); |
move();
(c) Santa-Fe
<text> ::= <sentence> <text> |
<sentence>
<sentence> ::= <Word> <sentence> |
<word> <sentence> |
<word> <punct>
<word> ::= <letter> <word> |
<letter>
<Word> ::= <Letter> <word>
<letter> ::= <vowel> | <consonant>
<vowel> ::= a | o | u | e | i
<consonant> ::= b | c | d | f | g |
h | j | k | l | m |
n | p | q | r | s |
t | v | w | x | y | z
<Letter> ::= <Vowel> | <Consonant>
<Vowel> ::= A | O | U | E | I
<Consonant> ::= B | C | D | F | G |
H | J | K | L | M |
N | P | Q | R | S |
T | V | W | X | Y | Z
<punct> ::= ! | ? | .
(d) Text
Figura 3.1: Le grammatiche dei problemi considerati.
i primi 3 sono dei classici problemi benchmark spesso usati in GE e GP [19], l’ultimo
`e stato introdotto in [7] appositamente per lo studio di localit`a e ridondanza. Son
stati scelti questi 4 problemi poich´e, date le loro grammatiche e funzioni di fitness
differenti, si crede possano rappresentare al meglio i problemi del mondo reale.
Harmonic In questo problema di regressione lo scopo `e quello di approssimare
la funzione f(x) = x
i=1
1
i
e la fitness `e l’errore assoluto calcolato nei punti
x ∈ {1, . . . , 50}.
Polynomial Anche qui lo scopo `e approssimare la funzione f(x) = x4
+x3
+x2
+x
e la fitness `e calcolata nei punti x ∈ {−1, −0.9, . . . , 0.9, 1}.
Santa-Fe Lo scopo `e trovare un programma che guidi una formica artificiale per
raccogliere 89 oggetti staticamente distribuiti in una griglia 32 × 32 entro un
massimo numero di passi. La fitness `e il numero di oggetti non raccolti.
Text Lo scopo `e creare una stringa che combaci con una definita a priori (Hello
world! in questo caso) e la fitness `e la distanza di Edit tra le due stringhe.
13
Tabella 3.1: Parametri usati per l’analisi statica
GE, BGE, πGE SGE
# di coppie di genotipi 300 300
# di applicazioni operatori 30 30
Crossover operator One-point SGE crossover
Mutation operator Prob mut, p = 0.01 SGE mut, p = 0.01
Dimensione iniziale genotipo 128, 256, 512, 1024 n.a.
Numero massimo di wraps 5 n.a.
Massima profondit`a albero n.a. 6
3.2 Analisi statica dell’evolvibilit`a
Il primo passo per l’analisi `e quella identificata come “statica”, ovvero valutare
le performance in termini di evolvibilit`a applicando i vari operatori e funzioni di
mappatura ad un set di individui generati casualmente.
3.2.1 Procedura sperimentale
L’analisi `e stata effettuata seguendo un procedimento cos`ı descritto:
• Per ogni variante di mapper, problema, operatore e dimensione di genotipo
(eccetto per SGE dato che la dimensione `e determinata dalla grammatica uti-
lizzata) si son generati 300 genotipi gp (per la mutazione) o coppie di genotipi
g1
p, g2
p (per il crossover).
• Per ogni genotipo o coppia di genotipi sono stati applicati gli operatori per 30
volte, generando ogni volta un figlio gc.
• Successivamente sono state applicate le funzioni di mappatura per i genitori
e per ogni figlio generato ottenendone i fenotipi p1
p, p2
p, pc, valutandone poi i
valori di fitness f1
p , f2
p , fc.
Il processo di generazione dei 300 individui/coppie `e stato pensato in modo
che per ogni combinazione di mapper, problema, operatore e dimensione ci siano
effettivamente 300 individui/coppie che assieme al figlio generato non diano dei
risultati di mappatura invalidi (ci`o non avviene per SGE poich´e di per s´e non genera
mappature invalide).
Nella Tabella 3.1 son presenti i parametri utilizzati per le funzioni di mappatura
e gli operatori genetici, oltre ai dettagli del procedimento. I risultati ottenuti sono
espressi in termini di Escape Probability e Fitness-Probability Cloud, condensati
poi nell’indice AEP [9].
14
3.2.2 Fitness-Probability cloud e AEP
La Escape Probability `e la probabilit`a che a partire da un valore di fitness se
ne ottenga uno migliore applicando un operatore genetico. Formalmente, come
descritto in [9], supponendo di partizionare lo spazio delle soluzioni in L + 1 set in
base ai valori di fitness, F = {f0, f1, ..., fL | f0 < f1 < ... < fL} rappresenta tutti
i possibili valori di fitness nello spazio di soluzioni. Si indica la media dei passi
richiesti, a partire da un valore di fitness fi, per trovarne uno migliore. L’Escape
Probability P(fi) `e quindi definita come
P(fi) =
1
Si
(3.1)
Maggiore `e il valore di Escape Probability per un particolare valore di fitness fi,
pi`u facile `e migliorare quel valore. Estendendo questo concetto ad un set di valori
di fitness, Pi indica il valore medio di Escape Probability per gli individui di fitness
maggiore o uguale a fi, definito come:
Pi =
fj∈Ci
P(fj)
|Ci|
, con Ci = {fj | j ≥ i} (3.2)
Se si considerano tutti i Pi per un dato problema si avrebbe un indice di evolvi-
bilit`a del problema. Ci`o pu`o essere rappresentato dalla Fitness-Probability Cloud:
fpc = {(f0, P0), ..., (fL, PL)} (3.3)
Questi valori possono essere condensati calcolandone la media. Questa media
prende il nome di Accumulated Escape Probability (AEP) ed `e definita come:
AEP =
fi∈F Pi
|F|
con F = {f0, f1, ..., fL | f0 < f1 < ... < fL} (3.4)
Maggiore `e il valore AEP, maggiore `e l’evolvability del problema e di conseguenza
pi`u facile da risolvere dovrebbe essere il problema considerato. Di conseguenza
questo indice pu`o essere utilizzato per esprimere, con le dovute approssimazioni, la
difficolt`a nell’ottenere soluzioni migliori durante l’evoluzione e quindi, fissati mapper,
operatore e genotipo, la difficolt`a del problema.
3.2.3 Risultati e osservazioni: AEP
Per poter comparare i risultati ottenuti da SGE con quelli ottenuti dagli altri
mapper si `e deciso di rappresentare la dimensione del genotipo |g| in bit assumendo
per ogni codone il minimo numero di bit necessario per rappresentare il dominio.
Nella Tabella 3.2 sono mostrati i valori di AEP (calcolati distintamente per l’o-
peratore di mutazione e quello di crossover), tra i quali sono evidenziati in grassetto
15
il migliore e gli altri che distano meno del 10% migliore. Gli stessi risultati sono
mostrati in forma grafica in Figura 3.2, dove X `e la dimensione del genotipo e Y il
valore di AEP. Dai risultati ottenuti `e possibile fare tre considerazioni:
1. si pu`o notare come i pi`u alti valori di AEP si ottengono per mutazione e
crossover a dimensioni di genotipo diverse. Infatti per l’operatore crossover
l’AEP migliore `e riscontrabile per dimensioni di genotipo piccole, in particolare
per i problemi Harmonic e Polynomial col mapper SGE, mentre per Sant-Fe
e Text all’incirca con gli altri 3 mapper, per dimensioni di genotipo a 128 bit.
Al contrario, per l’operatore mutazione il miglior AEP `e possibile averlo con
dimensioni di genotipo pari a 512 bit o 1024 bit e in particolare con il mapper
πGE.
2. il mapper SGE presenta dei valori AEP generalmente diversi da quelli ottenuti
con gli altri mapper. Applicando l’operatore mutazione, per esempio, con SGE
si ha dei valori di AEP molto pi`u bassi rispetto a tutti gli altri, che in pi`u sono
“coerenti” tra loro, ovvero che per ogni dimensione di genotipo sono simili
tra loro (questo fatto `e pi`u visibile nella Figura 3.2). Questo fatto mostra
potrebbe spiegare due aspetti, ovvero che il mapper SGE `e strutturalmente
diverso dagli altri 3 (che tra loro hanno la maggior parte delle caratteristiche
in comune), e che a sua volta la decisione del parametro di massima profondit`a
dell’albero `e significativa quanto non semplice da effettuare.
3. i valori medi di AEP in tutti e 4 i problemi rispecchiano a grosso modo la
loro natura. Harmonic e Polynomial hanno valori molto simili, in accordo
col fatto che hanno delle grammatiche simili e sono entrambi dei problemi di
regressione. D’altra parte Santa-Fe e Text hanno valori di AEP pi`u alti il che
suggerisce che la loro difficolt`a sia minore rispetto ad Harmonic e Polynomial.
Inoltre Text `e il problema dove `e possibile notare maggiormente le differenze
tra le varianti di mapper utilizzate.
3.2.4 Risultati e osservazioni: Fitness-Probability Cloud
Proseguendo con l’analisi, sono stati analizzati con pi`u dettaglio i dati con |g| =
1024 (o la dimensione predefinita di SGE). Nella Figura 3.3 `e mostrata la Fitness-
Probability Cloud per ogni combinazione di problema, operatore e mapper, dove
l’asse X rappresentata il valore di fitness del miglior genitore (o dell’unico genitore
nel caso di mutazione), mentre l’asse y l’Escape Probability.
Dato che per ogni combinazione sono state generate 300 differenti coppie di
genitori, per aver grafici pi`u chiari si `e deciso di scartare un quarto delle coppie
16
Tabella 3.2: Valori AEP per gli operatori mutazione e crossover.
Mutazione Crossover
Problema |g| GE BGE πGE SGE GE BGE πGE SGE
Harmonic
75 0.018 0.129
128 0.067 0.073 0.067 0.023 0.029 0.049
256 0.08 0.092 0.106 0.017 0.023 0.034
512 0.114 0.102 0.111 0.016 0.014 0.026
1024 0.113 0.11 0.12 0.01 0.01 0.016
Polynomial
121 0.019 0.097
128 0.047 0.048 0.049 0.027 0.033 0.058
256 0.067 0.06 0.074 0.019 0.02 0.036
512 0.071 0.072 0.071 0.009 0.012 0.02
1024 0.065 0.065 0.076 0.004 0.004 0.01
Santa-Fe
31 0.008 0.058
128 0.066 0.072 0.054 0.103 0.095 0.099
256 0.071 0.074 0.084 0.064 0.079 0.096
512 0.091 0.112 0.114 0.055 0.06 0.077
1024 0.123 0.141 0.148 0.044 0.058 0.077
Text
85 0.011 0.113
128 0.118 0.146 0.137 0.14 0.196 0.178
256 0.165 0.218 0.272 0.135 0.166 0.189
512 0.173 0.224 0.314 0.086 0.094 0.144
1024 0.203 0.223 0.334 0.057 0.051 0.083
17
0
0.1
0.2
0.3
Mutation
Harmonic Polynomial Santa-Fe Text
0 500 1,000
0
0.1
0.2
0.3
Crossover
0 500 1,0000 500 1,0000 500 1,000
GE BGE πGE SGE
Figura 3.2: AEP vs. dimensione genotipo |g|.
aventi la fitness peggiore (`e stata considerata la miglior fitness tra i due genitori) e
raggruppare le rimanenti in 10 intervalli aventi la stessa ampiezza lungo l’asse delle
ascisse. Ad ogni intervallo `e stata poi associata la media dei valori di fitness di
ogni coppia di genitori contenuta. La rimozione del quarto di coppie con peggior
fitness ha giovato soprattutto per Harmonic e Polynomial che non hanno una fitness
limitata.
Nella figura 3.3 `e possibile notare come l’Escape Probability diminuisca al mi-
glioramento del valore di fitness (si ricorda che per miglioramento si intende una
diminuzione del valore), il che rispecchia il fatto che, man mano che ci si avvicina
all’ottimo con la soluzione, la difficolt`a che si ha nel migliorarla aumenta. Questo
comportamento `e meno visibile per il problema Harmonic, il quale per sua natura
genera delle soluzioni molto sparse, il che va a distogliere l’attenzione sulla parte pi`u
vicina allo zero (soluzione ottima), le quali curve per`o hanno un andamento simile
a quelle degli altri problemi.
3.3 Analisi dinamica dell’evolvibilit`a
Per proseguire l’analisi dal punto di vista dell’evoluzione, si `e deciso di analizzare
l’andamento della fitness ad ogni generazione, per vedere quale combinazione di
18
500 1,000
0
0.2
0.4
Mutation
Harmonic
5 10 15 20
Polynomial
60 70 80
Santa-Fe
10 15 20
Text
500 1,000
0
0.2
0.4
Crossover
5 10 15 60 70 80 8 10 12
GE BGE πGE SGE
Figura 3.3: Fitness-Probability Cloud per dimensione di genotipo |g| = 1024 (o
quella predefinita per SGE).
mapper e dimensione genotipo si avvicina maggiormente alla soluzione ottima e con
che velocit`a (intesa come numero di generazioni).
3.3.1 Procedura sperimentale
Son stati presi in esame i tre mapper basati su stringhe binarie, ovvero GE,
BGE e PiGE, mentre come dimensione genotipo 256 bit e 1024 bit. Gli operatori
scelti sono probabilistic mutation e length preserving one point crossover, applicati
rispettivamente con una percentuale pari a 20% e 80%. Nella Tabella 3.3 `e possibile
vedere i parametri utilizzati per l’analisi dinamica. Oltre ad analizzare l’evoluzione
vera e propria, si `e tenuto traccia anche dell’indice AEP per vedere se effettivamente,
come si suppone, sussiste una stretta correlazione tra evolvability e miglioramento
della fitness.
3.3.2 Risultati e osservazioni
Come si pu`o vedere confrontando la Figura 3.4 con la Figura 3.5, in media il
miglioramento di fitness `e tanto pi`u marcato quanto `e presente un alto valore di
Average Escape Probability. In particolare, sia per il valore di fitness che di AEP,
19
Tabella 3.3: Parametri usati per l’analisi dinamica.
Popolazione 500
# di generazioni 50
# di ripetizioni 10
Mapper analizzati GE, BGE, πGE
Operatore Crossover Length Preserving One-point con rate 0.8
Operatore Mutation Probabilistic mutation, p = 0.01 con rate 0.2
Numero massimo di wraps 5
Dimensione iniziale genotipo 256, 1024
Tecnica di inizializzazione puramente casuale
Tecnica di selezione Tournament con dimensione=3
Tecnica di rimpiazzamento Steady-State
20 40
0
0.2
0.4
256bit
Harmonic
20 40
Polynomial
20 40
Santa-Fe
20 40
Text
20 40
0
0.2
0.4
1024bit
20 40 20 40 20 40
GE BGE πGE
Figura 3.4: AEP durante l’evoluzione.
20
20 40
20
30
40
50
256bit
Harmonic
20 40
4
6
8
10
12
Polynomial
20 40
60
80
Santa-Fe
20 40
4
6
8
10
Text
20 40
20
30
40
50
1024bit
20 40
2
4
6
8
10
20 40
60
80
20 40
6
8
10
GE BGE πGE
Figura 3.5: Miglior fitness durante l’evoluzione.
durante l’evoluzione si susseguono due fasi: la prima dove avviene un netto miglio-
ramento degli individui, la seconda dove i miglioramenti sono sporadici e di minor
rilevanza. Questo fatto pu`o essere riferito all’omogeneit`a (in termini di fitness) cre-
scente della popolazione con l’avanzare dell’evoluzione, dato che alla generazione
successiva son mantenuti gli individui migliori, diminuendo la diversit`a della popo-
lazione. In questo modo la probabilit`a di trovare soluzioni migliori cala, come `e
visibile in Figura 3.4.
Un’altra considerazione `e possibile farla osservando il valore AEP: nonostante il
valore massimo raggiungibile durante l’evoluzione rimanga circa lo stesso variando
la dimensione del genotipo, il numero di generazioni dove esso `e diverso da zero `e
maggiore per il caso con 256 bit. Ci`o `e in linea con gli esiti dati dall’analisi statica:
infatti durante l’evoluzione l’operatore prevalente `e il crossover, e proprio per il
crossover si ha una maggiore evolvibilit`a avendo genotipi di piccole dimensioni.
Un altro fatto evidente `e che nessuno tra i mapper utilizzati `e migliore in assoluto
rispetto agli altri, il che fa propendere che la mappatura genotipo-fenotipo, conside-
rata singolarmente, non giochi un ruolo essenziale nell’apportare un miglioramento
rilevante alle prestazioni del sistema.
21
Capitolo 4
Ulteriori esperimenti
Per cercare di spiegare in modo pi`u esaustivo i risultati ottenuti con lo studio
statico e dinamico dell’Escape Probability, sono state svolte delle analisi aggiun-
tive, con lo scopo di trovare quali caratteristiche possano influire positivamente o
negativamente sull’evolvibilit`a.
4.1 Ridondanza e localit`a
Per cercare di identificare quali fattori causino l’evolvibilit`a in GE, si `e provato
a studiare la localit`a e la ridondanza, ovvero due propriet`a che misurano quanto si
rispetti il principio generale dell’ereditariet`a variabile [1].
Localit`a misura con che grado piccole modifiche al genotipo di un individuo corri-
spondono a piccole modifiche al fenotipo. In particolare `e calcolato il coefficien-
te di correlazione lineare tra la distanza minima di genotipi min(dg(g1
p, gc), dg(g2
p, gc))
e la distanza minima di fenotipi min(dp(p1
p, pc), dp(p2
p, pc)).
Ridondanza misura quanto spesso diversi genotipi sono mappati su di uno stesso
fenotipo, calcolando la percentuale dei casi in cui il figlio ha genotipo diverso
da quelli dei genitori e ha fenotipo uguale a uno tra quelli dei due genitori.
Per i genotipi `e stata utilizzata la distanza di Hamming (dg) mentre per i fenotipi
la distanza di Levenshtein (edit distance, dp). Si son misurate localit`a e ridondanza
separatamente per ogni combinazione di mapper, problema operatore e dimensione
di genotipo, mostrate poi assieme alla retta di regressione lineare e al valore di AEP
nelle figure 4.1 e 4.2. Si ricorda che tutti i parametri hanno un dominio limitato
([0,1] per AEP e ridondanza essendo delle frequenze relative, [-1,1] per la localit`a
espressa come correlazione).
22
0.2 0.4 0.6 0.8
0.1
0.2
0.3
Ridondanza
AccumulatedEscapeProbability
Figura 4.1: AEP vs. ridondanza.
0 0.1 0.2 0.3 0.4
0.1
0.2
0.3
Localit`a
Figura 4.2: AEP vs. localit`a.
La figura 4.1 mostra come ci sia una chiara influenza della ridondanza sull’evolvi-
bilit`a; in particolare una minore ridondanza porta ad avere una miglior evolvibilit`a.
Ci`o `e possibilmente dovuto al fatto che se la mappatura genotipo-fenotipo fatica a
generare individui con genotipo differente da quello dei genitori, si ha una minor
probabilit`a di avere degli individui con miglior (o peggior) fitness. In questi termini
si suppone che un’adozione di una funzione di mapping incentrata a favorire una
bassa ridondanza possa influire positivamente all’evolvability e di conseguenza alle
prestazioni dell’evoluzione, al contrario di quanto affermato in [20].
Al contrario, la figura 4.2 non esprime alcun forte legame. Infatti il coefficiente di
determinazione della regressione lineare `e in questo caso molto baso (R2
= 0.05, al
contrario di quello riguardante la ridondanza, ovvero R2
= 0.45). Questo `e spiegabile
dal fatto che la localit`a indica solamente una correlazione tra l’entit`a della modifica
apportata al genotipo e quella conseguente avvenuta al fenotipo, senza indicare
se questa modifica abbia apportato un peggioramento o una miglioria al valore di
fitness.
4.2 Proposta di mapper con bassa ridondanza
Poich´e si `e notato come una bassa ridondanza aumenti in media l’escape pro-
bability, si `e cercato di implementare una funzione di mappatura, identificata qui
con l’acronimo “LrGE” (Low Redundancy GE), che portasse alla generazione di un
pi`u vario set di fenotipi. Infatti `e stato costruito in modo tale che la modifica di un
solo bit influisca su tutto il fenotipo. Inoltre, come SGE, La modalit`a con cui viene
23
<code> ::= <line> | <code> <line>
<line> ::= <if> | <op>
<if> ::= if(food ahead())<line>
else<line>
<op> ::= left(); | right(); |
move();
(a) Santa-Fe
<code> ::= <line>
<line> ::= <op>
<if> ::= if(food ahead())<line>
else<line>
<op> ::= left(); | right(); |
move();
(b) Santa-Fe
Figura 4.3: Grammatica del problema SantaFe resa non ricorsiva.
generato il fenotipo a partire dal genotipo `e ricorsiva e simile alla costruzione di un
albero.
1. La mappatura inizia dal simbolo iniziale s0 al quale `e associato l’intero genotipo
g.
2. Sia s in p un non terminale al quale `e associato una parte del genotipo g
e rs la relativa regola di produzione. Per la scelta dell’opzione da usare per
espandere s si opera in questo modo:
• si divide il genotipo in parti lunghe n =8 bit.
• Posto m come il numero delle parti cos`ı ottenute e vi come la codifica in
valore intero di ogni i-esima parte, l’indice j dell’opzione da scegliere `e
cos`ı calcolato: j = m
i=1 vi mod |rs|
3. Scelta l’opzione, il genotipo viene suddiviso in un numero di parti pari al
numero di simboli che contiene l’opzione scelta.
4. Per ogni simbolo viene associata la relativa parte di genotipo e se la dimensione
`e maggiore o uguale a 8 bit allora la mappatura continua dal punto 2 avendo
cura di considerare come genotipo la parte associata al simbolo. Se invece
`e minore di 8 bit, viene considerato per lo step successivo l’intero genotipo e
come grammatica una sua versione non ricorsiva in modo che da quel punto
in poi si arriver`a di sicuro ad un simbolo terminale, come mostrato in Figura
4.3.
Dai grafici mostrati in Figura 4.4 si nota come il mapper proposto abbia una
ridondanza molto minore rispetto agli altri analizzati. Nonostante questa evidente
differenza, le prestazioni in termini di miglior fitness sono lievemente apprezzabili
solamente per la dimensione di genotipo pari a 1024 bit per i problemi Harmonic
e Santa-Fe, mentre pari a 256 bit per il problema Polynomial, come visibile nella
Figura 4.5.
Osservando la Figura 4.6 si nota invece come l’escape probability media abbia un
valore generalmente maggiore (meno evidente per il problema Santa-Fe) e che duri
24
0
0.2
0.4
0.6
0.8
1
Crossover
GE BGE πGE LrGE
0
0.2
0.4
0.6
0.8
1
Mutazione
Harmonic Polynomial SantaFe Text
Figura 4.4: LrGE confrontato con GE, BGE e πGE in termini di ridondanza per
ogni problema con dimensione del genotipo |g| = 1024 .
15
20
25
30
256bit
Harmonic
2
3
4
Polynomial
42
44
46
48
50
Santa-Fe
4
5
6
Text
10 20 30 40 50
10
15
20
25
30
1024bit
10 20 30 40 50
2
2.5
3
3.5
4
10 20 30 40 50
40
45
50
10 20 30 40 50
5
5.5
6
GE BGE πGE LrGE
Figura 4.5: Miglior fitness durante l’evoluzione; confronto col mapper proposto.
25
20 40
0
0.2
0.4
Harmonic
20 40
Polynomial
20 40
Santa-Fe
20 40
Text
GE BGE πGE LrGE
Figura 4.6: confronto AEP durante l’evoluzione con dimensione del genotipo |g| =
1024.
per pi`u generazioni, di fatto andando a confermare la relazione tra bassa ridondanza
e alta evolvibilit`a.
4.3 Rappresentazione visiva dei genotipi durante
l’evoluzione
L’ultima attivit`a effettuata `e stata quella di cercare un modo per avere un re-
sponso visivo dell’andamento evolutivo. Per far ci`o si `e pensato di effettuare una
conversione in immagine del genotipo con miglior fitness per ogni generazione. In
particolare ogni individuo `e rappresentato come sequenza di bit, codificata come
vettore di pixel bianchi o neri, e per ogni generazione viene accodato il miglior in-
dividuo. In questo modo si pu`o notare la permanenza di alcune parti del genotipo
durante l’evoluzione (ereditariet`a) causate dalla combinazione di un individuo col
precedente migliore e il ritrovamento di uno con miglior fitness ma proveniente da
un altro ramo di parentela.
In Figura 4.7 `e mostrata una evoluzione lunga 150 generazioni di 500 individui
di lunghezza costante pari a 512 bit. Il mapper utilizzato `e lo standard GE mentre
gli operatori sono length preserving one point crossover e probabilistic mutation.
Come si pu`o vedere, per un breve periodo prevale un unico individuo, fintantoch´e
sopraggiunge una combinazione con miglior fitness.
26
Figura 4.7: Rappresentazione dei migliori individui durante l’evoluzione per i
problemi Harmonic, Polynomial, SantaFe e Text
27
Capitolo 5
Considerazioni finali e conclusioni
La funzione di mappatura genotipo-fenotipo gioca un ruolo cruciale e pu`o essere
considerata come la principale motivazione dell’utilizzo di GE come algoritmo di
evoluzione in molti campi di applicazione. D’altra parte molti studi hanno mostrato
come i mapper non aderiscano appieno con il principio di eredit`a, mostrando bassa
localit`a e alta ridondanza.
In questa tesi si `e studiato sperimentalmente l’evolvibilit`a di GE sia staticamente
(tenendo conto di una singola generazione) che dinamicamente (valutando durante
un’evoluzione lunga 50 generazioni) in differenti condizioni di problema, funzione
di mappatura, dimensione genotipo e operatore genetico. Questa propriet`a `e stata
analizzata utilizzando il parametro “Accumulated Escape Probabilty” e “Fitness
Probability Cloud”. Inoltre `e stata confrontata con la propriet`a di localit`a e ridon-
danza per vedere se ci fosse una qualche correlazione. Le conclusioni che si possono
trarre sono le seguenti:
• Per tutti i problemi analizzati, nessuna caratteristica presa singolarmente tra
funzione di mappatura, dimensione del genotipo o operatore genetico porta un
netto miglioramento per quanto riguarda l’evolvibilit`a del sistema. In questo
senso le performance di un mapper piuttosto che un altro son legate stretta-
mente alla tipologia di problema che si vuole affrontare, e lo stesso vale per
operatore e dimensione del genotipo. Allo stesso modo, osservando i risultati
dinamici, tra le tre varianti di mapper analizzati nessuno predomina in termini
di miglior fitness.
• Un risultato notevole lo si `e visto analizzando la relazione tra evolvability e
ridondanza, mostrando quanto possa quest’ultima avere una discreta influenza
sulla prima pi`u di quanto la abbia la localit`a. Infatti si `e potuto vedere come
una bassa ridondanza porti ad avere una maggiore evolvibilit`a, il che pu`o essere
visto come uno spunto per dei futuri studi e approfondimenti.
28
• La ridondanza di un mapper seppur influisca per l’evolvibilit`a di un sistema,
non `e sufficiente a far si che quest’ultimo sia superiore dal punto di vista
prestazionale durante l’evoluzione. Infatti il mapper proposto, nonostante
abbia una ridondanza ben al di sotto del 30%, ha delle prestazioni in linea con
quelle degli altri mapper usati come confronto.
• Riguardo l’ultima parte dello studio, ovvero la rappresentazione dell’evoluzione
sotto forma di immagine, ha dato la possibilit`a di vedere come soltanto durante
le prime generazioni avvenga l’esplorazione di soluzioni distanti tra loro nello
spazio (genotipi molto differenti tra loro), mentre avviene poi un raffinamento
della migliore, che per`o non `e detto sia la migliore in assoluto. L’immissione di
nuovi individui casuali e l’utilizzo di un operatore che non mantenga costante
la lunghezza del genotipo durante l’evoluzione potrebbe far si che l’esplorazione
dello spazio sia pi`u vasta con la conseguente meno probabilit`a di imbattersi
prematuramente in soluzioni ottime locali.
Per concludere si pu`o affermare che non esiste una combinazione di funzione
di mappatura, operatore e dimensione del genotipo migliore in assoluto per ogni
problema, piuttosto ogni problema necessita di uno studio mirato a trovare la com-
binazione che dia una maggiore prestazione. Una volta trovata la configurazione ot-
timale, sicuramente una bassa ridondanza porta ad avere una maggiore evolvibilit`a
e di conseguenza un tempo di esecuzione minore per trovare la soluzione.
29
Bibliografia
[1] Kenneth A De Jong. Evolutionary computation: a unified approach. MIT press,
2006.
[2] Robert I Mckay, Nguyen Xuan Hoai, Peter Alexander Whigham, Yin Shan,
and Michael O’Neill. Grammar-based genetic programming: a survey. Genetic
Programming and Evolvable Machines, 11(3-4):365–396, 2010.
[3] Alberto Bartoli, Andrea De Lorenzo, Eric Medvet, and Fabiano Tarlao. Syntac-
tical similarity learning by means of grammatical evolution. In Parallel Problem
Solving from Nature – PPSN XIV: 14th International Conference, Edinburgh,
UK, September 17-21, 2016, Proceedings, pages 260–269, Cham, 2016. Springer
International Publishing.
[4] Katherine M Malan and Andries P Engelbrecht. A survey of techniques for
characterising fitness landscapes and some possible ways forward. Information
Sciences, 241:148–163, 2013.
[5] Tom Castle and Colin G Johnson. Positional effect of crossover and mutation
in grammatical evolution. In European Conference on Genetic Programming,
pages 26–37. Springer, 2010.
[6] Ann Thorhauer. On the non-uniform redundancy in grammatical evolution.
In International Conference on Parallel Problem Solving from Nature, pages
292–302. Springer, 2016.
[7] Eric Medvet. A comparative analysis of dynamic locality and redundancy in
grammatical evolution. In Genetic Programming: 20th European Conference,
EuroGP 2017, Amsterdam, Netherlands, April 19-21, 2017, Proceedings, page
to appear, Cham, 2017. Springer International Publishing.
[8] S´ebastien Verel, Philippe Collard, and Manuel Clergue. Where are bottlenecks
in nk fitness landscapes? In Evolutionary Computation, 2003. CEC’03. The
2003 Congress on, volume 1, pages 273–280. IEEE, 2003.
30
[9] Guanzhou Lu, Jinlong Li, and Xin Yao. Fitness-probability cloud and a mea-
sure of problem hardness for evolutionary algorithms. In European Conference
on Evolutionary Computation in Combinatorial Optimization, pages 108–117.
Springer, 2011.
[10] Maggie Johnson and Julie Zelenski. Formal grammars, 2012.
[11] J.W. Backus. The syntax and semantics of the proposed international algebraic
language of the zuricacm-gamm conference. 1959.
[12] Michael O’Neill and Conor Ryan. Grammatical evolution. IEEE Transactions
on Evolutionary Computation, 5(4):349–358, 2001.
[13] Michael O’Neill, Anthony Brabazon, Miguel Nicolau, Sean Mc Garraghy,
and Peter Keenan. πgrammatical evolution. In Genetic and Evolutionary
Computation Conference, pages 617–629. Springer, 2004.
[14] David Fagan, Miguel Nicolau, Michael O’Neill, Edgar Galv´an-L´opez, Anthony
Brabazon, and Sean McGarraghy. Investigating mapping order in πge. In IEEE
Congress on Evolutionary Computation, pages 1–7. IEEE, 2010.
[15] Nuno Louren¸co, Francisco B Pereira, and Ernesto Costa. Sge: a structu-
red representation for grammatical evolution. In International Conference on
Artificial Evolution (Evolution Artificielle), pages 136–148. Springer, 2015.
[16] Robin Harper. Ge, explosive grammars and the lasting legacy of bad
initialisation. 2010.
[17] Michael O’Neill, Conor Ryan, Maarten Keijzer, and Mike Cattolico. Crosso-
ver in grammatical evolution. Genetic programming and evolvable machines,
4(1):67–93, 2003.
[18] David Fagan. Analysing the Genotype-Phenotype Map in Grammatical
Evolution. PhD thesis, University College Dublin, 2013.
[19] David R White, James Mcdermott, Mauro Castelli, Luca Manzoni, Brian W
Goldman, Gabriel Kronberger, Wojciech Ja´skowski, Una-May O’Reilly, and
Sean Luke. Better gp benchmarks: community survey results and proposals.
Genetic Programming and Evolvable Machines, 14(1):3–29, 2013.
[20] Marc Ebner, Patrick Langguth, Juergen Albert, Mark Shackleton, and
Rob Ship-man. On neutral networks and evolvability. 2001 Congress on
Evolutionary Computation CEC2001, pages 1—-8, 2001.
31

More Related Content

Viewers also liked

Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...IOSR Journals
 
Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Università degli Studi di Trieste
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingdanielenicassio
 
Maquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhosMaquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhosjdlimaaear
 
Social Media Report - Retail Brands (Australia) July-August 2016
Social Media Report - Retail Brands (Australia) July-August 2016Social Media Report - Retail Brands (Australia) July-August 2016
Social Media Report - Retail Brands (Australia) July-August 2016Unmetric
 
Pòster jipi 2017
Pòster jipi 2017Pòster jipi 2017
Pòster jipi 2017ARGET URV
 
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017Dwi Yustiani
 
Sunitha G Resume
Sunitha G ResumeSunitha G Resume
Sunitha G Resumesunitha g
 
Portfolio by Naruemon poolsombat M.6/11 No.7
Portfolio by Naruemon poolsombat M.6/11 No.7Portfolio by Naruemon poolsombat M.6/11 No.7
Portfolio by Naruemon poolsombat M.6/11 No.7Pawarin Ja
 

Viewers also liked (10)

Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
Performance Analysis of Various Symbol Detection Techniques in Wireless MIMO ...
 
Presentación
PresentaciónPresentación
Presentación
 
Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...Progetto e realizzazione di un sistema per la generazione automatica di recen...
Progetto e realizzazione di un sistema per la generazione automatica di recen...
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decoding
 
Maquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhosMaquetes, batalhas e outros trabalhos
Maquetes, batalhas e outros trabalhos
 
Social Media Report - Retail Brands (Australia) July-August 2016
Social Media Report - Retail Brands (Australia) July-August 2016Social Media Report - Retail Brands (Australia) July-August 2016
Social Media Report - Retail Brands (Australia) July-August 2016
 
Pòster jipi 2017
Pòster jipi 2017Pòster jipi 2017
Pòster jipi 2017
 
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
Dwi yustiani hapzi ali simlog-pb_ut denpasar 2017
 
Sunitha G Resume
Sunitha G ResumeSunitha G Resume
Sunitha G Resume
 
Portfolio by Naruemon poolsombat M.6/11 No.7
Portfolio by Naruemon poolsombat M.6/11 No.7Portfolio by Naruemon poolsombat M.6/11 No.7
Portfolio by Naruemon poolsombat M.6/11 No.7
 

Similar to Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione grammaticale

Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Nicola Timeus
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...mfurlanetto
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...DamianoRavalico
 
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...Marco Virgo
 
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia
 
Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...
Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...
Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...MarziaPaschini
 
Analisi delle corrispondenze multiple
Analisi delle corrispondenze multipleAnalisi delle corrispondenze multiple
Analisi delle corrispondenze multipleMarco D'Alessandro
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Simone Cumar
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeAntonella79
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Filippo Muscolino
 
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”StefanoChen1
 
CaputiDomenicoMagistrale
CaputiDomenicoMagistraleCaputiDomenicoMagistrale
CaputiDomenicoMagistraleDomenico Caputi
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System Stefano Bonetta
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiMicheleDamian
 
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Stefano Costanzo
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...maik_o
 
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - TesiRilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesitemp temp
 
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...Raffaella D'angelo
 

Similar to Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione grammaticale (20)

Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
 
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
 
tesi
tesitesi
tesi
 
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
 
Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...
Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...
Sviluppo e implementazione di un modello di ottimizzazione per un'efficiente ...
 
Analisi delle corrispondenze multiple
Analisi delle corrispondenze multipleAnalisi delle corrispondenze multiple
Analisi delle corrispondenze multiple
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificiale
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
 
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
Extended Summary of “Exploring the Evolution of GANs through Quality Diversity”
 
CaputiDomenicoMagistrale
CaputiDomenicoMagistraleCaputiDomenicoMagistrale
CaputiDomenicoMagistrale
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
 
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
 
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - TesiRilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
 
Tesi
TesiTesi
Tesi
 
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
 

Recently uploaded

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioServizi a rete
 

Recently uploaded (7)

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
 

Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione grammaticale

  • 1. UNIVERSIT`A DEGLI STUDI DI TRIESTE Tesi Magistrale in Ingegneria Informatica Analisi sperimentale comparativa dell’evolvibilit`a nei sistemi di evoluzione grammaticale LAUREANDO RELATORE Tagliapietra Danny Chiar.mo Prof. Eric Medvet Universit`a degli Studi di Trieste CORRELATORE Dott. Fabio Daolio University of Stirling, Stirling Anno Accademico 2015/2016
  • 2. Indice Elenco delle figure iii Elenco delle tabelle iv 1 Introduzione 1 1.1 Stato dell’arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Evoluzione Grammaticale 4 2.1 Grammatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Funzioni di Mappatura . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 Standard e Breadth First GE . . . . . . . . . . . . . . . . . . 6 2.2.2 PiGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 Structured GE . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Inizializzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4.1 One e Two Point(s) Crossover . . . . . . . . . . . . . . . . . . 9 2.4.2 Probabilistic Mutation . . . . . . . . . . . . . . . . . . . . . . 10 2.4.3 Crossover e Mutazione per SGE . . . . . . . . . . . . . . . . . 10 2.5 Selezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5.1 Roulette Wheel e Tournament Selection . . . . . . . . . . . . 10 2.6 Rimpiazzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Evolvibilit`a 12 3.1 Problemi esaminati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Analisi statica dell’evolvibilit`a . . . . . . . . . . . . . . . . . . . . . . 14 3.2.1 Procedura sperimentale . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2 Fitness-Probability cloud e AEP . . . . . . . . . . . . . . . . . 15 3.2.3 Risultati e osservazioni: AEP . . . . . . . . . . . . . . . . . . 15 3.2.4 Risultati e osservazioni: Fitness-Probability Cloud . . . . . . . 16 3.3 Analisi dinamica dell’evolvibilit`a . . . . . . . . . . . . . . . . . . . . . 18 3.3.1 Procedura sperimentale . . . . . . . . . . . . . . . . . . . . . . 19 i
  • 3. 3.3.2 Risultati e osservazioni . . . . . . . . . . . . . . . . . . . . . . 19 4 Ulteriori esperimenti 22 4.1 Ridondanza e localit`a . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2 Proposta di mapper con bassa ridondanza . . . . . . . . . . . . . . . 23 4.3 Rappresentazione visiva dei genotipi durante l’evoluzione . . . . . . . 26 5 Considerazioni finali e conclusioni 28 Bibliografia 30 ii
  • 4. Elenco delle figure 2.1 Esempio di grammatica. . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Esempio della grammatica in 2.1 nella forma BNF. . . . . . . . . . . 5 2.3 Applicazione del mapper GE e BGE. . . . . . . . . . . . . . . . . . . 7 2.4 Esempio di applicazione di One Point Crossover. . . . . . . . . . . . . 9 3.1 Le grammatiche dei problemi considerati. . . . . . . . . . . . . . . . . 13 3.2 AEP vs. dimensione genotipo |g|. . . . . . . . . . . . . . . . . . . . . 18 3.3 Fitness-Probability Cloud per dimensione di genotipo |g| = 1024 (o quella predefinita per SGE). . . . . . . . . . . . . . . . . . . . . . . . 19 3.4 AEP durante l’evoluzione. . . . . . . . . . . . . . . . . . . . . . . . . 20 3.5 Miglior fitness durante l’evoluzione. . . . . . . . . . . . . . . . . . . . 21 4.1 AEP vs. ridondanza. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 AEP vs. localit`a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Grammatica del problema SantaFe resa non ricorsiva. . . . . . . . . . 24 4.4 LrGE confrontato con GE, BGE e πGE in termini di ridondanza per ogni problema con dimensione del genotipo |g| = 1024 . . . . . . . . . 25 4.5 Miglior fitness durante l’evoluzione; confronto col mapper proposto. . 25 4.6 confronto AEP durante l’evoluzione con dimensione del genotipo |g| = 1024. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.7 Rappresentazione dei migliori individui durante l’evoluzione per i problemi Harmonic, Polynomial, SantaFe e Text . . . . . . . . . . . . 27 iii
  • 5. Elenco delle tabelle 3.1 Parametri usati per l’analisi statica . . . . . . . . . . . . . . . . . . . 14 3.2 Valori AEP per gli operatori mutazione e crossover. . . . . . . . . . 17 3.3 Parametri usati per l’analisi dinamica. . . . . . . . . . . . . . . . . . 20 iv
  • 6. Capitolo 1 Introduzione La necessit`a di trovare la soluzione a problemi molto complessi nel minor tem- po possibile ha portato negli scorsi decenni a studiare metodi alternativi a quelli puramente matematici per risolverli, accettando un compromesso tra tempo di ese- cuzione ed esattezza della soluzione. Fra questi metodi la computazione evolutiva (EC) permette l’utilizzo di un sistema evolutivo come un processo computazionale per la risoluzione di problemi di varia natura, che possono spaziare dalla rilevazione di frodi al riconoscimento facciale, fino ad arrivare alla risoluzione di problemi di ottimizzazione. Il sistema evolutivo considerato in EC `e basato sul processo naturale che regola l’esistenza degli esseri viventi e in particolare sulla teoria evoluzionistica Darwiniana [1], i quali elementi chiave, utili a comprendere i concetti base sul suo funzionamento, sono i seguenti: • Uno o pi`u popolazioni di individui in competizione per delle risorse limitate. • Il cambiamento della popolazione causato dalla morte e nascita di individui. • Il concetto di fitness che rispecchia l’abilit`a di un individuo di sopravvivere. • Il concetto di ereditariet`a variabile: i figli non sono identici ai genitori seppur ci sia una notevole somiglianza. Similmente a come avviene in natura, l’evoluzione consiste nel variare la popo- lazione ricombinandone gli individui, ottenendo di volta in volta una nuova popo- lazione formata da discendenti sempre migliori in termini di fitness, sfruttando il fatto che, seppur i figli differiscano dai genitori, mantengono comunque una parte del patrimonio genetico. Questo processo viene iterato pi`u volte con lo scopo di avvicinarsi il pi`u possibile all’individuo perfetto, ovvero alla soluzione del proble- ma che ci si era imposti di risolvere. Data l’estrema somiglianza con l’evoluzione naturale molti termini e concetti usati in EC sono stati assimilati dalla biologia. 1
  • 7. La computazione evolutiva comprende, oltre al concetto base di evoluzione, vari algoritmi evoluzionistici che la implementano. Uno tra questi `e l’evoluzione gramma- ticale (GE), particolare algoritmo genetico dove l’elemento fondamentale che costi- tuisce le caratteristiche di un individuo `e il genotipo, espresso come stringa binaria, allo stesso modo in cui il cromosoma costituisce il fenotipo di un essere vivente. Sui genotipi viene poi applicata una funzione, detta di mappatura o mapper, che determina la costruzione di un albero, le quali foglie consistono in una soluzione di un determinato problema formalizzato con una grammatica; per questo motivo nella comunit`a scientifica GE `e considerato come un particolare caso della program- mazione genetica (GP) [2], dato che molti concetti, descritti nel prossimo capitolo, sono comuni mentre differiscono principalmente per la presenza del genotipo e del mapper. Essendo GE, come tutti gli algoritmi genetici, di tipo euristico, non `e detto che una evoluzione porti sicuramente ad una soluzione ottima, n`e tanto meno ad una soluzione che pi`u le si avvicina. Per questo solitamente si `e portati a dover scegliere, non facilmente, la giusta configurazione di rappresentazione, operatori e parametri (per esempio la dimensione del genotipo [3]) che consenta di risolvere al meglio il problema considerato, solitamente poco conosciuto. Un modo per ovviare a questa difficolt`a `e l’analisi della Fitness Landscape, ovvero lo studio dello spazio delle soluzioni atto a identificare le caratteristiche di un problema, in modo da aiutare nella scelta della miglior metaeuristica1 da applicare [4]. In questo studio son state analizzate le misure della Fitness Landscape legate al concetto di evolvibilit`a. L’evolvibilit`a, ovvero la capacit`a di generare una prole di individui con miglior fitness ad ogni generazione per tutta la durata dell’evolu- zione, `e solitamente usata per quantificare la difficolt`a di un problema, ma qui `e stata esaminata per confrontare diverse varianti di GE (cio`e funzioni di mappatura) usando gli stessi problemi. In particolare `e stata analizzata e valutata sperimental- mente l’evolvibilit`a di alcuni mapper, variando operatore genetico e dimensione del genotipo, per quattro differenti problemi comunemente utilizzati come benchmark. Successivamente un confronto con altre due metriche relative ai mapper (ridondanza e localit`a) ha mostrato come una bassa ridondanza porti ad un’alta evolvibilit`a. 1.1 Stato dell’arte Ad oggi sono stati effettuati numerosi studi per caratterizzare i comportamenti di GE e l’interazione tra le funzioni di mappatura e operatori genetici, specialmente 1 Metodo euristico per la soluzione di un insieme di problemi combinando diverse procedure a loro volta euristiche 2
  • 8. in termini di localit`a e ridondanza2 [5; 6; 7]. In particolare si `e scoperto come la ridondanza sia non uniforme, ovvero presenta una non uniformit`a nel numero di genotipi che mappano lo stesso genotipo, e come, durante l’evoluzione, ci sia un’interazione tra localit`a/ridondanza e altre misure relative all’evoluzione, cio`e dimensione del genotipo e diversit`a degli individui a livello di genotipo, fenotipo e valore di fitness. Altri studi sono stati effettuati sulla programmazione genetica riguardo l’evolvibilit`a, in particolare sulle metriche adottate [4]. Tra queste ci si `e basati sul concetto di “Fitness Cloud” introdotto in [8] che esprime l’evolvibilit`a in termini di correlazione tra il valore di fitness di un individuo genitore e quello dei suoi figli. In questa tesi ci si `e concentrati su due strumenti piuttosto recenti per la misura dell’evolvibilit`a: la “Fitness Probability Cloud”, che in essenza mostra la correlazione tra il valore di fitness del genitore con il tasso che i suoi figli possano essere migliori, e una misura numerica basata su di essa, chiamata “Average Escape Probability”, per quantificare la difficolt`a di un problema [9]. 2 caratteristiche che indicano rispettivamente la correlazione della modifica sul genotipo con la modifica sul fenotipo che ne deriva e il tasso di fenotipi uguali mappati da diversi genotipi 3
  • 9. Capitolo 2 Evoluzione Grammaticale Come anticipato nell’introduzione, l’evoluzione grammaticale `e un particolare algoritmo genetico che ha come aspetto saliente la funziona di mappatura genotipo- fenotipo. A seguire `e riportato un breve elenco delle componenti che, compreso il mapper, caratterizzano GE: Grammatica insieme di regole attraverso le quali `e possibile rappresentare qual- siasi stringa della lingua atta a descrivere un problema. Funzione di mappatura funzione che permette la creazione di un legame tra ge- notipo, rappresentato come stringa binaria, e fenotipo, rappresentato come albero. Operatore genetico funzione che ha il compito di variare la popolazione ricombi- nandone gli individui. Inizializzazione processo durante il quale la popolazione iniziale `e generata, il quale pu`o influire sull’intera evoluzione. Funzione di fitness funzione che quantifica la performance di un individuo una volta considerato come soluzione di un problema. Selezione processo per cui tra tutti gli individui della popolazione sono scelti i migliori secondo un criterio, solitamente il valore di fitness, da far riprodurre. rimpiazzamento operazione attraverso la quale tra tutti i genitori e i figli generati vengono scelti gli individui per generare la nuova popolazione, ovvero della successiva generazione. A seguire son descritti gli aspetti sopra elencati, comprese le principali varianti, e alcune delle quali sono state prese in esame per gli esperimenti effettuati. 4
  • 10. E → EOE E → V O → + O → - V → x V → y Figura 2.1: Esempio di grammatica. <e> ::= <e> <o> <e> | <v> <o> ::= + | - <v> ::= x | y Figura 2.2: Esempio della grammatica in 2.1 nella forma BNF. 2.1 Grammatica Una grammatica, qui intesa come generativa, pu`o essere definita come un insieme di regole grazie alle quali `e possibile generare qualsiasi stringa di un determinato linguaggio, a partire da un simbolo iniziale definito. Di conseguenza formalizza un algoritmo che genera stringhe linguistiche [10]. Formalmente, dato un insieme N di simboli non terminali, s0 ∈ N simbolo iniziale, un insieme R di regole di produzione e un insieme Σ di simboli terminali disgiunto da N, una grammatica consiste in una quadrupla G = N, s0, Σ, R . Un linguaggio L(G) `e definito quindi come l’insieme di tutte le stringhe composte da simboli non terminali generate a partire dal simbolo iniziale s0 ed applicando le regole di produzione fintantoch´e vi siano solamente simboli terminali. Le grammatiche per descrivere alcuni dei problemi standard per l’analisi degli algoritmi evolutivi sono libere dal contesto, ovvero le regole di produzione presentano a sinistra un unico simbolo non terminale. Un modo canonico per rappresentare le regole di produzione `e mostrato in Figura 2.1 dove → rappresenta la produzione, ovvero a partire dai simboli a sinistra, si “producono” quelli indicati a destra. La forma BNF (Backus-Naur Form [11]) `e un formalismo che d`a la possibilit`a di descrivere la sintassi di un linguaggio in modo preciso e non ambiguo. Per questi motivi `e molto utilizzato, soprattutto in ambito informatico e in generale per descrivere grammatiche libere dal contesto. Il modo in cui le regole di produzione sono rappresentate `e il seguente, dove espressione pu`o essere una serie di una o pi`u sequenze composte a loro volta da uno o pi`u simboli (terminali o non): <simbolo>::= espressione 5
  • 11. 2.2 Funzioni di Mappatura Il processo di mappatura `e la conversione di un genotipo in fenotipo, ovvero dato un genotipo e una grammatica context-free di un determinato problema si costruisce univocamente l’albero di derivazione, dove la radice `e il simbolo iniziale, i nodi i simboli non terminali e le foglie i simboli terminali. Da quest’albero `e possibile leggere la soluzione del problema, in particolare leggendo direttamente le foglie, da sinistra a destra. Il vantaggio del mapping (e di conseguenza di GE) consiste nel fatto che pu`o essere applicato per qualsiasi problema che abbia una grammatica che ne descriva formalmente le soluzioni, senza dover ridefinire gli operatori genetici o altri componenti dell’algoritmo evolutivo, dato che essi operano sul genotipo (quindi ad un livello inferiore) che poi viene mappato in una soluzione specifica del problema scelto. Il mapper originario (standard) utilizzato per la grammatical evolution si basa sull’operazione di modulo (indicata col simbolo %), ovvero la scelta del nodo successivo si basa sul resto di una divisione per il numero di regole di produzione che ha il nodo corrente. Questa operazione viene effettuata fintantoch´e non si arriva ad aver solamente simboli terminali e quindi non si ha pi`u la possibilit`a di espandere l’albero di derivazione. Regola selezionata = valore del codone % numero di regole (2.1) 2.2.1 Standard e Breadth First GE Nello standard GE il genotipo, espresso in binario, viene suddiviso in parti lunghe n, dette codoni, poi convertite in un numero intero. La procedura di mapping di un genotipo g in un fenotipo p inizia con p = s0 (simbolo iniziale), un indice i = 0 e un contatore w = 0. Successivamente i seguenti passi sono iterati: 1. il simbolo non terminale s di p pi`u a sinistra `e espanso usando la j−th opzione della regola rs ∈ R per s, con j = gi mod |rs|, ovvero la divisione in modulo dell’i−esimo codone per il numero di opzioni della regola rs. 2. l’indice i viene incrementato. Se i ≥ |g| n , ovvero se maggiore o uguale del numero di codoni viene settato a 0 e w incrementato. Se w supera un limite prefissato nw, il processo di mappatura `e terminato e il fenotipo risultante `e nullo. 3. se p contiene almeno un simbolo non terminale si ricomincia al passo 1, altri- menti il processo `e terminato e il fenotipo `e esattamente p. Questa procedura, poich´e riutilizza il genotipo fino ad avere un fenotipo composto da soli simboli terminali, potrebbe non terminare mai (se la grammatica usata `e 6
  • 12. Genotipo: 11000010100000110101001010011110011000111000101001111100 Grammatica: <e> ::= <e> <o> <e> | <v> <o> ::= + | - <v> ::= X | Y Lunghezza codone: 4 1100 0010 1000 0011 0101 0010 1001 1110 0110 0011 1000 1 010 0111 1100 Genotipo riscritto come sequenza di numeri decimali: 12 2 8 3 5 2 9 14 6 3 8 10 7 12 Soluzione ottenuta applicando GE: Y+X+X+X Soluzione ottenuta applicando BGE: X+Y+X Figura 2.3: Applicazione del mapper GE e BGE. ricorsiva), per questo motivo si usa il contatore w, formalmente chiamato “wrapping” che evita questo spiacevole caso [12]. Agli individui mappati su fenotipo nullo viene assegnato il peggior valore nel dominio della fitness. Il mapper BGE (Breadth First GE) `e una variante del mapper standard di GE, dove l’unica differenza consiste nell’ordine di espansione dei nodi non terminali. Infatti l’espansione `e eseguita in ampiezza da sinistra a destra, al contrario del mapper standard dove avviene per profondit`a prendendo sempre l’elemento pi`u a sinistra. 2.2.2 PiGE Un’altra variante del mapper standard `e una sua estensione, la quale ha il van- taggio di essere indipendente dalla posizione (Position Indipendent GE) [13; 14]. Essenzialmente invece di espandere il simbolo non terminale pi`u a sinistra del fe- notipo, viene espanso uno scelto utilizzando il genotipo. In dettaglio in πGE ogni codone consiste in un paio di interi identificati come sequenze di bit entrambe di lunghezza n. Il primo intero della coppia serve per decidere quale nodo tra i non terminali espandere, mentre il secondo per la scelta della regola di produzione, come avviene per il mapper standard. In questo modo la struttura del fenotipo `e codificata nel genotipo e varia anch’essa durante l’evoluzione. Nodo da espandere = valore del codone % numero di nodi non terminali (2.2) 7
  • 13. Come per lo standard mapper, anche qui nel caso in cui si termini la lettura del genotipo prima di arrivare ad una soluzione valida, si opta per il wrapping, con i dovuti limiti. 2.2.3 Structured GE SGE `e uno dei pi`u recenti mapper, il quale si differenzia da tutti i precedenti [15]. Questa variante si avvantaggia di una struttura tale che durante la mappatura ogni codone `e utilizzato al massimo una volta per scegliere l’espansione di un nodo non terminale. Infatti `e presente una corrispondenza 1 : 1 tra ogni gene (parte di un genotipo) e simbolo non terminale, assicurando che la modifica di quel gene non influisca sulle opzioni di derivazioni degli altri simboli non terminali presenti nel fenotipo. Di conseguenza questo mapper `e strettamente dipendente dalla gramma- tica in uso e necessita di operatori costruiti su questa sua particolare struttura (per esempio la mutazione modifica direttamente l’intero codone, andando a sostituirlo con un altro casuale appartenente allo stesso dominio). Poich´e non c’`e la possibilit`a diretta di riutilizzare il genotipo, una grammatica ricorsiva deve essere convertita in una non ricorsiva impostando un parametro di massima profondit`a dell’albero. I vantaggi di SGE consistono nell’avere, come riportato dagli autori, una maggiore localit`a e una minore ridondanza. Inoltre ha la peculiarit`a di mappare un genotipo sempre in un fenotipo valido, al contrario delle altre varianti. 2.3 Inizializzazione Per quanto riguarda l’inizializzazione, essa pu`o influire sul risultato dell’evolu- zione, e perci`o `e molto importante scegliere una buona dimensione e distribuzione degli individui [16]. Un metodo alternativo alla generazione puramente casuale de- gli individui `e il cosiddetto Ramped Half and Half, che consiste nella generazione di individui con diversa lunghezza e cardinalit`a (caratteristiche che invece nella ge- nerazione casuale rimarrebbero mediamente costanti). Per lo studio effettuato in questa tesi `e stata usata la generazione puramente casuale. 2.4 Operatori Negli algoritmi evoluzionistici gli operatori sono i protagonisti nell’esplorazione nello spazio delle soluzioni del problema. Mentre l’inizializzazione gioca un ruolo importante sulla variet`a iniziale di individui, gli operatori di variazione hanno il compito di variare la popolazione durante l’evoluzione, diminuendo la probabilit`a di ritrovarsi immediatamente in una soluzione ottima locale (chiaramente l’obiettivo `e trovare quella ottima globale). 8
  • 14. 01001000110100010001000 Individuo 1 11010111011101011011101 Individuo 2 0100100 0110100010001000 11011101 110101110111010 0100100 11011101 0110100010001000 110101110111010 010010011011101 Figlio 1 0110100010001000110101110111010 Figlio 2 Figura 2.4: Esempio di applicazione di One Point Crossover. 2.4.1 One e Two Point(s) Crossover L’operazione di crossover (ovvero ricombinazione) `e un processo di scambio in- formativo tra i membri della popolazione con lo scopo di creare individui con una miglior fitness. Esso ha la particolarit`a di variare anche la dimensione degli indi- vidui, generandone di pi`u grandi o di pi`u piccoli [17]. Mentre in GP l’operazione di scambio avviene direttamente sugli alberi scambiando due sotto-alberi a partire da nodi scelti casualmente, in GE lo scambio riguarda porzioni di genotipo, ovve- ro sotto-stringhe numeriche. In GE sono presenti vari tipi di crossover; qui sono descritti solo i pi`u comuni, ovvero one e two point crossover e le loro varianti che mantengono costante la dimensione dei figli (denominate come length preserving crossover). Nello studio effettuato in questa tesi `e stato considerato solamente la versione di one point crossover che mantiene fissa la lunghezza, dato che durante l’evoluzione la lunghezza degli individui tende a crescere di molto rallentando l’ese- cuzione, di fatto andando contro lo scopo della computazione evolutiva di rendere pi`u veloce la risoluzione dei problemi. Come visibile in figura 2.4 in one point crossover viene selezionata una posizione casuale in entrambi i genotipi genitori e le parti a seguire da quelle posizioni sono scambiate in modo da generare due nuovi membri. Two points crossover opera in modo similare, selezionando due posizioni e scambiando la parte compresa da esse. Le due varianti di one e two point(s) crossover che hanno la particolarit`a di mantenere la stessa dimensione del genotipo operano spezzando entrambi i genitori 9
  • 15. nella stessa posizione scelta casualmente. In questo modo la lunghezza degli indi- vidui di una popolazione `e controllata, evitando che vengano generati individui di dimensione tale da rallentare drasticamente l’evoluzione. 2.4.2 Probabilistic Mutation La mutazione opera andando a modificare piccole e mirate parti genotipo, nel caso in cui esso sia binario sono modificati i singoli bit effettuandone un’operazione detta “flip”, ovvero di inversione. Questo specifico operatore modifica ogni singolo bit, effettuandone il flip con una probabilit`a precedentemente impostata. 2.4.3 Crossover e Mutazione per SGE Poich`e il mapper SGE necessita di una particolare struttura del genotipo diversa dalla stringa binaria, gli operatori sopra descritti non si possono applicare. Gli autori di questa variante hanno ideato quindi due operatori di crossover e mutazione adattati per questo caso. In particolare la mutazione si basa su integer flip mutation, qui inteso come sostituzione dell’intero con un altro casuale all’interno del dominio, mentre il crossover `e simulato da un’operazione di ricombinazione, che, attraverso una maschera binaria, indica quali parti dei genotipi scambiare [15]. 2.5 Selezione La selezione `e il meccanismo usato dalla computazione evolutiva per scegliere quali genitori far riprodurre. `E un processo al quale porre una particolare attenzione, poich´e, come avviene in natura, se si scegliesse soltanto gli individui migliori (e quindi potenzialmente simili) si rischierebbe di creare una omogeneit`a tra gli individui che potrebbe causare una convergenza prematura ad una soluzione ottima locale. L’operazione di crossover, per sua natura, genera individui con valori di fitness migliore o peggiore indipendentemente dal fatto che i genitori abbiamo una buona fitness o meno. Questo fatto, comunemente causato dalla presenza di pi`u soluzioni ottime locali nello spazio, porta a dover selezionare individui con valori di fitness non sempre ottimali, in modo da mantenere una certa diversit`a tra la popolazione [18]. 2.5.1 Roulette Wheel e Tournament Selection Due metodi per effettuare una selezione volutamente “imperfetta” degli individui sono i seguenti: 10
  • 16. Roulette Wheel Detta anche “selezione proporzionale alla fitness”, consiste nel- l’associare ad ogni individuo una probabilit`a di essere scelto proporzionale al suo valore di fitness. In particolare un individuo i ∈ C ha una probabilit`a di essere scelto Pi = fi j∈C fj . In questo modo si da la possibilit`a anche ad individui con bassa fitness di essere selezionati. Tournament Si applica—ogni volta che si deve scegliere un individuo—prelevando un sottoinsieme casuale di individui dall’intera popolazione e scegliendone quello con miglior fitness. Ha inoltre l’abilit`a di poter variare, cambiando la dimensione del sottoinsieme da prelevare, la “pressione” della selezione; in- fatti se la dimensione del sottoinsieme `e pari a quella della popolazione, sar`a assicurata la scelta del miglior individuo, se invece la dimensione `e pari a 1, si pu`o considerare la scelta come puramente casuale. 2.6 Rimpiazzamento Generalmente, avanzando con l’evoluzione, la numerosit`a della popolazione tende a crescere, mentre nella computazione evolutiva generalmente `e di una dimensione fissa. Per questo motivo `e necessario effettuare un’operazione di rimpiazzamento, per poter costruire la nuova popolazione combinando nuovi e vecchi individui [18]. I due pi`u comuni metodi utilizzati in GE sono i seguenti: Steady State consiste nel valutare ogni individuo generato al momento della sua creazione; se il suo valore di fitness `e migliore di quello del peggior individuo della attuale popolazione, allora viene inserito nella nuova popolazione e il peggiore eliminato. Poich´e questo metodo tende a mantenere solamente gli individui con miglior fitness, c’`e il rischio di una convergenza prematura ad una soluzione locale. Generational in questo metodo la popolazione ad ogni generazione `e formata da nuovi individui, con i figli che sostituiscono i genitori. In questo modo l’esplo- razione dello spazio `e pi`u ampio e si evita una immediata convergenza dato che non sempre le operazioni di crossover e mutazione generano migliori individui. Per evitare che il valore di fitness migliore della popolazione cali con l’avan- zare dell’evoluzione, si procede solitamente con l’integrazione di una sorta di elitismo, mantenendo i migliori individui incontrati durante l’evoluzione. 11
  • 17. Capitolo 3 Evolvibilit`a L’evolvibilit`a `e una caratteristica importante dei sistemi evoluzionistici, pu`o esse- re definita come l’abilit`a di apportare dei miglioramenti in termini di fitness variando casualmente la popolazione degli individui. Dato che in GE avvengono due trasfor- mazioni, una data dalla funzione di mappatura e una dalla funzione di fitness, lo studio dell’evolvibilit`a risulta ancora pi`u interessante dato che le variabili in gioco sono maggiori rispetto ad altri algoritmi evoluzionistici. L’aggiunta di una trasfor- mazione attuata dal mapper introduce, come gi`a anticipato, altre due caratteristiche, ovvero ridondanza degli individui mappati e localit`a delle modifiche. `E probabile di conseguenza che ci sia una relazione tra ridondanza/localit`a e evolvibilit`a, e di conseguenza tra quest’ultima e mapper. Lo scopo di questa tesi `e quindi analizzare da quali aspetti dipenda l’evolviblit`a e cosa pu`o influire sul suo miglioramento o peggioramento. In particolare si valuter`a l’influenza del tipo di operatore (mutazione e crossover), del mapper utilizzato (GE, BGE, πGE e SGE) e della dimensione del genotipo. Ad oggi questo `e il primo studio effettuato su questa possibile relazione tra evolvibilit`a e alcune tra le altre caratteristiche di GE. L’analisi `e stata suddivisa in due fasi, “statica” e “dinamica”. La prima consiste nell’analisi dell’evolvibilit`a applicando pi`u volte gli operatori ad una popolazione statica di individui. La seconda consiste invece nel valutare l’evolvibilit`a durante l’evoluzione, calcolandola ad ogni generazione. Questa scelta di effettuare entrambe le analisi `e derivata dal fatto che l’evolvability possa cambiare drasticamente da un caso all’altro oppure variare soltanto ad un certo punto dell’evoluzione. 3.1 Problemi esaminati Per non limitare l’analisi dell’evolvability ad uno specifico caso, si son considerati quattro problemi di diversa natura: Harmonic, Polynomial, Santa-Fe e Text. Mentre 12
  • 18. <expr> ::= (<expr><op><expr>) | (<pre-op><expr>) | <var> <op> ::= + | * <pre-op> ::= uminus | 1/ | sqrt <var> ::= x (a) Harmonic <expr> ::= (<expr><op><expr>) | (<pre-op><expr>) | <var> <op> ::= + | - | * | / <pre-op> ::= sin | cos | exp | log <var> ::= x | 1.0 (b) Polynomial <code> ::= <line> | <code> <line> <line> ::= <if> | <op> <if> ::= if(food ahead())<line> else<line> <op> ::= left(); | right(); | move(); (c) Santa-Fe <text> ::= <sentence> <text> | <sentence> <sentence> ::= <Word> <sentence> | <word> <sentence> | <word> <punct> <word> ::= <letter> <word> | <letter> <Word> ::= <Letter> <word> <letter> ::= <vowel> | <consonant> <vowel> ::= a | o | u | e | i <consonant> ::= b | c | d | f | g | h | j | k | l | m | n | p | q | r | s | t | v | w | x | y | z <Letter> ::= <Vowel> | <Consonant> <Vowel> ::= A | O | U | E | I <Consonant> ::= B | C | D | F | G | H | J | K | L | M | N | P | Q | R | S | T | V | W | X | Y | Z <punct> ::= ! | ? | . (d) Text Figura 3.1: Le grammatiche dei problemi considerati. i primi 3 sono dei classici problemi benchmark spesso usati in GE e GP [19], l’ultimo `e stato introdotto in [7] appositamente per lo studio di localit`a e ridondanza. Son stati scelti questi 4 problemi poich´e, date le loro grammatiche e funzioni di fitness differenti, si crede possano rappresentare al meglio i problemi del mondo reale. Harmonic In questo problema di regressione lo scopo `e quello di approssimare la funzione f(x) = x i=1 1 i e la fitness `e l’errore assoluto calcolato nei punti x ∈ {1, . . . , 50}. Polynomial Anche qui lo scopo `e approssimare la funzione f(x) = x4 +x3 +x2 +x e la fitness `e calcolata nei punti x ∈ {−1, −0.9, . . . , 0.9, 1}. Santa-Fe Lo scopo `e trovare un programma che guidi una formica artificiale per raccogliere 89 oggetti staticamente distribuiti in una griglia 32 × 32 entro un massimo numero di passi. La fitness `e il numero di oggetti non raccolti. Text Lo scopo `e creare una stringa che combaci con una definita a priori (Hello world! in questo caso) e la fitness `e la distanza di Edit tra le due stringhe. 13
  • 19. Tabella 3.1: Parametri usati per l’analisi statica GE, BGE, πGE SGE # di coppie di genotipi 300 300 # di applicazioni operatori 30 30 Crossover operator One-point SGE crossover Mutation operator Prob mut, p = 0.01 SGE mut, p = 0.01 Dimensione iniziale genotipo 128, 256, 512, 1024 n.a. Numero massimo di wraps 5 n.a. Massima profondit`a albero n.a. 6 3.2 Analisi statica dell’evolvibilit`a Il primo passo per l’analisi `e quella identificata come “statica”, ovvero valutare le performance in termini di evolvibilit`a applicando i vari operatori e funzioni di mappatura ad un set di individui generati casualmente. 3.2.1 Procedura sperimentale L’analisi `e stata effettuata seguendo un procedimento cos`ı descritto: • Per ogni variante di mapper, problema, operatore e dimensione di genotipo (eccetto per SGE dato che la dimensione `e determinata dalla grammatica uti- lizzata) si son generati 300 genotipi gp (per la mutazione) o coppie di genotipi g1 p, g2 p (per il crossover). • Per ogni genotipo o coppia di genotipi sono stati applicati gli operatori per 30 volte, generando ogni volta un figlio gc. • Successivamente sono state applicate le funzioni di mappatura per i genitori e per ogni figlio generato ottenendone i fenotipi p1 p, p2 p, pc, valutandone poi i valori di fitness f1 p , f2 p , fc. Il processo di generazione dei 300 individui/coppie `e stato pensato in modo che per ogni combinazione di mapper, problema, operatore e dimensione ci siano effettivamente 300 individui/coppie che assieme al figlio generato non diano dei risultati di mappatura invalidi (ci`o non avviene per SGE poich´e di per s´e non genera mappature invalide). Nella Tabella 3.1 son presenti i parametri utilizzati per le funzioni di mappatura e gli operatori genetici, oltre ai dettagli del procedimento. I risultati ottenuti sono espressi in termini di Escape Probability e Fitness-Probability Cloud, condensati poi nell’indice AEP [9]. 14
  • 20. 3.2.2 Fitness-Probability cloud e AEP La Escape Probability `e la probabilit`a che a partire da un valore di fitness se ne ottenga uno migliore applicando un operatore genetico. Formalmente, come descritto in [9], supponendo di partizionare lo spazio delle soluzioni in L + 1 set in base ai valori di fitness, F = {f0, f1, ..., fL | f0 < f1 < ... < fL} rappresenta tutti i possibili valori di fitness nello spazio di soluzioni. Si indica la media dei passi richiesti, a partire da un valore di fitness fi, per trovarne uno migliore. L’Escape Probability P(fi) `e quindi definita come P(fi) = 1 Si (3.1) Maggiore `e il valore di Escape Probability per un particolare valore di fitness fi, pi`u facile `e migliorare quel valore. Estendendo questo concetto ad un set di valori di fitness, Pi indica il valore medio di Escape Probability per gli individui di fitness maggiore o uguale a fi, definito come: Pi = fj∈Ci P(fj) |Ci| , con Ci = {fj | j ≥ i} (3.2) Se si considerano tutti i Pi per un dato problema si avrebbe un indice di evolvi- bilit`a del problema. Ci`o pu`o essere rappresentato dalla Fitness-Probability Cloud: fpc = {(f0, P0), ..., (fL, PL)} (3.3) Questi valori possono essere condensati calcolandone la media. Questa media prende il nome di Accumulated Escape Probability (AEP) ed `e definita come: AEP = fi∈F Pi |F| con F = {f0, f1, ..., fL | f0 < f1 < ... < fL} (3.4) Maggiore `e il valore AEP, maggiore `e l’evolvability del problema e di conseguenza pi`u facile da risolvere dovrebbe essere il problema considerato. Di conseguenza questo indice pu`o essere utilizzato per esprimere, con le dovute approssimazioni, la difficolt`a nell’ottenere soluzioni migliori durante l’evoluzione e quindi, fissati mapper, operatore e genotipo, la difficolt`a del problema. 3.2.3 Risultati e osservazioni: AEP Per poter comparare i risultati ottenuti da SGE con quelli ottenuti dagli altri mapper si `e deciso di rappresentare la dimensione del genotipo |g| in bit assumendo per ogni codone il minimo numero di bit necessario per rappresentare il dominio. Nella Tabella 3.2 sono mostrati i valori di AEP (calcolati distintamente per l’o- peratore di mutazione e quello di crossover), tra i quali sono evidenziati in grassetto 15
  • 21. il migliore e gli altri che distano meno del 10% migliore. Gli stessi risultati sono mostrati in forma grafica in Figura 3.2, dove X `e la dimensione del genotipo e Y il valore di AEP. Dai risultati ottenuti `e possibile fare tre considerazioni: 1. si pu`o notare come i pi`u alti valori di AEP si ottengono per mutazione e crossover a dimensioni di genotipo diverse. Infatti per l’operatore crossover l’AEP migliore `e riscontrabile per dimensioni di genotipo piccole, in particolare per i problemi Harmonic e Polynomial col mapper SGE, mentre per Sant-Fe e Text all’incirca con gli altri 3 mapper, per dimensioni di genotipo a 128 bit. Al contrario, per l’operatore mutazione il miglior AEP `e possibile averlo con dimensioni di genotipo pari a 512 bit o 1024 bit e in particolare con il mapper πGE. 2. il mapper SGE presenta dei valori AEP generalmente diversi da quelli ottenuti con gli altri mapper. Applicando l’operatore mutazione, per esempio, con SGE si ha dei valori di AEP molto pi`u bassi rispetto a tutti gli altri, che in pi`u sono “coerenti” tra loro, ovvero che per ogni dimensione di genotipo sono simili tra loro (questo fatto `e pi`u visibile nella Figura 3.2). Questo fatto mostra potrebbe spiegare due aspetti, ovvero che il mapper SGE `e strutturalmente diverso dagli altri 3 (che tra loro hanno la maggior parte delle caratteristiche in comune), e che a sua volta la decisione del parametro di massima profondit`a dell’albero `e significativa quanto non semplice da effettuare. 3. i valori medi di AEP in tutti e 4 i problemi rispecchiano a grosso modo la loro natura. Harmonic e Polynomial hanno valori molto simili, in accordo col fatto che hanno delle grammatiche simili e sono entrambi dei problemi di regressione. D’altra parte Santa-Fe e Text hanno valori di AEP pi`u alti il che suggerisce che la loro difficolt`a sia minore rispetto ad Harmonic e Polynomial. Inoltre Text `e il problema dove `e possibile notare maggiormente le differenze tra le varianti di mapper utilizzate. 3.2.4 Risultati e osservazioni: Fitness-Probability Cloud Proseguendo con l’analisi, sono stati analizzati con pi`u dettaglio i dati con |g| = 1024 (o la dimensione predefinita di SGE). Nella Figura 3.3 `e mostrata la Fitness- Probability Cloud per ogni combinazione di problema, operatore e mapper, dove l’asse X rappresentata il valore di fitness del miglior genitore (o dell’unico genitore nel caso di mutazione), mentre l’asse y l’Escape Probability. Dato che per ogni combinazione sono state generate 300 differenti coppie di genitori, per aver grafici pi`u chiari si `e deciso di scartare un quarto delle coppie 16
  • 22. Tabella 3.2: Valori AEP per gli operatori mutazione e crossover. Mutazione Crossover Problema |g| GE BGE πGE SGE GE BGE πGE SGE Harmonic 75 0.018 0.129 128 0.067 0.073 0.067 0.023 0.029 0.049 256 0.08 0.092 0.106 0.017 0.023 0.034 512 0.114 0.102 0.111 0.016 0.014 0.026 1024 0.113 0.11 0.12 0.01 0.01 0.016 Polynomial 121 0.019 0.097 128 0.047 0.048 0.049 0.027 0.033 0.058 256 0.067 0.06 0.074 0.019 0.02 0.036 512 0.071 0.072 0.071 0.009 0.012 0.02 1024 0.065 0.065 0.076 0.004 0.004 0.01 Santa-Fe 31 0.008 0.058 128 0.066 0.072 0.054 0.103 0.095 0.099 256 0.071 0.074 0.084 0.064 0.079 0.096 512 0.091 0.112 0.114 0.055 0.06 0.077 1024 0.123 0.141 0.148 0.044 0.058 0.077 Text 85 0.011 0.113 128 0.118 0.146 0.137 0.14 0.196 0.178 256 0.165 0.218 0.272 0.135 0.166 0.189 512 0.173 0.224 0.314 0.086 0.094 0.144 1024 0.203 0.223 0.334 0.057 0.051 0.083 17
  • 23. 0 0.1 0.2 0.3 Mutation Harmonic Polynomial Santa-Fe Text 0 500 1,000 0 0.1 0.2 0.3 Crossover 0 500 1,0000 500 1,0000 500 1,000 GE BGE πGE SGE Figura 3.2: AEP vs. dimensione genotipo |g|. aventi la fitness peggiore (`e stata considerata la miglior fitness tra i due genitori) e raggruppare le rimanenti in 10 intervalli aventi la stessa ampiezza lungo l’asse delle ascisse. Ad ogni intervallo `e stata poi associata la media dei valori di fitness di ogni coppia di genitori contenuta. La rimozione del quarto di coppie con peggior fitness ha giovato soprattutto per Harmonic e Polynomial che non hanno una fitness limitata. Nella figura 3.3 `e possibile notare come l’Escape Probability diminuisca al mi- glioramento del valore di fitness (si ricorda che per miglioramento si intende una diminuzione del valore), il che rispecchia il fatto che, man mano che ci si avvicina all’ottimo con la soluzione, la difficolt`a che si ha nel migliorarla aumenta. Questo comportamento `e meno visibile per il problema Harmonic, il quale per sua natura genera delle soluzioni molto sparse, il che va a distogliere l’attenzione sulla parte pi`u vicina allo zero (soluzione ottima), le quali curve per`o hanno un andamento simile a quelle degli altri problemi. 3.3 Analisi dinamica dell’evolvibilit`a Per proseguire l’analisi dal punto di vista dell’evoluzione, si `e deciso di analizzare l’andamento della fitness ad ogni generazione, per vedere quale combinazione di 18
  • 24. 500 1,000 0 0.2 0.4 Mutation Harmonic 5 10 15 20 Polynomial 60 70 80 Santa-Fe 10 15 20 Text 500 1,000 0 0.2 0.4 Crossover 5 10 15 60 70 80 8 10 12 GE BGE πGE SGE Figura 3.3: Fitness-Probability Cloud per dimensione di genotipo |g| = 1024 (o quella predefinita per SGE). mapper e dimensione genotipo si avvicina maggiormente alla soluzione ottima e con che velocit`a (intesa come numero di generazioni). 3.3.1 Procedura sperimentale Son stati presi in esame i tre mapper basati su stringhe binarie, ovvero GE, BGE e PiGE, mentre come dimensione genotipo 256 bit e 1024 bit. Gli operatori scelti sono probabilistic mutation e length preserving one point crossover, applicati rispettivamente con una percentuale pari a 20% e 80%. Nella Tabella 3.3 `e possibile vedere i parametri utilizzati per l’analisi dinamica. Oltre ad analizzare l’evoluzione vera e propria, si `e tenuto traccia anche dell’indice AEP per vedere se effettivamente, come si suppone, sussiste una stretta correlazione tra evolvability e miglioramento della fitness. 3.3.2 Risultati e osservazioni Come si pu`o vedere confrontando la Figura 3.4 con la Figura 3.5, in media il miglioramento di fitness `e tanto pi`u marcato quanto `e presente un alto valore di Average Escape Probability. In particolare, sia per il valore di fitness che di AEP, 19
  • 25. Tabella 3.3: Parametri usati per l’analisi dinamica. Popolazione 500 # di generazioni 50 # di ripetizioni 10 Mapper analizzati GE, BGE, πGE Operatore Crossover Length Preserving One-point con rate 0.8 Operatore Mutation Probabilistic mutation, p = 0.01 con rate 0.2 Numero massimo di wraps 5 Dimensione iniziale genotipo 256, 1024 Tecnica di inizializzazione puramente casuale Tecnica di selezione Tournament con dimensione=3 Tecnica di rimpiazzamento Steady-State 20 40 0 0.2 0.4 256bit Harmonic 20 40 Polynomial 20 40 Santa-Fe 20 40 Text 20 40 0 0.2 0.4 1024bit 20 40 20 40 20 40 GE BGE πGE Figura 3.4: AEP durante l’evoluzione. 20
  • 26. 20 40 20 30 40 50 256bit Harmonic 20 40 4 6 8 10 12 Polynomial 20 40 60 80 Santa-Fe 20 40 4 6 8 10 Text 20 40 20 30 40 50 1024bit 20 40 2 4 6 8 10 20 40 60 80 20 40 6 8 10 GE BGE πGE Figura 3.5: Miglior fitness durante l’evoluzione. durante l’evoluzione si susseguono due fasi: la prima dove avviene un netto miglio- ramento degli individui, la seconda dove i miglioramenti sono sporadici e di minor rilevanza. Questo fatto pu`o essere riferito all’omogeneit`a (in termini di fitness) cre- scente della popolazione con l’avanzare dell’evoluzione, dato che alla generazione successiva son mantenuti gli individui migliori, diminuendo la diversit`a della popo- lazione. In questo modo la probabilit`a di trovare soluzioni migliori cala, come `e visibile in Figura 3.4. Un’altra considerazione `e possibile farla osservando il valore AEP: nonostante il valore massimo raggiungibile durante l’evoluzione rimanga circa lo stesso variando la dimensione del genotipo, il numero di generazioni dove esso `e diverso da zero `e maggiore per il caso con 256 bit. Ci`o `e in linea con gli esiti dati dall’analisi statica: infatti durante l’evoluzione l’operatore prevalente `e il crossover, e proprio per il crossover si ha una maggiore evolvibilit`a avendo genotipi di piccole dimensioni. Un altro fatto evidente `e che nessuno tra i mapper utilizzati `e migliore in assoluto rispetto agli altri, il che fa propendere che la mappatura genotipo-fenotipo, conside- rata singolarmente, non giochi un ruolo essenziale nell’apportare un miglioramento rilevante alle prestazioni del sistema. 21
  • 27. Capitolo 4 Ulteriori esperimenti Per cercare di spiegare in modo pi`u esaustivo i risultati ottenuti con lo studio statico e dinamico dell’Escape Probability, sono state svolte delle analisi aggiun- tive, con lo scopo di trovare quali caratteristiche possano influire positivamente o negativamente sull’evolvibilit`a. 4.1 Ridondanza e localit`a Per cercare di identificare quali fattori causino l’evolvibilit`a in GE, si `e provato a studiare la localit`a e la ridondanza, ovvero due propriet`a che misurano quanto si rispetti il principio generale dell’ereditariet`a variabile [1]. Localit`a misura con che grado piccole modifiche al genotipo di un individuo corri- spondono a piccole modifiche al fenotipo. In particolare `e calcolato il coefficien- te di correlazione lineare tra la distanza minima di genotipi min(dg(g1 p, gc), dg(g2 p, gc)) e la distanza minima di fenotipi min(dp(p1 p, pc), dp(p2 p, pc)). Ridondanza misura quanto spesso diversi genotipi sono mappati su di uno stesso fenotipo, calcolando la percentuale dei casi in cui il figlio ha genotipo diverso da quelli dei genitori e ha fenotipo uguale a uno tra quelli dei due genitori. Per i genotipi `e stata utilizzata la distanza di Hamming (dg) mentre per i fenotipi la distanza di Levenshtein (edit distance, dp). Si son misurate localit`a e ridondanza separatamente per ogni combinazione di mapper, problema operatore e dimensione di genotipo, mostrate poi assieme alla retta di regressione lineare e al valore di AEP nelle figure 4.1 e 4.2. Si ricorda che tutti i parametri hanno un dominio limitato ([0,1] per AEP e ridondanza essendo delle frequenze relative, [-1,1] per la localit`a espressa come correlazione). 22
  • 28. 0.2 0.4 0.6 0.8 0.1 0.2 0.3 Ridondanza AccumulatedEscapeProbability Figura 4.1: AEP vs. ridondanza. 0 0.1 0.2 0.3 0.4 0.1 0.2 0.3 Localit`a Figura 4.2: AEP vs. localit`a. La figura 4.1 mostra come ci sia una chiara influenza della ridondanza sull’evolvi- bilit`a; in particolare una minore ridondanza porta ad avere una miglior evolvibilit`a. Ci`o `e possibilmente dovuto al fatto che se la mappatura genotipo-fenotipo fatica a generare individui con genotipo differente da quello dei genitori, si ha una minor probabilit`a di avere degli individui con miglior (o peggior) fitness. In questi termini si suppone che un’adozione di una funzione di mapping incentrata a favorire una bassa ridondanza possa influire positivamente all’evolvability e di conseguenza alle prestazioni dell’evoluzione, al contrario di quanto affermato in [20]. Al contrario, la figura 4.2 non esprime alcun forte legame. Infatti il coefficiente di determinazione della regressione lineare `e in questo caso molto baso (R2 = 0.05, al contrario di quello riguardante la ridondanza, ovvero R2 = 0.45). Questo `e spiegabile dal fatto che la localit`a indica solamente una correlazione tra l’entit`a della modifica apportata al genotipo e quella conseguente avvenuta al fenotipo, senza indicare se questa modifica abbia apportato un peggioramento o una miglioria al valore di fitness. 4.2 Proposta di mapper con bassa ridondanza Poich´e si `e notato come una bassa ridondanza aumenti in media l’escape pro- bability, si `e cercato di implementare una funzione di mappatura, identificata qui con l’acronimo “LrGE” (Low Redundancy GE), che portasse alla generazione di un pi`u vario set di fenotipi. Infatti `e stato costruito in modo tale che la modifica di un solo bit influisca su tutto il fenotipo. Inoltre, come SGE, La modalit`a con cui viene 23
  • 29. <code> ::= <line> | <code> <line> <line> ::= <if> | <op> <if> ::= if(food ahead())<line> else<line> <op> ::= left(); | right(); | move(); (a) Santa-Fe <code> ::= <line> <line> ::= <op> <if> ::= if(food ahead())<line> else<line> <op> ::= left(); | right(); | move(); (b) Santa-Fe Figura 4.3: Grammatica del problema SantaFe resa non ricorsiva. generato il fenotipo a partire dal genotipo `e ricorsiva e simile alla costruzione di un albero. 1. La mappatura inizia dal simbolo iniziale s0 al quale `e associato l’intero genotipo g. 2. Sia s in p un non terminale al quale `e associato una parte del genotipo g e rs la relativa regola di produzione. Per la scelta dell’opzione da usare per espandere s si opera in questo modo: • si divide il genotipo in parti lunghe n =8 bit. • Posto m come il numero delle parti cos`ı ottenute e vi come la codifica in valore intero di ogni i-esima parte, l’indice j dell’opzione da scegliere `e cos`ı calcolato: j = m i=1 vi mod |rs| 3. Scelta l’opzione, il genotipo viene suddiviso in un numero di parti pari al numero di simboli che contiene l’opzione scelta. 4. Per ogni simbolo viene associata la relativa parte di genotipo e se la dimensione `e maggiore o uguale a 8 bit allora la mappatura continua dal punto 2 avendo cura di considerare come genotipo la parte associata al simbolo. Se invece `e minore di 8 bit, viene considerato per lo step successivo l’intero genotipo e come grammatica una sua versione non ricorsiva in modo che da quel punto in poi si arriver`a di sicuro ad un simbolo terminale, come mostrato in Figura 4.3. Dai grafici mostrati in Figura 4.4 si nota come il mapper proposto abbia una ridondanza molto minore rispetto agli altri analizzati. Nonostante questa evidente differenza, le prestazioni in termini di miglior fitness sono lievemente apprezzabili solamente per la dimensione di genotipo pari a 1024 bit per i problemi Harmonic e Santa-Fe, mentre pari a 256 bit per il problema Polynomial, come visibile nella Figura 4.5. Osservando la Figura 4.6 si nota invece come l’escape probability media abbia un valore generalmente maggiore (meno evidente per il problema Santa-Fe) e che duri 24
  • 30. 0 0.2 0.4 0.6 0.8 1 Crossover GE BGE πGE LrGE 0 0.2 0.4 0.6 0.8 1 Mutazione Harmonic Polynomial SantaFe Text Figura 4.4: LrGE confrontato con GE, BGE e πGE in termini di ridondanza per ogni problema con dimensione del genotipo |g| = 1024 . 15 20 25 30 256bit Harmonic 2 3 4 Polynomial 42 44 46 48 50 Santa-Fe 4 5 6 Text 10 20 30 40 50 10 15 20 25 30 1024bit 10 20 30 40 50 2 2.5 3 3.5 4 10 20 30 40 50 40 45 50 10 20 30 40 50 5 5.5 6 GE BGE πGE LrGE Figura 4.5: Miglior fitness durante l’evoluzione; confronto col mapper proposto. 25
  • 31. 20 40 0 0.2 0.4 Harmonic 20 40 Polynomial 20 40 Santa-Fe 20 40 Text GE BGE πGE LrGE Figura 4.6: confronto AEP durante l’evoluzione con dimensione del genotipo |g| = 1024. per pi`u generazioni, di fatto andando a confermare la relazione tra bassa ridondanza e alta evolvibilit`a. 4.3 Rappresentazione visiva dei genotipi durante l’evoluzione L’ultima attivit`a effettuata `e stata quella di cercare un modo per avere un re- sponso visivo dell’andamento evolutivo. Per far ci`o si `e pensato di effettuare una conversione in immagine del genotipo con miglior fitness per ogni generazione. In particolare ogni individuo `e rappresentato come sequenza di bit, codificata come vettore di pixel bianchi o neri, e per ogni generazione viene accodato il miglior in- dividuo. In questo modo si pu`o notare la permanenza di alcune parti del genotipo durante l’evoluzione (ereditariet`a) causate dalla combinazione di un individuo col precedente migliore e il ritrovamento di uno con miglior fitness ma proveniente da un altro ramo di parentela. In Figura 4.7 `e mostrata una evoluzione lunga 150 generazioni di 500 individui di lunghezza costante pari a 512 bit. Il mapper utilizzato `e lo standard GE mentre gli operatori sono length preserving one point crossover e probabilistic mutation. Come si pu`o vedere, per un breve periodo prevale un unico individuo, fintantoch´e sopraggiunge una combinazione con miglior fitness. 26
  • 32. Figura 4.7: Rappresentazione dei migliori individui durante l’evoluzione per i problemi Harmonic, Polynomial, SantaFe e Text 27
  • 33. Capitolo 5 Considerazioni finali e conclusioni La funzione di mappatura genotipo-fenotipo gioca un ruolo cruciale e pu`o essere considerata come la principale motivazione dell’utilizzo di GE come algoritmo di evoluzione in molti campi di applicazione. D’altra parte molti studi hanno mostrato come i mapper non aderiscano appieno con il principio di eredit`a, mostrando bassa localit`a e alta ridondanza. In questa tesi si `e studiato sperimentalmente l’evolvibilit`a di GE sia staticamente (tenendo conto di una singola generazione) che dinamicamente (valutando durante un’evoluzione lunga 50 generazioni) in differenti condizioni di problema, funzione di mappatura, dimensione genotipo e operatore genetico. Questa propriet`a `e stata analizzata utilizzando il parametro “Accumulated Escape Probabilty” e “Fitness Probability Cloud”. Inoltre `e stata confrontata con la propriet`a di localit`a e ridon- danza per vedere se ci fosse una qualche correlazione. Le conclusioni che si possono trarre sono le seguenti: • Per tutti i problemi analizzati, nessuna caratteristica presa singolarmente tra funzione di mappatura, dimensione del genotipo o operatore genetico porta un netto miglioramento per quanto riguarda l’evolvibilit`a del sistema. In questo senso le performance di un mapper piuttosto che un altro son legate stretta- mente alla tipologia di problema che si vuole affrontare, e lo stesso vale per operatore e dimensione del genotipo. Allo stesso modo, osservando i risultati dinamici, tra le tre varianti di mapper analizzati nessuno predomina in termini di miglior fitness. • Un risultato notevole lo si `e visto analizzando la relazione tra evolvability e ridondanza, mostrando quanto possa quest’ultima avere una discreta influenza sulla prima pi`u di quanto la abbia la localit`a. Infatti si `e potuto vedere come una bassa ridondanza porti ad avere una maggiore evolvibilit`a, il che pu`o essere visto come uno spunto per dei futuri studi e approfondimenti. 28
  • 34. • La ridondanza di un mapper seppur influisca per l’evolvibilit`a di un sistema, non `e sufficiente a far si che quest’ultimo sia superiore dal punto di vista prestazionale durante l’evoluzione. Infatti il mapper proposto, nonostante abbia una ridondanza ben al di sotto del 30%, ha delle prestazioni in linea con quelle degli altri mapper usati come confronto. • Riguardo l’ultima parte dello studio, ovvero la rappresentazione dell’evoluzione sotto forma di immagine, ha dato la possibilit`a di vedere come soltanto durante le prime generazioni avvenga l’esplorazione di soluzioni distanti tra loro nello spazio (genotipi molto differenti tra loro), mentre avviene poi un raffinamento della migliore, che per`o non `e detto sia la migliore in assoluto. L’immissione di nuovi individui casuali e l’utilizzo di un operatore che non mantenga costante la lunghezza del genotipo durante l’evoluzione potrebbe far si che l’esplorazione dello spazio sia pi`u vasta con la conseguente meno probabilit`a di imbattersi prematuramente in soluzioni ottime locali. Per concludere si pu`o affermare che non esiste una combinazione di funzione di mappatura, operatore e dimensione del genotipo migliore in assoluto per ogni problema, piuttosto ogni problema necessita di uno studio mirato a trovare la com- binazione che dia una maggiore prestazione. Una volta trovata la configurazione ot- timale, sicuramente una bassa ridondanza porta ad avere una maggiore evolvibilit`a e di conseguenza un tempo di esecuzione minore per trovare la soluzione. 29
  • 35. Bibliografia [1] Kenneth A De Jong. Evolutionary computation: a unified approach. MIT press, 2006. [2] Robert I Mckay, Nguyen Xuan Hoai, Peter Alexander Whigham, Yin Shan, and Michael O’Neill. Grammar-based genetic programming: a survey. Genetic Programming and Evolvable Machines, 11(3-4):365–396, 2010. [3] Alberto Bartoli, Andrea De Lorenzo, Eric Medvet, and Fabiano Tarlao. Syntac- tical similarity learning by means of grammatical evolution. In Parallel Problem Solving from Nature – PPSN XIV: 14th International Conference, Edinburgh, UK, September 17-21, 2016, Proceedings, pages 260–269, Cham, 2016. Springer International Publishing. [4] Katherine M Malan and Andries P Engelbrecht. A survey of techniques for characterising fitness landscapes and some possible ways forward. Information Sciences, 241:148–163, 2013. [5] Tom Castle and Colin G Johnson. Positional effect of crossover and mutation in grammatical evolution. In European Conference on Genetic Programming, pages 26–37. Springer, 2010. [6] Ann Thorhauer. On the non-uniform redundancy in grammatical evolution. In International Conference on Parallel Problem Solving from Nature, pages 292–302. Springer, 2016. [7] Eric Medvet. A comparative analysis of dynamic locality and redundancy in grammatical evolution. In Genetic Programming: 20th European Conference, EuroGP 2017, Amsterdam, Netherlands, April 19-21, 2017, Proceedings, page to appear, Cham, 2017. Springer International Publishing. [8] S´ebastien Verel, Philippe Collard, and Manuel Clergue. Where are bottlenecks in nk fitness landscapes? In Evolutionary Computation, 2003. CEC’03. The 2003 Congress on, volume 1, pages 273–280. IEEE, 2003. 30
  • 36. [9] Guanzhou Lu, Jinlong Li, and Xin Yao. Fitness-probability cloud and a mea- sure of problem hardness for evolutionary algorithms. In European Conference on Evolutionary Computation in Combinatorial Optimization, pages 108–117. Springer, 2011. [10] Maggie Johnson and Julie Zelenski. Formal grammars, 2012. [11] J.W. Backus. The syntax and semantics of the proposed international algebraic language of the zuricacm-gamm conference. 1959. [12] Michael O’Neill and Conor Ryan. Grammatical evolution. IEEE Transactions on Evolutionary Computation, 5(4):349–358, 2001. [13] Michael O’Neill, Anthony Brabazon, Miguel Nicolau, Sean Mc Garraghy, and Peter Keenan. πgrammatical evolution. In Genetic and Evolutionary Computation Conference, pages 617–629. Springer, 2004. [14] David Fagan, Miguel Nicolau, Michael O’Neill, Edgar Galv´an-L´opez, Anthony Brabazon, and Sean McGarraghy. Investigating mapping order in πge. In IEEE Congress on Evolutionary Computation, pages 1–7. IEEE, 2010. [15] Nuno Louren¸co, Francisco B Pereira, and Ernesto Costa. Sge: a structu- red representation for grammatical evolution. In International Conference on Artificial Evolution (Evolution Artificielle), pages 136–148. Springer, 2015. [16] Robin Harper. Ge, explosive grammars and the lasting legacy of bad initialisation. 2010. [17] Michael O’Neill, Conor Ryan, Maarten Keijzer, and Mike Cattolico. Crosso- ver in grammatical evolution. Genetic programming and evolvable machines, 4(1):67–93, 2003. [18] David Fagan. Analysing the Genotype-Phenotype Map in Grammatical Evolution. PhD thesis, University College Dublin, 2013. [19] David R White, James Mcdermott, Mauro Castelli, Luca Manzoni, Brian W Goldman, Gabriel Kronberger, Wojciech Ja´skowski, Una-May O’Reilly, and Sean Luke. Better gp benchmarks: community survey results and proposals. Genetic Programming and Evolvable Machines, 14(1):3–29, 2013. [20] Marc Ebner, Patrick Langguth, Juergen Albert, Mark Shackleton, and Rob Ship-man. On neutral networks and evolvability. 2001 Congress on Evolutionary Computation CEC2001, pages 1—-8, 2001. 31