Fuzzy Logic in Protein Structure Prediction
Introduzione alla fuzzy logic
FANS: un’euristica fuzzy per la ricerca locale
Applicare FANS alla predizione di strutture proteiche
Introduzione
• La scienza tende ad essere precisa.
• La realtà è invece pervasa da incertezza e imprecisione.
• Necessità di una logica diversa dalla classica logica dicotomica per
rappresentare le proprietà polivalenti degli oggetti.
• Necessità di risolvere certi problemi reali, considerati difficili, in un
tempo umanamente accettabile.
Fuzzy Logic & Soft Computing
Soft Computing
•
•
•
•
Neurocomputing
Evolutionary computation
Fuzzy logic
Probability reasoning
• “Strumenti in grado di trattare con
l‘imprecisione e l’incertezza dei problemi
reali, in grado di individuare soluzioni
robuste ed a basso costo.”
(fonte: Soft Computing and Fuzzy Logic, Zadeh 1994)
Soft Computing
• Un’euristica è una tecnica per risolvere
problemi difficili, la cui bontà della soluzione
è valutata secondo parametri basati sulle
necessità dell’utilizzatore.
• Queste necessità non sono solo legate alla
logica simbolica ma anche ad ambiti non
formali come il linguaggio naturale.
Logica Fuzzy
• “La fuzzy logic o logica sfumata è una logica polivalente e pertanto
un'estensione della logica booleana in cui si può attribuire a
ciascuna proposizione un grado di verità compreso tra 0 e 1. […]
Quando parliamo di grado di appartenenza, per dirla con
un'esemplificazione, intendiamo che una proprietà può essere oltre
che vera (= a valore 1) o falsa (= a valore 0) come nella logica
classica, anche di valori intermedi.”
(fonte: Wikipedia)
Logica Fuzzy: esempio
• Logica dicotomica
1
Bambino
0
10
A
d
o
l
e
s
c
e
n
t
e
Giovane
20
30
Mezza età
40
Su d’età
50
60
Sopra media
Anziano
70
80
90
anni
Logica Fuzzy: esempio
• Logica fuzzy
13 anni:
μ(bambino) = 0.20
μ(adolescente) = 0.55
μ(giovane) = 0.0
μ(mezza età) = 0.0
μ(su d’età) = 0.0
μ(anziano) = 0.0
μ(sopra media) = 0.0
μ
1
Bambino
0
10
Adolescente
20
Mezza età
Giovane
30
40
50
Su d’età
60
Anziano
70
80
Sopra media
90
anni
Logica Fuzzy: esempio
• Una variabile linguistica (nell’esempio precedente, l’età) rappresenta
una variabile il cui dominio è stato quantizzato in maniera fuzzy
(granulation process). E’ descritta da insiemi fuzzy (nell’esempio
precedente bambino, giovane, adolescente, etc.) definiti
univocamente ed in parte sovrapposti.
• “Un insieme F è fuzzy se l’appartenenza di un elemento x (che
rappresenta una certa variabile) ad esso può essere espressa da un
numero reale compreso tra 0 e 1.
La funzione μ(x) che esprime tale grado di appartenenza è appunto
detta funzione di appartenenza.”
(fonte: Logica Fuzzy, Veronesi e Visioli, ed. FrancoAngeli)
Logica fuzzy
Quali problemi traggono beneficio da una implementazione fuzzy?
• Problemi la cui descrizione matematica non è presente o è di difficile
definizione.
• Problemi la cui descrizione matematica è ben definita ma:
- necessità di una logica polivalente;
- il costo computazionale dell’implementazione del modello è molto
elevato;
- si lavora con un consistente rumore di fondo o con strumenti
scarsamente precisi.
Logica fuzzy
• Vantaggi:
- maggiore aderenza del modello al comportamento reale;
- riduzione costi (tempo e risorse di computazione).
• Svantaggi:
- necessità di persone che conoscano molto bene il sistema in
concreto e che siano in grado di scriverne le regole sottostanti;
- difficoltà nella rappresentazione degli insiemi fuzzy che descrivono
le variabili del sistema.
Sistemi fuzzy
problema iniziale
modellizzazione
definizione superficie
di controllo
definizione delle regole
defuzzificazione
no
è un buon
modello?
sì
Applicazioni pratiche
Sistemi fuzzy
problema iniziale
modellizzazione
definizione superficie
di controllo
definizione delle regole
defuzzificazione
no
è un buon
modello?
sì
Applicazioni pratiche
• Definizione iniziale delle caratteristiche
funzionali del sistema e delle operazioni
che possono essere compiute su di
esso.
Sistemi fuzzy
problema iniziale
modellizzazione
• Ogni variabile in input o in output al
sistema deve essere decomposta in in
una serie di insiemi fuzzy.
definizione superficie
di controllo
definizione delle regole
Input vars
defuzzificazione
no
è un buon
modello?
sì
Applicazioni pratiche
Output vars
Sistemi fuzzy
problema iniziale
modellizzazione
definizione superficie
di controllo
definizione delle regole
defuzzificazione
no
è un buon
modello?
sì
Applicazioni pratiche
• Il comportamento della superficie di
controllo deve essere definito da regole
in grado di correlare l’input con l’output
del sistema.
• IF <fuzzy preposition>
THEN <fuzzy preposition>
Sistemi fuzzy
problema iniziale
IF temperature is Cool AND pression IS Low THEN throttle action is PM
modellizzazione
definizione superficie
di controllo
definizione delle regole
defuzzificazione
IF temperature is Cool AND pression is OK THEN throttle action is ZR
no
è un buon
modello?
sì
Applicazioni pratiche
Come viene generato l’output?
Le premesse (IF) vengono combinate scegliendo
il grado di appertenenza più basso dei due valori
(intersezione, AND). Il valore di output è ottenuto
come unione (OR) degli α-cut delle funzioni di
appartenenza dopo il THEN.
Sistemi fuzzy
problema iniziale
modellizzazione
definizione superficie
di controllo
definizione delle regole
defuzzificazione
no
è un buon
modello?
sì
Applicazioni pratiche
• Il passo finale consiste nella scelta del
metodo di “defuzzificazione”, attraverso
il quale estrarre un valore
deterministico dall’inferenza fuzzy.
• Esistono vari metodi:
- media dei massimi;
- media pesata dei centri;
- metodo del baricentro;
- centro delle somme.
Sistemi fuzzy
problema iniziale
modellizzazione
definizione superficie
di controllo
definizione delle regole
defuzzificazione
no
è un buon
modello?
sì
Applicazioni pratiche
+150
FANS: Fuzzy Adaptive Neighborhood Search
• A Fuzzy Valuation-Based Local Search Framework for
Combinatorial Problems
• Applying a Fuzzy Sets-based Heuristic to the Protein Structure
Prediction Problem
(Armando Blanco, David A. Pelta, Jos´ e-L. Verdegay, 2002).
Ricerca locale
• Metodo euristico stocastico iterativo
• Semplice ma potente nel trattare problemi di tipo combinatoriale
• Trova minimi locali
Begin
s = initial_solution();
While (improve(s) = TRUE) Do
s = improve(s);
Od
return(s);
End.
FANS: introduzione
• Perché Fuzzy: le soluzioni vengono valutate in termini di
appartenenza a un insieme fuzzy, oltre che con una classica
funzione obiettivo.
• Perché Adattativo: il comportamento di FANS viene adattato nel
corso delle iterazioni.
• Meccanismo di escape da minimi locali che non richiede il riavvio
dell’intera procedura di ricerca.
FANS: fuzzy valuation
• A seconda di una diversa calibrazione delle funzioni di
appartenenza che definiscono la valutazione fuzzy delle soluzioni,
FANS può essere adattato per comportarsi in modi diversi:
- random search;
- random walk;
- hill climbing;
- simulated annealing;
- tabu search.
FANS: componenti
• Modification Operator (O): genera nuove soluzioni si a partire da s.
E’ costituito da una componente fissa, una random ed una
parametrica;
• Fuzzy Valuation (µ): ad ogni iterazione, in base al valore restituito
dalla funzione obiettivo, valuta l’appartenenza di ogni soluzione
all’insieme fuzzy costituito dalle soluzioni si dell’intorno di s (una
sorta di “Accettabilità” della soluzione);
• Operator Scheduler (OS): varia il comportamento di O;
• Neighborhood Scheduler (NS): dopo aver generato un intorno di
soluzioni servendosi di O, ne seleziona una tra quelle che
costituiscono l’intorno della soluzione in input servendosi di µ.
FANS: Modification Operator
O2
s2α
O1α
α
s
s1α,β
O1β
O2
β
s2β
FANS: procedura
Begin
InitVariables();
While (not-end) Do
NS->Run(O, µ(), Scur, Snew, ok);
If (ok) then
Scur = Snew;
adaptFuzzyVal(µ(), Scur)
Else
OS->Run();
Fi
If (TrappedSituation()) then
doEscape();
Fi
Od
return(Scur);
End.
• Creazione di una soluzione
iniziale;
• inizializzazione delle condizioni
di fine ciclio.
FANS: procedura
Begin
InitVariables();
While (not-end) Do
NS->Run(O, µ(), Scur, Snew, ok);
If (ok) then
Scur = Snew;
adaptFuzzyVal(µ(), Scur)
Else
OS->Run();
Fi
If (TrappedSituation()) then
doEscape();
Fi
Od
return(Scur);
End.
• Il ciclo esegue un numero di
iterazioni variabile in base a:
- numero di iterazioni predefinito;
- la funzione obiettivo raggiunge
un certo valore.
FANS: procedura
Begin
InitVariables();
While (not-end) Do
NS->Run(O, µ(), Scur, Snew, ok);
If (ok) then
Scur = Snew;
adaptFuzzyVal(µ(), Scur)
Else
OS->Run();
Fi
If (TrappedSituation()) then
doEscape();
Fi
Od
return(Scur);
End.
• Il Neighborhood Scheduler (NS)
è costituito da due procedure:
- generatrice;
- selezionatrice.
•
Definizione operazionale di intorno
(“vicinato di s”):
•
Definizione semantica di intorno
(“vicinato di s”):
FANS: procedura
Begin
InitVariables();
While (not-end) Do
NS->Run(O, µ(), Scur, Snew, ok);
If (ok) then
Scur = Snew;
adaptFuzzyVal(µ(), Scur)
Else
OS->Run();
Fi
If (TrappedSituation()) then
doEscape();
Fi
Od
return(Scur);
End.
• Se è stata trovata una soluzione
migliore di quella corrente:
- prende quella nuova come
corrente;
- i parametri di µ() vengono
adattati al nuovo contesto.
FANS: procedura
Begin
InitVariables();
While (not-end) Do
NS->Run(O, µ(), Scur, Snew, ok);
If (ok) then
Scur = Snew;
adaptFuzzyVal(µ(), Scur)
Else
OS->Run();
Fi
If (TrappedSituation()) then
doEscape();
Fi
Od
return(Scur);
End.
• Se NON è stata trovata una
soluzione “più adatta” di quella
corrente, viene lanciato l’Operator
Scheduler (OS), che ritorna una
versione modificata di O.
• Permette di uscire da un minimo
locale.
FANS: procedura
Begin
InitVariables();
While (not-end) Do
NS->Run(O, µ(), Scur, Snew, ok);
If (ok) then
Scur = Snew;
adaptFuzzyVal(µ(), Scur)
Else
OS->Run();
Fi
If (TrappedSituation()) then
doEscape();
Fi
Od
return(Scur);
End.
• Qualora la ricerca con cambio di
operatore fallisca ripetutamente
(tante volte quante il numero di
operatori disponibili), è molto
probabile che ci si trovi intrappolati
in un minimo locale da cui è
impossibile uscire.
• In questa situazione viene lanciata
la procedura doEscape(), la cui
implementazione classica è il
riavvio dell’intera procedura.
FANS: knapsack problem
•
Il Problema dello zaino (Knapsack
problem), è un problema di
ottimizzazione combinatoria.
•
Si ha uno zaino che può
supportare un determinato peso.
Si ha a propria disposizione una
serie di N oggetti. Ognuno degli
oggetti ha un peso e fornisce
un'utilità (ovvero un guadagno).
Il problema si propone di trovare
quali oggetti mettere all'interno
dello zaino ottenendo la maggiore
utilità, ma non eccedendo nel peso
sostenibile dallo zaino stesso.
FANS: knapsack problem
Media e deviazione standard dello scarto tra il risultato ottenuto dalle
euristiche e il risultato esatto ottenuto con un algoritmo pseudo-polinomiale.
(SA, simulated annealing; GAop, genetic algorithm one point crossover;
GAux, genetic algorithm uniform crossover).
• Buona parte del successo dell’euristica FANS può essere attribuito
all’uso di un sistema fuzzy di valutazione delle soluzioni.
FANS: Protein Structure Prediction
• Oltre che sui classici problemi di ottimizzazione combinatoriale,
FANS è stato testato su problemi di tipo biologico.
• Protein structure prediction (PSP) di prototipi proteici altamente
semplificati (lattici) secondo il modello di interazioni idrofobicheidrofiliche di Dill (HP model).
Lattici
• La complessità delle proteine reali non permette di simulare più di
pochi microsecondi del loro comportamento.
• Necessità di modelli proteici computerizzati altamente semplificati,
che possano foldare in un tempo sufficientemente piccolo da poter
essere simulato.
• Gli aminoacidi sono ridotti a sfere dal comportamento semplificato,
con gradi di libertà molto ristretti.
• Gli aminoacidi sono divisi in tipi, ogni tipo con un diverso
comportamento (possibili interazioni).
• Come nella realtà, la struttura nativa può essere individuata
minimizzando l’energia delle interazioni tra gli aminoacidi.
HP model
• La proteina è ridotta ad un pattern di idrofobicità; ogni aminoacido
viene visto come un oggetto caratterizzato da un’unica proprietà
(l’idrofobicità) che può assumere valore H o P.
• Con contatto idrofobico si intende una coppia di H adiacenti nella
struttura impaccata che non siano adiacenti nella sequenza.
• Ogni contatto idrofobico diminuisce di 1 l’energia della proteina (0
per la struttura lineare).
• PSP viene risolto massimizzando il numero di contatti idrofobici,
ovvero minimizzando l’energia della proteina.
HP model: esempio
P
P
H
H
H
H
P
n contatti idrofobici = 0
Eproteina = 0
min(Eprotein)
max(n contatti H)
H
H
H
H
P
n contatti idrofobici = 1
Eproteina = -1
Lattici: rappresentazione
• Coordinate interne:
-
assolute (s = {Up, Down, Left, Right}):
sLatticeQuadrato = RURDRDLLDLU;
-
relative (s = {Forward, TurnRight, TurnLeft}):
sLatticeQuadrato = FLRRLRRFLRR.
FANS: Protein Structure Prediction
Fans(NS, O, OS, μ(), Pars, (cond1, action1))
• L’operatore di modifica si serve di un parametro k che rappresenta il
numero di posizioni da cambiare ad ogni iterazione.
• Due categorie di operazioni possibili:
-
segment mode:
modifica k posizioni consecutive:
- shuffling: {FLRRLRRFLRR}
{FLRRFLLRLRR}
- reflection: {FLRRLRRFLRR}
{FLRRFRRLLRR}
-
flip mode:
modifica k posizioni selezionate casualmente.
FANS: Protein Structure Prediction
Fans(NS, O, OS, μ(), Pars, (cond1, action1))
• La valutazione fuzzy
f
s
q
µ
1
β
γ
0
µ(q,s,β) =
β
funzione obiettivo
soluzione corrente
una soluzione dall’intorno
operazionale di s
f(s)*(1-γ)
[0..1], in questo caso 0.2
f(s)
0.0
if f(q) < β
(f(q) – β)/(f(s) – β)
if β < f(q) =< f(s)
1.0
if f(q) > f(s)
FANS: Protein Structure Prediction
Fans(NS, O, OS, μ(), Pars, (cond1, action1))
• L’operator scheduler adatta l’operatore di modifica attraverso
cambiamenti del parametro k;
• k inizializzato a n/4;
• Ad ogni chiamata: kt+1 = kt – 1.
FANS: Protein Structure Prediction
Fans(NS, O, OS, μ(), Pars, (cond1, action1))
• E’ implementata una versione semplice del neighborhood scheduler.
-
Generatore:
chiama O secondo le modalità e i parametri passati da OS;
-
Selezionatore:
ritorna la prima soluzione trovata con µ(q) > λ.
• In questa implementazione il numero massimo di soluzioni valutate
in una chiamata di NS è fissato a 50.
FANS: Protein Structure Prediction
Fans(NS, O, OS, μ(), Pars, (cond1, action1))
• Parametri di O, (k, …).
• Parametri di μ(), (λ, …).
• Informazioni condivise tra le componenti.
FANS: Protein Structure Prediction
Fans(NS, O, OS, μ(), Pars, (cond1, action1))
• (k = 0, doEscape()).
• (“nessun miglioramento in N chiamate di NS”, doEscape()).
FANS: relative encoding vs absolute encoding
Risultati per lattici quadrati
Risultati per lattici triangolari
Risultati per lattici cubici
• Per ogni lattice valutato, FANS è
stato lanciato 180 volte (30 corse *
3 λ * 2 encoding).
• Le tabelle mostrano, per ogni
coppia (lattice, λ) quale dei due
metodi di codifica delle coordinate
sia risultato significativamente
migliore (t-test) rispetto all’altro.
• Condizione di terminazione:
105 chiamate della funzione di
valutazione fuzzy.
FANS vs GA
•
•
•
•
•
•
Parametri di FANS adattati e implementati in GA;
lattici quadrati;
relative encoding;
λ = 0.9;
30 corse per ogni istanza ed algoritmo;
condizione di terminazione: 105 chiamate della funzione di
valutazione fuzzy.
FANS vs GA
FANS: conclusioni riguardo PSP
• I risultati di FANS si allineano o superano quelli ottenibili con
algoritmi genetici.
• Codifica relativa delle coordinate migliore nei lattici quadrati, codifica
assoluta migliore nei lattici triangolari, comportamento intermedio
per i lattici cubici.
Questo risultato conferma i risultati precedentemente ottenuti
utilizzando algoritmi genetici.
FANS: conclusioni
• Si può ottenere un diverso comportamento di FANS calibrando la
componente fuzzy.
(A Fuzzy Valuation-Based Local Search Framework for Combinatorial Problems, Armando Blanco, David A. Pelta,
Jos´ e-L. Verdegay, 2002).
• Sono stati ottenuti risultati soddisfacenti applicandolo a problemi
generici quali l’ottimizzazione di funzioni.
(A Fuzzy Adaptive Neighborhood Search for Function Optimization, Armando Blanco, David A. Pelta, Jos´ e-L.
Verdegay, 2002).
• FANS dà buoni risultati anche come euristica applicata a problemi
pratici di ottimizzazione (PSP).
(Applying a Fuzzy Sets-based Heuristic to the Protein Structure Prediction Problem, Armando Blanco, David A.
Pelta, Jos´ e-L. Verdegay, 2002).
Ulteriori risorse
• Krasnogor N, HartW, Smith J, Pelta D. Protein structure prediction
with evolutionary algorithms. In: BanzhafW, Daida J, Jakaiela M,
Smith R, editors. GECCO-99. Morgan Kauffman; 1999.
• Dill KA. Theory for the folding and stability of globular proteins.
Biochemistry, 1985.
• David Pelta, Natalio Krasnogor, Carlos Bousono-Calzon, José L.
Verdegay, J. Hirst, Edmund Burke. A fuzzy sets based
generalization of contact maps for the overlap of protein structures,
2004.
Scarica

fuzzy_PSP