Click here to load reader

Algoritmi Genetici

  • View
    44

  • Download
    2

Embed Size (px)

DESCRIPTION

Modelli Computazionali per Sistemi Complessi A.A. 2005/2006 Università della Calabria. Algoritmi Genetici. Prof. Salvatore Di Gregorio Dr. William Spataro Dr. Donato D’Ambrosio. Cosa sono e come operano gli Algoritmi Genetici. - PowerPoint PPT Presentation

Text of Algoritmi Genetici

  • Algoritmi GeneticiProf. Salvatore Di GregorioDr. William SpataroDr. Donato DAmbrosioModelli Computazionali per Sistemi Complessi A.A. 2005/2006 Universit della Calabria

  • Cosa sono e come operano gli Algoritmi GeneticiGli Algoritmi Genetici (AG) furono proposti da John Holland (Universit del Michigan) tra la fine degli anni 60 e linizio degli anni 70Gli AG (Holland, 1975, Goldberg, 1989) sono algoritmi di ricerca che si ispirano ai meccanismi della selezione naturale e della riproduzione sessualeGli AG simulano l'evoluzione di una popolazione di individui, che rappresentano soluzioni candidate di uno specifico problema, favorendo la sopravvivenza e la riproduzione dei migliori

  • Loriginario modello di HollandLoriginario modello di Holland opera su una popolazione P di n stringhe di bit (dette individui o genotipi) di lunghezza l fissata

  • Funzione di fitness, spazio di ricerca e paesaggio didoneitla funzione di fitness valuta la bont degli individui gi della popolazione P nel risolvere il problema di ricerca dato:f : P (-, +); f(gi) = fiL'insieme delle stringhe binarie di lunghezza l ha 2l elementi; tale insieme rappresenta lo spazio di ricerca (search space) dellAG, cio lo spazio che lAG deve esplorare per risolvere il problema di ricerca (es. trovare il massimo o il minimo).I valori di fitness sui punti dello spazio di ricerca detto paesaggio d'idoneit (fitness landscape).

  • Esempio di paesaggio didoneit di un AG con genotipi binari di 2 bitIl numero di stringhe binarie di lunghezza 2 2l = 22 = 4Lo spazio di ricerca dellAG dunqueS = {(0,0), (0,1), (1,0), (1,1)}I valori di fitness sui punti di S definiscono il paesaggio didoneit dellAG

  • OperatoriUna volta che la funzione di fitness ha determinato il valore di bont di ogni individuo della popolazione, una nuova popolazione di individui (o genotipi) viene creata applicando alcuni operatori che si ispirano alla selezione naturale e alla geneticaGli operatori proposti da Holland sono:Selezione (ispirato alla selezione naturale)Crossover (ispirato alla genetica)Mutazione (ispirato alla genetica)Gli ultimi due sono detti operatori genetici

  • Loperatore di selezioneLa selezione naturale Darwiniana sostiene che gli individui pi forti abbiano maggiori probabilit di sopravvivere nellambiente in cui vivono e, dunque, maggiore probabilit di riprodursiNel contesto dellAG di Holland, gli individui pi forti sono quelli con fitness pi alta, poich risolvono meglio di altri il problema di ricerca dato; per questo essi devono essere privilegiati nella fase di selezione degli individui che potranno riprodursi dando luogo a nuovi individui

  • La selezione proporzionaleHolland propose un metodo di selezione proporzionale al valore di fitness; sia fi il valore di fitness del genotipo gi, la probabilit che gi sia selezionato per la riproduzione :ps,i = fi / fjTali probabilit sono utilizzate per costruire una sorta di roulette

  • Esempio di rouletteI quattro individui A1, A2, A3 e A4, con probabilit di selezione 0.12, 0.18, 0.3 e 0.4, occupano uno spicchio di roulette di ampiezza pari alla propria probabilit di selezione. Nell'esempio l'operatore di selezione genera il numero casuale c = 0.78 e l'individuo A4 viene selezionato

  • Mating poolOgni volta che un individuo della popolazione selezionato ne viene creata una copia; tale copia inserita nel cos detto mating pool (piscina daccoppiamento)Quando il mating pool riempito con esattamente n (numero di individui della popolazione) copie di individui della popolazione, nuovi n discendenti sono creati applicando gli operatori genetici

  • CrossoverSi scelgono a caso due individui nel mating pool (genitori) e un punto di taglio (punto di crossover) su di essi. Le porzioni di genotipo alla destra del punto di crossover vengono scambiate generando due discendenti.L'operatore di crossover applicato, in accordo a una prefissata probabilit pc, n/2 volte in modo da ottenere n discendenti; nel caso in cui il crossover non sia applicato, i discendenti coincidono con i genitori.

  • MutazioneUna volta che due discendenti sono stati generati per mezzo del crossover, in funzione di una pressata e usualmente piccola probabilita pm, il valore dei bit dei nuovi individui sono cambiati da 0 in 1 o viceversa. Come il crossover, rappresenta una metafora della riproduzione sessuale, l'operatore di mutazione modella il fenomeno genetico della rara variazione di elementi del genotipo negli esseri viventi durante la riproduzione sessuale.

  • Schema iterativoAG {t=0inizializza la popolazione P(t) in maniera casualevaluta la popolazione P(t)mentre (!criterio_fermata) {t=t+1crea P(t) applicando selezione, crossover e mutazionevaluta P(t)}}

  • Esempio (da Goldberg, 1989)Problema (facile) di ricerca - Problema: trovarfe il massimo della funzione y=x2 in [0,31]Approccio AG :Rappresentazione Genotipo : stringhe binarie (e.g. 000000; 0110113; 1111131)Dimensione popolazione: 4Crossover e no mutazione (solo un esempio!)Selezione a Roulette (i.e. quella proporzionale!)Inizializzazione RandomUn ciclo generazionale viene mostrato di seguito

  • Esempio (da Goldberg, 1989)

  • Esempio (da Goldberg, 1989)

  • Crossover o mutazione?Lungo dibattito decennale: qual migliore/necessario?

    Risposta (comunemente accettata):Dipende sul problema, main generale, meglio avere entrambemutazione da sola possibile, crossover da solo non dovrebbe funzionare

  • Perch gli AG funzionano?Esplorazione: Ricerca su aree promettenti dello spazio di ricercaSfruttamento: Ottimizzando in unarea promettente, i.e. utilizzando informazioneSussiste co-operazione e competizione tra loroCrossover esplorativo, fa un grosso salto in unarea tra due aree (genitore)Mutazione sfruttatore, esso crea piccole diversificazioni, perci rimanendo vicino allarea del genitore

  • Teoria sugli AGParallelismo Implicito (Holland, 1975): mentre lAG opera su una popolazione di n genotipi, esso esplora un numero tra 2l e n2l sotto-regioni dello spazio di ricerca, essendo l la lunghezza del genotipoEsempio: lindividuo 101 pu essere considerato un genotipo rappresentativo delle seguenti sotto-regioni dello spazio di ricerca:101; *01; 1*1; 10*; **1; 1**; *0*; ***dove il simbolo * sta per 0 o 1

  • Teoria sugli AGTeorema Fondamentale (Holland, 1975): dopo una fase iniziale nella quale lAG esplora in modo quasi random lo spazio di ricerca (campionamento), esso si concentra sulla regione pi promettente, i.e. la regione caratterizzata da individui con fitness maggiori

    Per una dimostrazione, vedi Goldberg (1989)

  • Altri modelli AG (Codifica)Codifica binaria:Codifica binaria classica di HollandGrey code (cf. Mitchell 1996) Tra due codifiche successive, la differenza di 1 bit

  • Altri modelli AG (Codifica)Caratteri, interi e valori realiCodifica ad albero (Genetic Programming; cf Koza, 1992). Il seguente esempio mostra una rappresentazione ad albero dellalgoritmo che calcola la funzione A3

  • Altri modelli AG (Rimpiazzamento)Rimpiazzamento Generazionale : tutta la popolazione rimpiazzata con nuovi discendenti. Nota che il miglior individuo non viene conservata nelle iterazioni successiveRimpiazzamento Steady state: solo n
  • Altri modelli AG (Selezione)Selezione Proporzionale o Roulette: gli individui sono selezionati proporzionalmente alle loro fitnessBoltzmann, Rank-based e Tournament selection: garantiscono un miglior campionamento dello spazio di ricerca durante le prime generazioni dellAG (cf. Mitchell, 1996)

  • Altri modelli AG (Selezione)Selezione a Torneo - Scegliere k individui in modo random, con o senza rimpiazzamento, e seleziona i migliori di questi k confrontando le loro fitness con maggiore probabilit per selezionare i migliori

  • Altri modelli AG (Crossover)

  • Altri modelli AG (Crossover)

  • Altri modelli AG (Mutazione)Per codifiche a caratteri, interi o reali, la mutazione funziona in modo simile allo schema classico di Holland.Per la Programmazione Genetica, un pezzo di albero viene rimpiazzato da uno generato in modo casuale

  • ExampleTrovare il massimo della funzione y=x2 nellintervallo [0,216-1]

    Scegliere la dimensione (n) della popolazione PScelgliere la lunghezza del genotipo (l)Scegliere lo schema dello schema di rimpiazzamento Definire la funzione di fitness (f)Scegliere il tipo di crossover e fissare la probabilit pcScegliere il tipo di mutazione e fissare la probabilit pmScrivere un programma che implementa un AG o (meglio!) utilizzare una libreria AG open source

  • PGAPackPGAPack una libreria open source ad AG gratis disponibile su http://www-fp.mcs.anl.gov/CCST/research/reports_pre1998/comp_bio/stalk/pgapack.htmlImplementa il modello di Holland e molti altriGira su diverse piattaforme (UNIX versions e GNU-Linux)Impelementa inoltre un modello parallelo AG: il Master-Slave GA, sfruttando quindi (in modo trasparente per lutente) pi CPUs contemporaneamente

  • Master-Slave GADiversi AG paralleli (PGAs) sono stati proposti in letteratura: Master-Slave GA, Multiple Demes GA, etc. (vedi Cant-Paz, 2000)Il modo pi semplice di parallelizzare un AG consiste nel distribuire il carico computazionale su P processori.Un processore (Master) esegue i passi dellAG, mentre i S=P-1 processori (Slaves) eseguono la valutazione dei n/S individui della popolazione (dove n
  • The Beowulf cluster at Department of Mathematics A Beowulf Cluster is a low-cost Parallel Machine built with common PC and other hardware components The Beowulf Cluster at Department of Mathematics is composed by 16 1.4 GHz Pentium IV nodes, 512 MB of Ram per node, Red Hat Linux 7.2 OS, gcc v2.96Nodes are connected by a normal Ethernet LAN with a 100 Mbs swit