programmazione genetica per l'inferenza di reti di kauffman
DESCRIPTION
Tesi triennale: Programmazione Genetica per l'Inferenza di Reti di KauffmanTRANSCRIPT
ALMA MATER STUDIORUMSeconda Facoltà di Ingegneria Informatica
Programmazione genetica per l’inferenza di reti di Kauffman
Relatore Presentata da
Dott. Ing. Andrea Roli Daniele Bellavista
2Programmazione genetica per l'inferenza di reti di Kauffman
Struttura
Grafo orientato, N nodi variabili
binarie
K archi entranti per
nodo
Funzione booleana
associata ad ogni nodo
Gli input sono gli archi entranti.
Comportamento dinamico
Lo stato della rete è l’insieme dello stato dei
nodi.
Cambiamento di stato sincrono.
La rete descrive una traiettoria.
Il sistema può raggiungere un
ordine spontaneo.
Reti di Kauffman o Reti Booleane
3Programmazione genetica per l'inferenza di reti di Kauffman
Traiettorie
Reti di Kauffman o Reti Booleane
x0
x1
x2
000
001
010111
100
011
110 101
Rete Booleana
Rete booleana con N = 3 e K = 2. Nelle traiettorie sono evidenziati gli attrattori della rete.
x0 = x1 & x2x1 = x0 | x2x2 = x0 | x1
4Programmazione genetica per l'inferenza di reti di Kauffman
Tecnica metaeuristica domain independent
• Descrizione del problema ad alto livello.
• Tecniche evolutive basate su selezione darwiniana.Evoluzione di una popolazione
di programmi che risolvano il problema• Programmi composti da operazioni
elementari.• Nessuna assunzione sulla struttura
delle soluzioni.
Programmazione Genetica
5Programmazione genetica per l'inferenza di reti di Kauffman
Ciclo evolutivoInsieme
delle operazioni
Misura Fitness
Parametri
Controllo
Inizializzazione
Valutazione
Trovato un
individuo ideale
Fine
Breeding
Selezione
Evoluzione
SI NO
Nuova generazio
ne
6Programmazione genetica per l'inferenza di reti di Kauffman
Inferenza di una rete booleana
Determinazione dei collegamenti e delle funzioni booleane di ogni nodo, a partire da un sottoinsieme delle traiettorie note
del sistema.
Misura Fitness: confronto fra traiettorie generate dagli individui
e le traiettorie note.
Insieme delle operazioni:
identificatori dei nodi della rete booleana e
funzioni booleane (AND, OR, ...).
x0 x1 x2
1 1 0
0 1 1
1 1 1
1 1 1
x0 = x1 & x2
x1 = x2 | x0
x2 = x0 | x1
7Programmazione genetica per l'inferenza di reti di Kauffman
Suddivisione della popolazione in N sotto-popolazioni, ognuna di esse evolve programmi per riprodurre la traiettoria di un nodo. La soluzione è composta da N individui.
Misura della Fitness
Sotto popolazione 1
Sotto popolazione 2
Sotto popolazione 3
Sotto popolazione 4
Popolazione
011011
100001
0011o0
111101
8Programmazione genetica per l'inferenza di reti di Kauffman
Misura della fitness
Misura dell’errore per un programma della sotto-popolazione j
𝒆 𝒋= ∑𝒊=𝟎
𝑴−𝟐
𝒉(𝒕 [𝒊+𝟏 ] [ 𝒋 ] ,𝒆𝒗𝒂𝒍 (𝒑𝒓𝒐𝒈 ,𝒕 [𝒊 ]))Misura dell’errore di una soluzione
𝒆= ∑𝒋=𝟎
𝑵 −𝟏
𝒆 𝒋
Misura della fitness
𝒇=𝟏
𝟏+𝒆
Data una traiettoria T con M stati e definendo h() funzione di confronto:
9Programmazione genetica per l'inferenza di reti di Kauffman
N = { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70 }
(K, p) = { (2, 0.5), (3, 0.788) }
• 100 esecuzioni per ogni rete, massimo 100 generazioni.
• Memorizzazione dei migliori programmi per ogni generazione.
• Calcolo dell’errore percentuale in funzione delle generazioni per ogni esecuzione e calcolo della media fra le esecuzioni.
• Confronto con un algoritmo di generazione casuale.
• Calcolo della qualified run-length distribution.
Esperimenti
10Programmazione genetica per l'inferenza di reti di Kauffman
Risultati – funzione errore per generazioni
Rete con N = 70, K = 3, p = 0.788
11Programmazione genetica per l'inferenza di reti di Kauffman
Risultati – run-length distribution
Rete con N = 70, K = 3, p = 0.788
12Programmazione genetica per l'inferenza di reti di Kauffman
Risultati – funzione errore per generazioni
Rete con N = 70, K = 2, p = 0.5
13Programmazione genetica per l'inferenza di reti di Kauffman
Risultati – run-length distribution
Rete con N = 70, K = 2, p = 0.5
14Programmazione genetica per l'inferenza di reti di Kauffman
Esempio di soluzione ottenuta con reteN = 5, K = 2, p = 0.5. L’errore totale .
Risultati – Soluzioni
x0 = x3 nand (x1 nor x2)x1 = (((x2 nor x1) nor (x1 nand x0)) nor ((x2 nor x0) nand (x0 nand x4))) nor (((x4 nand x3) nand (x4 nor x2)) nor ((x0 nand x2) nor (x4 nor x0)))x2 = (((x2 nand x1) nor (x0 nand x3)) nor ((x2 nor x0) nand (x2 nor x3))) nand (((x2 nand x0) nor (x2 nand x1)) nand ((x4 nand x2) nor (x4 nor x0)))x3 = ((x1 nand x0) nor ((x0 nand x1) nand x3)) nand x3x4 = x2 nand (x2 nand x0)
15Programmazione genetica per l'inferenza di reti di Kauffman
Biologia• reverse engineering
delle reti di regolazione genica
A.I.• progettazione
automatica di programmi di controllo per robot
Applicazioni
16Programmazione genetica per l'inferenza di reti di Kauffman
1. S. A. Kauffman. Metabolic stability and epigenesis in randomly constructed genetic nets.
2. S. A. Kauffman. Requirements for evolvability in complex systems: Orlderly dinamics and fronzen components.
3. U. Bastolla and G. Parisi. Relevant elements, magnetization and dynamical properties in Kauffman networks: a numerical study.
4. R. Poli, W. B. Langdon, and N. F. McPhee. A field guide to genetic programming.
5. A Roli and M. Manfroni. Boolean network robotics: a proof of concept.
Bibliografia