Algoritmi Genetici. e programmazione genetica

Похожие документы
Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Intelligenza Artificiale. Introduzione al calcolo evolutivo

Breve introduzione al Calcolo Evoluzionistico

Parte I. Prima Parte

TECNICHE DI SIMULAZIONE

Ricerca Operativa A.A. 2007/2008

Automazione Industriale (scheduling+mms) scheduling+mms.

Corso di Informatica

Esercizi Capitolo 6 - Alberi binari di ricerca

Riproduzione Crossover Mutazione

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Lezione 8. La macchina universale

Macchine sequenziali

10 - Programmare con gli Array

Le Macchine di Turing

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Domande a scelta multipla 1

Introduzione al MATLAB c Parte 2

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

Fogli Elettronici: MS Excel

Algoritmi e strutture dati. Codici di Huffman

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Algoritmi di Ricerca. Esempi di programmi Java

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015

LINGUAGGI DI PROGRAMMAZIONE

Più processori uguale più velocità?

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Informatica Generale 02 - Rappresentazione numeri razionali

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Fondamenti di Automatica

Rappresentazione dei numeri in un calcolatore

Parte 1. Vettori di bit - AA. 2012/13 1.1

Linguaggio C - Stringhe

Sistemi Operativi. 5 Gestione della memoria

VC-dimension: Esempio

Introduzione alla programmazione in C

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Introduzione al Linguaggio C

Implementazione parallela di algoritmi genetici per la stima di HMM

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

STRATEGIA DI TRADING. Turning Points

Elementi di informatica

Dimensione di uno Spazio vettoriale

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Gli algoritmi: definizioni e proprietà

Macchine a Stati finiti

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Metodi statistici per l economia (Prof. Capitanio) Slide n. 9. Materiale di supporto per le lezioni. Non sostituisce il libro di testo

Programmazione dinamica

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Informatica. Rappresentazione dei numeri Numerazione binaria

Introduzione all analisi dei segnali digitali.

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE INFORMATICA DEI DATI AZIENDALI

Il modello generale di commercio internazionale

METODI per effettuare previsioni con analisi di tipo WHAT-IF

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

Il Metodo Branch and Bound

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Utilizzo delle formule in Excel

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Inizializzazione degli Host. BOOTP e DHCP

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Matematica in laboratorio

Reti sequenziali sincrone

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Rappresentazione grafica di entità e attributi

Sistemi di Numerazione

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Sistemi di Numerazione Binaria NB.1

Appunti sulla Macchina di Turing. Macchina di Turing

Capitolo 26. Stabilizzare l economia: il ruolo della banca centrale. Principi di economia (seconda edizione) Robert H. Frank, Ben S.

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Codifica dei numeri negativi

Statistica. Lezione 6

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Транскрипт:

Algoritmi Genetici e programmazione genetica

Algoritmi Genetici Algoritmi motivati dall analogia con l evoluzione biologica Lamarck: le specie trasmutano nel tempo Darwin e Wallace: variazioni consistenti ereditabili si osservano negli individui di una popolazione; selezione naturale dei più sani Mendel e la genetica: esiste un meccanismo per ereditare tratti genetici A partire da un insieme di ipotesi (popolazione), generano successori delle ipotesi producendo perturbazioni su di esse che si spera producano risultati migliori Caratteristiche: Gli AG possono effettuare ricerche nello spazio di ipotesi i cui elemento interagiscono in modo complesso (ovvero laddove è difficile valutare l impatto di un singolo elemento) Gli AG sono ottimizzatori, non sono veri apprendisti Gli AG sono facilmente parallelizzabili (si avvantaggiano del basso costo dell hardware)

Algoritmi Genetici Una Funzione Fitness che assegna un valore di benessere a ogni ipotesi h Una Soglia di Fitness che specifica un criterio di terminazione p numero di ipotesi da includere nella popolazione r la frazione della popolazione che deve essere rimpiazzata dall operatore di incrocio (crossover) m il tasso di mutazione

