programmazione genetica per l'inferenza di reti di kauffman

16
ALMA MATER STUDIORUM Seconda Facoltà di Ingegneria Informatica Programmazione genetica per l’inferenza di reti di Kauffman Relatore Presentata da Dott. Ing. Andrea Roli Daniele Bellavista

Upload: daniele-bellavista

Post on 27-Jun-2015

338 views

Category:

Technology


0 download

DESCRIPTION

Tesi triennale: Programmazione Genetica per l'Inferenza di Reti di Kauffman

TRANSCRIPT

Page 1: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 2: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 3: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 4: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 5: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 6: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 7: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 8: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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:

Page 9: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 10: Programmazione Genetica per l'Inferenza di Reti di Kauffman

10Programmazione genetica per l'inferenza di reti di Kauffman

Risultati – funzione errore per generazioni

Rete con N = 70, K = 3, p = 0.788

Page 11: Programmazione Genetica per l'Inferenza di Reti di Kauffman

11Programmazione genetica per l'inferenza di reti di Kauffman

Risultati – run-length distribution

Rete con N = 70, K = 3, p = 0.788

Page 12: Programmazione Genetica per l'Inferenza di Reti di Kauffman

12Programmazione genetica per l'inferenza di reti di Kauffman

Risultati – funzione errore per generazioni

Rete con N = 70, K = 2, p = 0.5

Page 13: Programmazione Genetica per l'Inferenza di Reti di Kauffman

13Programmazione genetica per l'inferenza di reti di Kauffman

Risultati – run-length distribution

Rete con N = 70, K = 2, p = 0.5

Page 14: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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)

Page 15: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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

Page 16: Programmazione Genetica per l'Inferenza di Reti di Kauffman

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