Un Algoritmo Immunologico per
il Riconoscimento di Caratteri
e per il Problema 3-SAT
In questa
presentazione
descriverò il
lavoro
di tesi dal
Giuseppe
titolo
Nicosia
Dipartimento di Matematica e Informatica
Università di Catania
In particolare vedremo
tre sezioni:nella prima
descriverò
brevemente: la
metafora utilizzata, i
meccanismi che da
essa abbiamo estratto
e lo sviluppo
dell’algoritmo che
abbiamo creato,nella
seconda vedremo che
questo mantiene le
proprietà di
apprendimento
ereditate dal SI
naturale, e nella terza
osserveremo il
comportamento
dell’algoritmo nel
risolvere istanze difficili
di un problema NPcompleto quale il 3SAT
Indice della presentazione
Computazione Evolutiva: Metafora SI, Selezione
Clonale ed Algoritmo immunologico
Learning e riconoscimento di caratteri mediante un
Algoritmo Immunologico (AI).
Risoluzione di istanze difficili del problema 3-SAT
con un AI.
Algoritmi Evolutivi
Nascono dal “paradigma” della evoluzione
biologica della specie
Gli operatori principali:
 Selezione
 Ricombinazione
 Mutazione
Questi algoritmi vengono
utilizzati in applicazioni
quali riconoscimento di
patterns ed ottimizzazioni
di funzioni.
Sistema Immunitario Naturale
Il SI naturale è un sistema di riconoscimento e difesa
dell’organismo da agenti patogeni esterni.
Ci siamo posti la seguente domanda :
E’ possibile utilizzare i meccanismi del SI per costruire
un algoritmo evolutivo capace di risolvere problemi di
riconoscimento ed ottimizzazione ?
Il lavoro della tesi è una prima risposta a questa domanda.
Il SI Naturale
Il SI naturale riconosce ed elimina gli
agenti patogeni esterni (Antigeni) con un
sistema complesso, basato sul
matching, anche non perfetto,
tra i recettori dei linfociti B (Cellule B) e gli
antigeni.
Meccanismo della Selezione
Clonale, produzione di
plasma cellule e cellule
memoria
La cellula che supera
la soglia di
attivazione viene
clonata, i cloni
vengono sottoposti a
mutazione alcuni
evolveranno in
Plasma cellule altri
in Cellule memoria
caratterizzate da un
tempo di vita media
molto lungo.
All’interno di questo
mecc. È presente
anche un processo
chiamato affinity
loop
Affinity loop: Le cellule
prodotte da clonazione
vengono a loro volta
sottoposte a selezione
Algoritmo Immunologico
Basandoci su questi modelli del
SI abbiamo costruito un
algoritmo evolutivo che utilizza i
seguenti operatori:
Gli Operatori Immunologici
Selezione mediata dall’antigene: L’incontro tra
recettore ed Antigene genera informazione che
serve al processo evolutivo della Selezione
Clonale.
Clonazione: La cellula viene duplicata un numero di
volte prestabilito.
Ipermutazione: Inserisce diversità nella
popolazione garantendo la copertura di spazi di
ricerca molto ampi.
L’Algoritmo Immunologico
Procedura AI;{
Initpop P(0);
Evaluate P(0);
until(done) {
t=t+1;
CloningSelection P(t);
Hypermutation();
Birth();
Evaluate P(t);
Survive P(t);
}
}
/* Generazione casuale di P */
/* Valutazione livelli affinità */
/* Selezione in base ad affinità */
/* Mutazione B cells */
Qui
è Nascita
mostrata la B cells */
/*
pseudo codifica
dell’algoritmo da
noi presentato.
Sono ben visibili
gli operatori
precedentemente
menzionati
/* Secondo passo di selezione */
Dario:
Forse è meglio:
Osservando i
comportamenti di
due diverse
implementazioni
Applicazioni
L’algoritmo descritto è stato verificato su
due classici problemi computazionali:
Il riconoscimento di caratteri
Testato su due implementazioni diverse:
Riconoscimento sequenziale e parallelo.
Il 3-SAT
Mediante l’uso di un meccanismo chiamato SAW.
I Applicazione
Riconoscimento di Caratteri
I caratteri in input
vengono
presentati come
una matrice di bit
12x10;
Riconoscimento di Caratteri
Definizione del problema:
Gli antigeni e i
recettori delle
cellule B vengono
codificati
Ag
mediante
un
vettore di interi di
Recettore
dim. 120, la
metrica che
abbiamo utilizzato
per definire la
distanza tra rec.
ed antig. è la DH
uguale alla
Dhdi( Btutti
, Ag
somma
i bit)
diversi, La
funzione di fitness
associata alle
cellule è quindi un
numero compreso
tra 0 ed 1 1 perf.
Match 0 entità
opposte
codificati mediante un
vettore di interi di dim. L = 120
Distanza di Hamming
l 1
 