Algoritmo Tipo GA(Fitness, Soglia-Fitness, p, r, m) Inizializza: P = insieme di p ipotesi generate a caso o specificate a mano Valuta: per ogni h in P, calcola Fitness(h) While max h Fitness(h) < Soglia-Fitness Seleziona: seleziona (1-r) p membri di P da aggiungere a una nuova generazione P S Crossover: Seleziona r p/2 coppie di ipotesi da P Per ogni coppia (h 1, h 2 ) produci due successori (offspring) applicando l operatore di crossover Muta: Inverti un bit a caso di m% individui di P S scelti a caso Aggiorna: P = P S Valuta: per ogni h in P, calcola Fitness(h) Return argmax h P Fitness(h)

Rappresentazione delle Ipotesi (1) La rappresentazione di base in GA è la stringa binaria (cromosoma) La mappatura dipende dal dominio e dal progetto La stringa di bit rappresenta una ipotesi Elementi dell ipotesi (es. clausole di una regola, caratteristiche, ecc.) sono rappresentati ciascuno da una sottostringa che si trova in una posizione specifica (se la stringa ha lunghezza fissa)

Rappresentazione delle Ipotesi (2) Esempio 1: rappresentiamo l ipotesi (Outlook = Overcast Rain) (Wind = Strong) con: Outlook Wind 011 10 Esempio 2: rappresentiamo l ipotesi IF Wind = Strong THEN PlayTennis = yes con: Outlook Wind PlayTennis 111 10 10 Esempio 3: rappresentiamo un architettura di rete neurale definita da un grafo codificato mediante una stringa binaria

Operatori per gli Algoritmi Genetici Stringhe iniziali Maschera di crossover Successori (offspring) Single-point crossover 11101001000 00001010101 11111000000 11101010101 00001001000 Two-point crossover 11101001000 00001010101 00111110000 00101000101 11001011000 Uniform crossover 11101001000 00001010101 10011010011 10001000100 01101011001 Point mutation 11101001000 11101011000 Gli operatori di crossover creano dei discendenti di una coppia di ipotesi mescolando le caratteristiche dei due genitori L operatore di mutazione crea un discendente da un ipotesi invertendo un bit scelto a caso Altri operatori specializzati possono essere definiti sulla base del problema specifico

Selezione delle ipotesi migliori (fittest hypotheses) La selezione degli (1-r) p membri avviene sulla base della probabilità: Fitness( h = i ) Pr( hi ) p Fitness( h ) j= 1 Può causare crowding (alcuni individui tendono a prendere il sopravvento, riducendo drasticamente la diversità della popolazione) j

GABIL (DeJong et al., 1993) Un sistema per apprendere insiemi di regole proposizionali Ogni ipotesi corrisponde a un insieme di regole La rappresentazione a stringhe di ciascuna regole viene concatenata alle altre La lunghezza complessiva della stringa cresce con l aumentare delle regole IF a 1 = T a 2 = F THEN c = T; IF a 2 = T THEN c = F a 1 a 2 c a 1 a 2 c 10 01 1 11 10 0 Fitness(h) = correct(h) 2 Correct(h) è il numero di esempi di addestramento correttamente classificati da h Point mutation standard e operatore crossover che preservi la ben formatezza dell ipotesi

GABIL: operatore di crossover L operatore di crossover è un estensione del two-point crossover Date due ipotesi h 1 e h 2 si seleziona per h 1 un intervallo di bit (m 1, m 2 ) Si calcola la distanza d 1 (d 2 ) di m 1 (m 2 ) dal confine della regola immediatamente alla sua sinistra Per h 2 si sceglie un intervallo di bit tale che preservi le stesse distanze d 1 e d 2 Esempio: a 1 a 2 c a 1 a 2 c a 1 a 2 c h 1 : 10 [ 01 1 11 10 ] 0 d 1 = 1, d 2 = 3 h 2 : 01 [ 11 ] 0 10 01 0 d 1 = 1, d 2 = 3 ottenendo come offspring: h 3 : 11 10 0 h 4 : 00 01 1 11 11 0 10 01 0

GABIL: estensioni Aggiungiamo due operatori specializzati da applicare con una certa probabilità: AggiungiAlternativa (AA) Generalizza il vincolo su un attributo cambiando uno 0 in 1 nella sottostringa corrispondente all attributo EliminaCondizione (EC) Generalizzazione ancora più drastica: rimpiazza tutti i bit di un attributo con 1 Possiamo anche aggiungere due bit alla fine di ogni ipotesi, AA e EC, per indicare se su quell individuo si potranno applicare i due operatori oppure no Questi bit possono essere modificati da una generazione all altra come tutti gli altri mediante crossover e mutazione Anche la strategia di apprendimento evolve!

