Università della Calabria Modelli Computazionali per Sistemi Complessi A.A. 2003 /2004 Univeristà della Calabria Un’applicazione degli Algoritmi Genetici alle colate di detrito Prof. Salvatore Di Gregorio Dr. William Spataro Dr. Donato D’Ambrosio Università della Calabria Contenuti Automi Cellulari: concetti base e applicazioni Modellizzazione e simulazione di fenomeni naturali macroscopici: il metodo empirico di Di Gregorio e Serra La famiglia SCIDDICA per la simulazione delle colate di detrito Il problema della stima dei parametri Algoritmi Genetici e Algoritmi Genetici Paralleli Implementazione parallela e prestazioni Esperimenti di ottimizzazione Discussione sui risultati Studio del paesaggio della fitness Discussione conclusiva Possibili sviluppi Università della Calabria Automi Cellulari (1/2) Gli Automi Cellulari (AC) possono essere descritti intuitivamente come una matrice di semplici unità di calcolo (automi finiti), ciascuna interagente con le proprie vicine. Ogni unità rappresenta una porzione di spazio (la cella) e modella le caratteristiche ritenute importanti per l’evoluzione del sistema. Al tempo t=0, le celle sono in uno stato arbitrario che rappresenta lo stato iniziale del sistema. l’Automa Cellulare evolve cambiando gli stati degli automi finiti a passi discreti, applicando simultaneamente la stessa funzione di transizione a tutte le celle. Gli AC sono stati applicati alla modellizzazione e simulazione di sistemi complessi, la cui evoluzione dipende da interazioni locali. Essi possono costituire una valida alternativa all’uso di sistemi di equazioni differenziali, in alcuni casi impraticabili per la loro complessità. Fisica, Chimica: Fluidodinamica, Reazioni chimiche complesse Biomedicina: AIDS, Cancro, Sviluppo di piante Geologia: Lave, Frane, Terremoti Territorio: Ecologia: Economia: Sviluppo urbano, traffico Inquinamento, Biorisanamento dei suoli, Ecosistemi Simulazione dei mercati Università della Calabria Automi Cellulari (2/2) Gas Reticolari (Hardy et al., 1976; Frish et al. 1986; Frish et al. 1987, Succi et al., 1991) e Modelli di Boltzmann su reticolo (McNamara and Zanetti, 1988; Higuera and Jimenez, 1989; Chopard and Droz, 1998) Simulazione del comportamento dei fluidi a livello microscopico Esempio d’applicazione alla diffusione di un gas attraverso il modello a gas reticolare FHP Esempio d’applicazione al moto di un fluido intorno a una lamina attraverso il Modello di Boltzmann su Reticolo BKG Metodo di Di Gregorio e Serra (Crisci et al., 1982; Crisci et al. 1986; Di Gregorio and Serra, 1999) Nasce contemporaneamente ai Modelli di Boltzmann Inizialmente applicato alla simulazione dei flussi lavici, poi esteso ad altri fenomeni macroscopici complessi Università della Calabria Applicazioni del metodo di Di Gregorio e Serra (1/2) L’eruzione vulcanica del Monte Etna del 2002 Simulazione della colata lavica con il modello SCIARA Il flusso piroclastico delle Soufriere Hills (Isola di Montserrat) del 1996 Simulazione del flusso piroclastico con il modello PYR Università della Calabria Applicazioni del metodo di Di Gregorio e Serra (2/2) SCIDDICA (Simulation through Computational Innovative methods for the Detection of Debris flow path using Interactive Cellular Automata) è una famiglia di AC bidimensionali per la simulazione di flussi detritici (Avolio & al. 2000; D’Ambrosio et al., 2002, 2003a, 2003b, 2003c), recentemente applicato ad alcuni casi occorsi in Campania (Sarno, Maggio 1998) Il disastro di Sarno del Maggio 1998 (sopra) e una sua simulazione con il modello SCIDDICA S3-hex (a destra) Differenti versioni di SCIDDICA sono state inoltre applicate con buoni risultati alla simulazione delle Frane di Tessina, Monte Ontake e San Martino Valle Caudina S4a ed S4b sono le ultime versioni della famiglia di modelli SCIDDICA. Come i precedenti, richiedono informazioni relative alla topografia, allo spessore di suolo erodibile posto sul substrato roccioso (regolite) e la posizione e l’estensione delle nicchie di distacco. L’affidabilità dei modelli dipende dalla stima dei valori di un insieme di parametri che influenzano i processi elementari della funzione di transizione (calcolo dei flussi detritici, erosione del regolite, ecc.) e, di conseguenza, i risultati delle simulazioni. S4a parametro S4b Università della Calabria I modelli SCIDDICA S4a ed S4b breve descrizione prl attrito padh adesione pr fattore di rallentamento dell’algoritmo di minimizzazione pf dislivello minimo perchè si possa verificare flusso pmt minima energia per l’erosione ppef fattore d’erosione progressiva pltt detrito minimo per l’attivazione di una nicchia secondaria pif fattore d’inerzia Università della Calabria Valutazione delle simulazioni La calibrazione dei parametri è una fase essenziale nello sviluppo del modello e può fornire significative indicazioni sulla possibilità e sull’opportunità di applicare il metodo a fini previsionali. Un possibile metodo per stabilire la bontà di una simulazione consiste nel confrontare le estensioni di uno o più eventi reali, m(R), con l’estensione degli eventi simulati, m(S), attraverso l’indicatore e1 mR S mR S e1 è un valore compreso tra 0 e 1: vale 0 quando le due frane sono completamente disgiunte; vale 1 quando le due frane si sovrappongono perfettamente. Essendo basato il calcolo dell’indicatore su comparazioni di misure di superficie, la radice quadrata è necessaria come funzione di normalizzazione, nel caso in cui si debbano confrontare valori di indicatori non omogenei in quanto riferentesi ad altro tipo di osservazioni: ad esempio a misure di volumi o misure di lunghezza come sovente accade nella valutazione di questi fenomeni. L’obbiettivo è trovare un insieme di parametri dell’AC che massimizzi il valore di e1 e questo può essere fatto tramite Algoritmi Genetici. Università della Calabria Algoritmi Genetici Gli Algoritmi Genetici (AG) (Holland, 1975) sono algoritmi di ottimizzazione iterativi (le iterazioni sono dette generazioni) ispirati alla selezione naturale e alla genetica (Goldberg, 1989). Gli AG operano su un insieme (popolazione) di n soluzioni candidate (individui o genotipi), di solito generate casualmente, rappresentanti punti nello spazio delle possibili soluzioni del problema di ricerca. Ogni individuo è rappresentato tramite una struttura dati, per esempio un array di numeri binari o floating point (Goldberg, 1989) o un grafo (Koza, 1992). A ogni genotipo gi è assegnato un valore (fitness) fi=f(gi) attraverso una funzione f (funzione di fitness) che ne valuta la bontà nel risolvere il problema. L’evoluzione della popolazione è ottenuta applicando semplici operatori random che si ispirano alla selezione naturale (selezione), alla riproduzione sessuale (crossover) e alla mutazione genetica (mutazione). Gli AG sono stati applicati a fenomeni geo-fisici e geo-chimici, per esempio per l’ottimizzazione dei parametri di modelli per il biorisanamento del suolo (Serra et al., 1996, 1997). Università della Calabria Ottimizzazione del modello S4a Caso di studio: Curti – Sarno (Maggio 1998) Spazio di ricerca: Sr= [0.001,10][0. 1, 1][0,10][0.001,10][0.001,10] R5 AG con genotipo binario selezione proporzionale alla fitness 50 generazioni 16 bit per la codifica di ogni parametro Schema generazionale crossover a singolo punto probabilità di crossover 0.8 probabilità di mutazione 1/160=0.00625, in modo da avere un bit mutato in media ogni due individui Il miglior risultato ottenuto su cinque esecuzioni dell’AG ha fornito un valore di e1 pari a 0.8, il più alto mai ottenuto sul caso di studio di Curti Università della Calabria Algoritmi Genetici Paralleli Risulta evidente che per valutare un individuo occorre eseguire una simulazione dell’automa cellulare e confrontare poi il risultato con la frana reale. Su un calcolatore sequenziale, tale operazione può richiedere, a seconda dei casi, da qualche minuto a qualche ora. Per esempio, se la valutazione della fitness richiede 15 minuti, a ogni generazione sono valutati n’=15 individui (dove n’n) e sono previste 200 generazioni (valori plausibili per sperare in una buona convergenza) allora il tempo richiesto è di oltre 30 giorni. Dunque, anche se in molte applicazioni gli AG trovano buone soluzioni in tempi ragionevoli, se lo spazio delle soluzioni è molto grande e/o la valutazione di una soluzione candidata è un’operazione costosa, l’algoritmo genetico può impiegare giorni, mesi o addirittura anni, per trovare una soluzione accettabile (Cantù-Paz, 2000). In tali casi, il calcolo parallelo risulta un utile strumento per ridurre i tempi d’esecuzione e rendere il problema trattabile. Gli AG sono algoritmi imbarazzantemente paralleli nel senso che è molto semplice realizzare implementazioni in grado di sfruttare, in maniera efficiente, più unità d’elaborazione simultaneamente. Università della Calabria AG Master-Slave Vari modelli paralleli di AG sono stati proposti: Master-Slave GA, Multiple Demes GA, etc. (Tomassini, 1999; Cantù-Paz, 2000). Schema iterativo base dell’algoritmo genetico MASTER-SLAVE AG Master-Slave { [MASTER] t=0 inizializza la popolazione Pop(t) invia n’/S individui a ogni slave Il modo più semplice per parallelizzare un algoritmo genetico consiste nel distribuire il carico computazionale su P processori. Un processore (Master) esegue i fasi dell’algoritmo genetico, mentre S=P1 processori (Slaves) eseguono la valutazione di n’/S individui della popolazione (dove n’n). [SLAVE] riceve n’/S individui valuta n’/S individui invia gli n’/S valori di fitness calcolati al MASTER mentre (non(criterio_fermata)) { [MASTER] riceve n’ valori di fitness calcolati dagli SLAVE t=t+1 crea Pop(t) applicando selezione, crossover e mutazione invia n’/S individui a ogni slave } } [SLAVE] riceve n’/S individui valuta n’/S individui invia gli n’/S valori di fitness calcolati al MASTER Università della Calabria Implementazione parallela Un modello di AG di tipo MasterSlave è stato implementato su una macchina parallela di tipo Beowulf cluster composto da 16 nodi mono-processore Pentium IV a 1.4 Ghz, 512 MB di Ram per nodo, Red Hat Linux 7.2 OS, gcc v2.96. I nodi sono connessi tramite una normale rete Ethernet LAN con switch a 100 Mbs. Le comunicazioni tra i nodi avvengono attraverso lo scambio di messaggi secondo lo standard MPI (Message Passing Interface) (Pacheco, 1999; Gropp, 2001). Università della Calabria Prestazioni (1/2) Le prestazioni del cluster sono state misurate considerando un algoritmo genetico con schema generazionale, 100 generazioni, n’=30, 60, 120 e 240 individui, e ft (tempo d’esecuzione della funzione di fitness)=0.001, 0.01, 0.1 e 1 secondi. Tempi d'esecuzione (ft=0.01 secs) Tempi d'esecuzione (ft=0.001 secs) 30 250 25 200 20 150 exec tim e exec tim e 15 100 10 50 5 240 120 60 pop size 30 0 1 2 5 10 240 120 60 pop size 30 0 1 15 2 5 10 15 slave procs slave procs Tempi d'esecuzione (ft=1 secs) Tempi d'esecuzione (ft=0.1 secs) 2500 25000 2000 20000 1500 15000 exec tim e exec tim e 1000 10000 500 5000 120 0 pop size 1 2 slave procs 5 30 10 120 0 pop size 1 2 15 slave procs 5 30 10 15 Gli stessi risultati si possono vedere in termini di Speed Up, definito come Speed Up = (tempo sequenziale) / (tempo parallelo) Speed Up (ft=0.001 secs) Speed Up (ft=0.01 secs) 16 16 14 12 ideal 10 30 8 60 6 120 4 240 speed up speed up 14 12 ideal 10 30 8 60 6 120 4 240 2 2 0 0 0 5 10 0 15 5 10 15 slave procs slave procs Speed Up (ft=0.1 secs) Speed Up (ft=1 secs) 16 16 14 14 12 ideal 12 10 30 10 30 8 60 8 60 6 120 6 120 4 240 2 speed up speed up Università della Calabria Prestazioni (2/2) ideal 240 4 2 0 0 0 5 10 slave procs 15 0 5 10 slave procs 15 Università della Calabria Esperimenti d’ottimizzazione del modello S4b Caso di studio: Curti – Sarno (Maggio 1998) Spazio di ricerca Sr=[0.001,15][0.0001,0.01][0.001,1][0.001,15][0.001,15][0.001, 5][0.1, 5] [1, 5] R8 AG con genotipo reale (implementazione parallela): selezione a torneo senza rimpiazzamento 200 generazioni AG elitistico e steady state (15 individui rimpiazza a ogni generazione) crossover a singolo probabilità di crossover 0.8 probabilità di mutazione 1/8=0.125, in modo da avere un gene mutato in media per ogni individuo Come funzione di fitness per l’ottimizzazione del modello S4b è stata scelto l’indicatore f1=e12 che valuta la corrispondenza areale tra frana reale e simulata. f1 m R S m R S Risultati 0.6 0.5 fitness Università della Calabria Fitness (media su 5 seeds) 0.4 0.3 0.2 0.1 0 0 50 100 150 generation Miglior risultato f1=0.58 e1=0.762 200 Università della Calabria Discussione sui risultati Il miglior risultato ottenuto, e1=0.762, è abbastanza soddisfacente, specialmente se si considera il fatto che i dati morfologici risultano affetti da errori di approssimazione, in alcune zone anche molto pesanti (e.g. nella parte bassa della morfologia). Tuttavia, si osserva che già alla prima generazione il miglior individuo ha fitness abbastanza alta e questo potrebbe far pensare che il compito di ottimizzazione sia troppo semplice per l’algoritmo genetico. Tale comportamento potrebbe essere dovuto, almeno in parte, alla presenza di un forte vincolo morfologico (e.g. canale nella parte alta della morfologia) per cui molti insiemi di valori di parametri possono dar luogo a simulazioni tra loro simili e “accettabili” in termini di sovrapposizione areale rispetto alla frana reale, pur non modellando correttamente alcune caratteristiche dell’evento (e.g. erosione del suolo e/o gli spessori dei depositi). Del resto non è escluso che un comportamento simile possa verificarsi in situazioni reali. Per esempio due fluidi con caratteristiche non troppo dissimili possono dar luogo a fenomeni più o meno equivalenti se guidati da vincoli morfologici pesanti come un canale molto pronunciato. Se così fosse, ci aspetteremmo un paesaggio della fitness popolato da molti ottimi locali, e questo ribalterebbe l’ipotesi di un compito d’ottimizzazione troppo semplice in favore di un compito complesso. Per valutare la forma del paesaggio della fitness si è considerata, anziché un evento reale, uno “pseudo evento reale” ottenuto da una simulazione di SCIDDICA con un insieme Popt di parametri prefissati. Sono state effettuate 4 esecuzioni dell’AG, ognuna con seed differenti, per verificare la convergenza verso l’insieme di parametri Popt. Nello spazio di ricerca Sr (Sr normalizzato nell’ipercubo di dimensione 8 e lato 1) sono state calcolate le distanze tra i punti identificati dai migliori individui dell’algoritmo e Popt. f1 (media su 4 seed) grafico fitness-distanza (4 seed) 1 1.6 0.9 1.4 0.8 1.2 0.7 1 fitness distanza Università della Calabria Paesaggio della fitness di f1 0.8 0.6 average 0.5 0.6 0.4 0.4 0.3 best 0.2 0.2 0.1 0 0.35 0 0.45 0.55 0.65 fitness 0.75 0.85 0.95 0 50 100 150 200 generation Si osservano sensibili oscillazioni nelle distanze tra i migliori parametri evoluti dall’algoritmo genetico e Popt e questo avalla l’ipotesi che il paesaggio della fitness sia costellato da diversi ottimi locali. Tuttavia l’algoritmo genetico dimostra la sua efficacia facendo evolvere soluzioni con fitness molto elevata (f1=0.9) e assumendo la tendenza a convergere verso l’insieme Popt (linea rossa). Università della Calabria Nuove funzioni di fitness Poiché il paesaggio della fitness di f1 sembra popolato da diversi ottimi locali, fenomeno in parte dovuto alla presenza di un forte vincolo morfologico e al solo confronto areale, è forse opportuno considerare nella funzione di fitness ulteriori informazioni che possano ridurre il numero degli insiemi di parametri sostanzialmente differenti che danno luogo a simulazioni simili. A tal scopo è stata definita una nuova funzione di fitness: r R r S m( R S ) 1 r R r S f 2 f1 1 r R r S m( R S ) r R r S dove: r(R) ed r(S) indicano rispettivamente gli spessori del regolite alla fine degli eventi reale e simulato Come f1, anche f2 è una funzione a valori in [0,1] e l’obbiettivo dell’algoritmo genetico è trovare l’ insieme dei valori dei parametri dell’automa cellulare che li massimizzi. Come per f1, anche per f2 si è considerato lo stesso “pseudo evento reale”, sono state effettuate 4 esecuzioni dell’algoritmo genetico per verificare la convergenza verso Popt e sono state calcolate le distanze tra i punti identificati dai migliori individui dell’algoritmo genetico durante l’evoluzione e Popt nello spazio Sr . grafico fitness-distanza (4 seed) f2 (media su 4 seed) 1.6 1 1.4 0.9 0.8 1.2 0.7 1 fitness distanza Università della Calabria Paesaggio della fitness di f2 0.8 0.6 0.6 average 0.5 best 0.4 0.3 0.4 0.2 0.2 0.1 0 3.50E-01 0 4.50E-01 5.50E-01 6.50E-01 fitness 7.50E-01 8.50E-01 9.50E-01 0 50 100 150 200 250 generation Come nel caso precedente, anche se meno accentuate, si osservano ancora sensibili oscillazioni nelle distanze tra i migliori parametri evoluti dall’algoritmo genetico e Popt. A differenza del caso precedente, tuttavia, la tendenza a convergere verso l’insieme Popt (linea rossa) risulta decisamente più spiccata, e questo sembra indicare che l’algoritmo genetico sia meglio guidato verso l’ottimo globale. La migliore simulazione ha fornito il seguente risultato: f2=0.88. Università della Calabria Discussione La presenza di vincoli morfologici, che generalmente influenzano la dinamica degli eventi macroscopici considerati, ha messo in luce la delicatezza della fase d'ottimizzazione tramite AG, evidenziando la possibilità di evolvere soluzioni subottimali. Tali problemi, oltre gli AG, potrebbero interessare anche metodi d’ottimizzazione alternativi. Come si può intuire dai risultati degli esperimenti sul caso di studio idealizzato, la definizione di una funzione di fitness che tenga in considerazione tutte le proprietà dell'evento reale potrebbe risolvere , o quantomeno ridurre significativamente, il problema della convergenza verso un ottimo locale. Tale operazione risulta però, nella maggior parte dei casi, impraticabile per la mancanza di dati. L’analisi del comportamento dell’AG, come proposta in questa tesi, può dare significative indicazioni sull’affidabilità del metodo d’ottimizzazione e, in caso di palesi problemi di convergenza verso ottimi locali, può suggerire ulteriori indagini utili a una corretta calibratura del modello. Possibili soluzioni in questo senso potrebbero essere l’applicazione degli AG a più casi di studio o l’arricchimento della funzione di fitness di ulteriori informazioni (se note) ritenute importanti per l’evoluzione del fenomeno. Università della Calabria Discussione conclusiva e sviluppi Gli AC possono essere un valido strumento per la modellizzazione e simulazione di colate detritiche. Gli AG sono stati applicati all’ottimizzazione dei modelli SCIDDICA S4a ed S4b. I tempi di calcolo richiesto su computer sequenziali è dell’ordine dei mesi Il calcolo parallelo consente di diminuire significativamente i tempi d’esecuzione dell’AG. Architetture a memoria distribuita, per esempio beowulf cluster, sono la soluzione ottimale per l’esecuzione di AG paralleli (scalabilità lineare). I primi esperimenti eseguiti applicando gli AG, tenendo in considerazione la scarsa affidabilità dei dati iniziali, hanno fornito soddisfacenti risultati, ma hanno messo in evidenza potenziali problemi di convergenza verso ottimi locali. Gli AG possono essere comunque applicati efficacemente all’ottimizzazione dei modelli che s’inquadrano nel contesto del metodo empirico di Di Gregorio e Serra, a patto di vagliarne l’affidabilita, magari come proposto in questo lavoro, tramite una fase preliminare di verifica. Possibili sviluppi di questa tesi potrebbero essere: Replicazione degli esperimenti utilizzando altre varianti di algoritmo genetico (schema generazionale con selezione a torneo, schema generazionale con selezione proporzionale, ecc.). Verifica dell’efficacia di funzioni di fitness alternative. Nuovi esperimenti su piani e/o piani inclinati per valutare nel dettaglio il ruolo del vincolo morfologico sulla forma del paesaggio della fitness. Applicazione della metodologia d’ottimizzazione ad altri modelli di simulazione di fenomeni geofisici (colate di lava, flussi piroclastici). Università della Calabria Bibliografia (1/2) M.V. Avolio, S. Di Gregorio, F. Mantovani, A. Pasuto, R. Rongo, S. Silvano, W. Spataro. Simulation of the 1992 Tessina landslide by a cellular automata model and future hazard scenarios, JAG (International Journal of Applied Earth Observation and Geeoinformation) ISSN: 0303-2434, Vol.2, Issue 1, pp 41-50, ITC JOURNAL, The Netherlands, 2000. M. V. Avolio, G. M. Crisci, D. D’ambrosio, S. Di Gregorio, G. Iovine, R. Rongo, W. Spataro. An extended notion of Cellular Automata for surface flows modelling. WSEAS Transactions on Computers, 2, 1080-1085, 2003. E. Cantù-Paz. Efficient and Accurate Parallel Genetic Algorithms. Kluwer Academic Publishers, 2000. D. D'Ambrosio, S. Di Gregorio, G. Iovine, V. Lupiano, L. Merenda, R. Rongo, and W. Spataro. Simulating the Curti-Sarno debris flow through Cellular Automata: the model SCIDDICA (release S2). Physics and Chemistry of the Earth, EGS, Vol. 27, pp. 1577-1585, 2002. D. D'Ambrosio, S. Di Gregorio, and G. Iovine. Simulating debris flows through a hexagonal Cellular Automata model: Sciddica S3-hex. Natural Hazards and Earth System Sciences, 3, 545559. 2003a. D. D'Ambrosio, S. Di Gregorio, G. Iovine, V. Lupiano, R. Rongo, and W. Spataro. Fisrt simulations of the Sarno debris flows through Cellular Automata modelling, Geomorphology, Vol 54/1-2 pp 91-117, 2003b. D. D'Ambrosio, W. Spataro, and G. Iovine. Parallel genetic algorithms for optimising cellular automata models of natural complex phenomena: an application to debris-flows. Computer & Geosciences, submitted. S. Di Gregorio, R. Serra, M. Villani. Environmental applications of Genetic Algorythms. In Advances in Intelligent Systems, F.C. Morabito ed. - pp. 310-315, IOS Press Amsterdam 1997. Università della Calabria Bibliografia (2/2) S. Di Gregorio, R. Serra, M. Villani. Combining cellular automata and genetic search in complex environmental modelling. E. Pessa, M.P. Penna, A. Montesano ed.s, Proceedings of 3rd Systems Science European Congress - Roma 1-4 October 1996, pp. 1127-1131, Ed. Kappa Roma 1996. D. E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning. AddisonWesley, 1989. W Gropp, E. Lusk, and A. Skjellum. Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation). MIT Press; 2nd edition, 1999 . J. H. Holland. Adaptation in Natural and Artifcial Systems. University of Michigan Press, 1975. Second edition: MIT Press, 1992. G. Iovine, D. D'Ambrosio, and S. Di Gregorio. Applying genetic algorithms for calibrating a hexagonal cellular automata model for the simulation of debris flows characterised by strong inertial effects. Geomorphology, in press. J. R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, 1992. M. Mitchell. An Introduction to Genetic Algorithms. MIT Press, 1996. P. S. Pacheco. Parallel Programming with MPI. Morgan Kaufmann Publisher Inc., San Francisco, California, 1999. M. Tomassini. Parallel and distributed evolutionary algorithms: A review. In K. Miettinen, M. Mäkelä, P. Neittaanmäki, and J. Periaux (Eds), Evolutionary Algorithms in Engineering and Computer Science, pp. 113-133, Chichester, UK: J Wiley and Sons.