i 0
1 se Bi  Agi
dove   
0 Altrimenti
Funzione di Fitness
Dh ( B, Ag )
F ( B, Ag )  1 
L
12 x 10
Lanciata la
versione
sequenziale
osservando
l’evoluzione della
popolazione di
cellule, si
800
possono
notare
gli spike che
700 ai
corrispondono
vari
600
riconoscimenti,
Nel grafico
500
piccolo è
evidenziato
400 un
particolare
relativo300
al primo
step di
200
riconoscimento
per meglio
100
apprezzare
l’espansione in
prossimità0del
0
perfect match
Evoluzione di una singola
popolazione di cellule B
individui nella popolazione
numero di cellule
200
150
100
50
0
0
5
10
15
20
25
30
35
40
Spike
50
100
150
200
250
time steps
300
350
400
Variazione sul numero di cellule B durante il riconoscimento di
tutti i caratteri. Gli spike corrispondono ai riconoscimenti
Un’altra quantità
da tenere in
considerazione è
la misura di
affinità. Dalla
quale otteniamo
1
la certezza dei
riconoscimenti,
0.9 sulla
informazioni
sequenza di
questi e
0.8
sull’andamento
dei valori di
0.7
fitness
Andamento della Fitness Function
Valori di Fitness
0.6
0.5
0.4
valore medio
valore migliore
0
50
100
150
200
250
Time Steps
300
350
400
Valori medio e massimo della misura di affinità delle cellule
B
La seconda
versione
dell’algoritmo
permette 1.
Riconoscimento Parallelo
Un’altra differenza
consiste nella 2.
1. Coevoluzione di n popolazioni che
contemporaneamente tendono agli n caratteri in input
2. Seconda fase della selezione : Abbiamo utilizzato un
meccanismo chiamato ranking selection (Selezione
Ordinata) secondo il quale vengono selezionati per
sopravvivere solo m individui per ogni popolazione.
La popolazione i-esima sarà formata, quindi, dai primi m elementi
della lista ordinati rispetto all’i-esimo elemento dell’array F (fitness
function).
Questa seconda
implementazione ha
evidenziato aspetti
interessanti: nei
primi steps del
riconoscimento
abbiamo osservato
delle cellule
che le Totalità
popolazioni
contengono alcuni
individui in comune
che vengono via via
rimpiazzati da
cellule più
specializzate,
questo fenomeno,
nel SIN è appunto
chiamato
specializzazione.
Durante il
Specializzazione
riconoscimento la
diminuzione del
numero di cellule è
dovuta al fatto che si
devono isolare
sempre meno
popolazioni man
mano
10
20 che i caratteri
30
40
vengono
Time Steps
riconosciuti.
Coevoluzione di più popolazioni di
cellule B
100
Numero cellule B
80
60
40
20
0
0
B
Riconoscimento
dei Caratteri
50
60
Grafico sulla dinamica del Numero di Cellule B durante il
Riconoscimento Parallelo
.
70
L’andamento
della fitness dei
migliori elementi
di ogni
popolazione ci
mostra la 1
effettiva
coevoluzione
0.95 il
verso
riconoscimento
0.9di tutti i
completo
caratteri
Andamento della Fitness Function
Valori di Fitness degli Individui Migliori
Fitness
0.85
0.8
patt 0
patt 1
patt 2
patt 3
patt 4
patt 5
patt 6
patt 7
patt 8
patt 9
0.75
0.7
0.65
0.6
0.55
0
10
20
30
Time Steps
40
50
60
Visualizzazione del valore di affinità migliore per ogni sotto popolazione relativa a tutti i patterns in input.
Learning Cascade
n popolazioni
Una ulteriore verifica di questo riconoscimento è visibile dallo spostamento della distribuzione delle
Spostamento
della distribuzione
delle verso
cellule
albit di
cellule
da una aggregazione
con molti bit di mismatch
una relativamente
aggregazione senza
mismatch. L’osservazione dinumero
questi spostamenti
ha permesso
di Matching
Bits di capire meglio l’operatore di
ipermutazione.
Single vs Multiple
Multiple converge più velocemente ed è
insensibile al numero di caratteri in input
Confronto di prestazioni
350
Sequenziale
Parallelo
300
250
200
150
100
50
0
1
2
3
4
5
6
7
Numero pattern in input
8
Il confronto tra le
due
implementazioni
ha evidenziato
che il
9
10
riconoscimento
parallelo
II Applicazione
Il Problema 3-SAT
Il problema 3-SAT
Istanza:
C  {c1 , c2 ,..., cl }
Una collezione di clausole
Un insieme finito U di variabili tali che :
| ci | 3 per 1  i  l
Problema:
Esiste un assegnamento di verità per U che
soddisfa tutte le clausole in C
In questo problema si
ha
CNF
F1  ( X 1  X 2  Z1 )  (Z1  X 3  Z 2 )...
Noi abbiamo
considerato formule
proposizionali in CNF
Istanze difficili del problema
3-SAT (Mitchell 1992)
Di queste
abbiamo
considerato le
istanze che
presentano un
rapporto clausole
/ variabili uguale a
4.3. Mitchell ha
dimostrato che
queste sono le
Le
istanze
con
istanze
più difficili
di tale problema,
rapporto
ovvero quelle per
clausole/variabili
le quali sono
4,3necessarie il
maggior numero
di chiamate alla
procedura
ricorsiva DP
Numero medio di chiamate ricorsive alla procedura DP in
funzione del rapporto tra clausole e variabili.
SAW
Lo Stepwise adaptation weight è uno dei
meccanismi più usati per incrementare le
prestazioni degli AE riguardo i (CSP) Constraint
Satisfaction Problem, cioè i problemi dove
esistono vincoli da soddisfare. Esso consiste
nell’assegnare un peso ad ogni clausola ed
incrementarlo se la clausola, dopo un certo
numero di Time Steps, non è stata ancora
verificata. Mediante tale metodo, quindi, abbiamo
informazioni sulla semantica del problema.
Codifica per il problema 3SAT



