Survival or Evolution, what’s the goal?

“Manuale sulle reti neurali” is the first book I read about Genetic Algorithms. Below you can find some initial thoughts, in Italian, which I wrote when I started my PhD. The point of this text is: architects using genetic algorithms need to define good genotypes to get good phenotypes of their designs. This means that the parametric definition of boundary conditions and design variable is just all they need to concentrate on.

L’utilizzo di tecniche evolutive è sempre più utilizzato anche nell’architettura per la generazione e soprattutto per l’ottimizzazione di forme, appunto per migliorare le prestazioni estetiche, strutturali e fisico-tecniche di elementi architettonici, come coperture e involucri in base allo specifico requisito progettuale del singolo caso. L’evoluzione naturale è il punto di partenza indispensabile per lo sviluppo di questi strumenti che migliorano e quindi ottimizzano la performance delle forme. Ma è allo stesso tempo una tecnica che differisce dalla sua simulazione al calcolatore per finalità e obiettivi. Mentre in natura l’istinto riproduttivo di una specie permette al suo codice genetico distintivo (genotipo) di trasmettersi di generazione in generazione, con obiettivo la sopravvivenza degli individui (fenotipi), o meglio ancora del loro codice genetico, nell’evoluzione simulata ogni ciclo generazionale (nuova popolazione) mira al miglioramento delle caratteristiche degli individui (in pratica le forme), disinteressandosi totalmente dell’aspetto legato alla sopravvivenza. In pratica, la compilazione di una tecnica evolutiva (algoritmo genetico) ha il fine di migliorare la performance di un individuo in base ad una specifica funzione di fitness (modalità di valutazione). Il programmatore sarà quindi completamente disinteressato al funzionamento del meccanismo evolutivo in sé nella sua scrittura, e si fisserà invece sui risultati che esso produce, agendo in particolare sulla sua efficienza. Ecco quindi che a partire dagli anni ’80, l’approfondimento di queste tematiche (soprattutto tra i biologi) è avvenuto proprio su quegli aspetti che permettono di raggiungere buoni risultati ed elevate efficienze. Tra i vari personaggi coinvolti in queste ricerche, cito Floreano e Mattiussi consigliando la lettura del loro testo sulle reti neurali (vedi Bibliografia). Di seguito ne riporto una breve descrizione critica, focalizzata al capitolo 6, che tratta nello specifico gli algoritmi genetici. Questo per introdurre le problematiche con le quali si scontra un programmatore di fronte alla compilazione di un codice (algoritmo genetico detto anche semplicemente script) volto all’ottimizzazione.

DARIO FLOREANO, CLAUDIO MATTIUSSI, Manuale sulle reti neurali
La compilazione di algoritmi genetici pone il programmatore di fronte a delle scelte di carattere genetico, perché bisogna definire i cromosomi degli organismi che si vuole evolvere, e di carattere prestazionale, in quanto bisogna valutare le caratteristiche di ogni individuo secondo dei parametri, per capire quanto questo merita di proseguire il ciclo evolutivo. Nella natura, questa fase evolutiva che si identifica col nome di sopravvivenza può essere costruita in base all’esigenza del caso nella simulazione, in modo da selezionare e far progredire organismi che rispondano a certe caratteristiche piuttosto che altre.
La vera difficoltà del processo nasce dal fatto che un buon codice genetico (genotipo) può essere verificato solo dagli effetti che produrrà nell’arco della sua vita il relativo organismo (fenotipo). Quindi la sopravvivenza (o nella simulazione ‘funzione di fitness’) verifica le prestazioni del genotipo in base al comportamento del fenotipo. Non è quindi istintivo e semplice definire, soprattutto in architettura, un genotipo e poi costruire una funzione che sottoponga a verifica le prestazioni dell’organismo derivante da esso.
Un altro momento chiave del processo evolutivo è il metodo che si adotta per l’evoluzione nelle successive generazioni di organismi. E’ logico che nella simulazione non si deve considerare la parte di realtà che porta alcune specie all’estinzione o alla stasi evolutiva per somiglianza degli individui (deriva genetica). Qui si vuole invece sempre ottenere degli individui che abbiano prestazioni crescenti generazione dopo generazione, altrimenti perde di significato l’utilizzo di algoritmi genetici (o strategie evolutive) per risolvere dei problemi concreti.
Negli anni le tecniche sperimentate per ottenere risultati soddisfacenti, anche nel minor numero possibile di generazioni, sono state molteplici. Si parte da una strategia ‘elitista”, nella quale l’individuo migliore di ogni generazione viene mantenuto tale e quale nella successiva onde evitare la possibilità di peggiorare, si passa da strategie ‘mutative’, che privilegiano il parametro della mutazione genetica anziché l’accoppiamento tra geni prestanti, e poi strategie di riproduzione ‘a regime costante’, le quali non accoppiano i diversi geni migliori tra loro ma sostituiscono solamente i peggiori con altri nuovi generati casualmente. Nel passaggio generazionale i diversi modi per facilitare il progresso genetico di una specie vanno considerati in riferimento ad un caso concreto, in modo da poter meglio scegliere quelli più adatti al problema del momento. I parametri su cui agire sono in sostanza: i cromosomi del gene, la funzione di fitness, numero di organismi, scelta degli organismi per la generazione successiva (metodi probabilistici, ruote della fortuna, ecc), metodi riproduttivi (accoppiamento con crossover, mutazioni, ecc).
Tecniche di questo tipo analizzano un campione veramente ampio di possibilità di soluzione al problema quindi è facile che lascino morire progressi verso massimi relativi (in una funzione ad esempio) per tendere nel tempo alla ricerca del massimo assoluto.

Reti neurali Cover 

Riferimenti e approfondimenti:

Home page di Floreano: http://lis.epfl.ch/member.php?SCIPER=111729

Tecniche di fitness per evitare fallimenti evolutivi: Baker, 1987, Goldberg, Deb, 1991

Strategie evolutive basate sulla mutazione: Rachenberg, 1973

0 1187

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.