Ricerca nello spazio delle ipotesi Gli AG effettuano ricerche randomizzate sullo spazio delle ipotesi Differente rispetto agli altri metodi di apprendimento (es. BackPropagation si muove molto più lentamente da un ipotesi all altra) E meno probabile che gli AG cadano in un minimo locale Il crowding è una difficoltà reale: alcuni individui con buon fitness si riproducono velocemente e copie simili a queste prendono il sopravvento sulla popolazione, riducendone la diversità Soluzione: creare perturbazioni o alterazioni della funzione di selezione Tempi di apprendimento lunghi (necessario hw ad hoc ) Prestazioni paragonabili a C4.5

Risolvere il problema del crowding Tournament selection (selezione per torneo): Scegli h 1 e h 2 casualmente con probabilità uniforme Con probabilità p, seleziona l ipotesi migliore delle due (la peggiore con probabilità 1-p) Rank selection (selezione per grado): Ordina tutte le ipotesi per fitness La probabilità di selezione è proporzionale al rank

Programmazione Genetica Metodologia di programmazione evolutiva in cui gli individui nella popolazione in evoluzione sono programmi informatici La PG utilizza la stessa struttura algoritmica degli AG I programmi manipolati dalla PG sono rappresentati da alberi che corrispondono agli alberi sintattici (parse tree) dei programmi

PG: un esempio Supponiamo che il nostro programma calcoli la funzione: 2 sen ( x) + x + y Il suo albero sintattico è il seguente: Simboli terminali: x, y e costanti (es. 2) Funzioni: sen, +, radice, quadrato

Crossover nella PG

Passi preparatori per la PG Determinare l insieme dei terminali ammessi Determinare l insieme delle funzioni Determinare la misura di fitness: Il fitness di un singolo programma (individuo) è determinato dall accuratezza del programma eseguito su un insieme di addestramento Determinare i parametri per il run Determinare il criterio per terminare un run

Esempio: Il problema dei blocchi (Koza, 1992) Vogliamo sviluppare un algoritmo che prenda in input qualsiasi configurazione iniziale di blocchi distribuiti a caso tra una pila e il tavolo e li inserisca correttamente nella pila nell ordine corretto (per leggere: UNIVERSAL) Azioni permesse: Il blocco in cima alla pila può essere spostato sul tavolo Un blocco sul tavolo può essere spostato in cima alla pila

Il problema dei blocchi (Koza, 1992) La scelta della rappresentazione può influenzare la facilità di risolvere il problema Simboli terminali: CS ( current stack ) = denota il blocco in cima alla pila o F se non c è nulla TB ( top correct block ) = nome del blocco in cima alla pila tale che tutti i blocchi sulla pila sono nell ordine corretto NN ( next necessary ) = nome del prossimo blocco richiesto sopra TB sulla pila per poter leggere universal o F se abbiamo finito

Il problema dei blocchi (Koza, 1992) Funzioni: (MS x): ( move to stack ), se il blocco x è sul tavolo, sposta x in cima alla pila e restituisce il valore T. Altrimenti non fa niente e restituisce il valore F (MT x): ( move to table ), se il blocco x è da qualche parte nello stack, sposta il blocco che è in cima allo stack sul tavolo e restituisce il valore T. Altrimenti restituisce F. (EQ x y): ( equal ), restituisce T se x è uguale a y e restituisce F altrimenti (NOT x): restituisce T se x = F, altrimenti restituisce F (DU x y): ( do until ) esegue l espressione x ripetutamente finché l espressione y restituisce il valore T

Il programma appreso Allenato su 166 configurazioni iniziali di blocchi Il fitness di qualsiasi programma è dato dal numero di esempi risolti dallo stesso Usando una popolazione di 300 programmi, si trova il seguente programma dopo 10 generazioni che risolvono i 166 problemi: (EQ (DU (MT CS)(NOT CS)) (DU (MS NN)(NOT NN)) )