Ag = Formula proposizionale in cnf soddisfacibile,
codificata mediante un vettore di interi di
dimensione l · 3, dove l è il numero di clausole.
Recettore della Cellula B = Assegnamento di
verità codificato mediante un vettore di interi di
dimensione n, numero di variabili.
Funzione di Fitness (penalità) è una somma
pesata delle clausole insoddisfatte:
l
F(B)   Wi  Sati ( A)
t
i 1
Dove Wi è il peso della clausola i al tempo t,
Sati(A)=0 se essa non è soddisfatta
dall’assegnamento A proposto dalla Cellula B
Confronto con altri algoritmi evolutivi
Il nostro algoritmo (AI) è stato confrontato con i migliori
algoritmi - nell’ambito delle strategie evolutive e degli algoritmi
genetici - per il problema del 3SAT :
• La strategia evolutiva (15,100)-SE
• l’algoritmo genetico WGSAT
[vedi 7th Annual Conference on Evolutionary Programming, LNCS, n.1477, pp. 125136. Springer Berlin, 1998]
Il confronto è basato su due parametri:
• SR = success rate, percentuale degli esperimenti con successo
•AES = average number of evaluation to solution, numero di
valutazioni necessarie per ottenere la soluzione.
I risultati ottenutiPercentuale di
sono stati esperimenti con
confrontati con successo
quelli ottenuti da
altri
2 AE una SE
Numero
(15,100)-SE
ed un AG
Variabili
entrambi
Caso
SR AES
selezionati come
i
migliori del loro
1
0.92 18725
gruppo nella
risoluzione del2
l=30
0
problema in
esame, l’AG 3
0
inoltre usa dei
parametri 4
0.70 10145
ottimizzati per le
l=40
5
0.66 11795
diverse istanze.l’
AI di contro usa
0
parametri 6
minimali
7
0.80 22269
ottenendo risultati
soddisfacenti.
EA vs. IA
l=50
l=100
8
9
10
0.34
0
0
Numero medio di
valutazioni
(1+1)-Saw AI
SR AES
WGSat Opt. Fixed
SR
AES
1
0.92
1
1
2912
40918
1705
13676
1
0.96
1
1
6063
78985
31526
13328
0.76
1
0.32
74374
15036
98644
1
0.94
1
2899
82031
28026
8183 0.98
- 0.18
- 0.36
46006
149323
122218
1
0.32
0.06
60160
147718
192403
Conclusioni
Nuovo algoritmo evolutivo: l’algoritmo
immunologico.
Learning mediante algoritmo immunologico
coevolutivo.
Soluzioni di istanze difficili del problema
3-SAT.
Abbiamo creato un nuovo...
Abbiamo dimostrato che questo è
capace di apprendere e di risolvere
problemi difficili
Scarica

3SAT - Dipartimento di Matematica e Informatica