Parte I Prima Parte
Capitolo 1 Introduzione generale 1.1 Il problema dell assegnazione Corsi-Borsisti Il problema dell assegnazione delle borse dei corsi ai vari studenti può essere riassunto nei punti seguenti: tutte le borse devono essere assegnate. tutti gli studenti devono essere utilizzati, preferibilmente per la totalità delle ore messe a disposizione. uno studente deve aver sostenuto la materia per aver assegnata la borsa. Si preferisce, tra gli studenti, colui che ha avuto una votazione maggiore. uno studente non può essere assegnato a due o più borse associate allo stesso corso. Per una risoluzione ottimale al problema potrebbero essere necessarie svariate ore, se non giorni. In questi casi può essere proficuo l utilizzo degli algoritmi genetici che, grazie alla modellazione informatizzata della genetica, ci permettono di trovare una soluzione in tempi ridotti. In tal caso, potremmo non avere una soluzione ottima globalmente, ma riusciremmo ad ottenere una soluzione valida in tempi ragionevoli. 1.2 Gli Algoritmi Genetici Gli Algoritmi Genetici sono una metaeuristica che si basa sull analogia con i meccanismi di selezione naturale in campo genetico. Il metodo è stato sviluppato a partire da una ricerca il cui obiettivo era quello di astrarre e spiegare i processi di adattamento dei sistemi naturali alle diverse condizioni ambientali e di progettare, quindi, 3
1 Introduzione generale sistemi software che ricalcassero i meccanismi di evoluzione di questi sistemi. L idea di base è quella di considerare una popolazione di soluzioni che evolve in accordo con un meccanismo di selezione in modo da produrre soluzioni con buoni valori della funzione obiettivo. L evoluzione di una popolazione è legata al processo di riproduzione. Durante la loro vita gli individui (genitori) si accoppiano producendo nuovi individui (figli) il cui patrimonio genetico è una combinazione di quello dei genitori. I figli subiscono mutazioni rispetto al patrimonio genetico ereditato dai genitori per effetto della vita di relazione e delle influenze dell ambiente. La legge di selezione naturale si basa sul principio che, tra gli individui generati, hanno maggiori probabilità di sopravvivere quelli che possiedono una migliore capacità di adattamento all ambiente. Le caratteristiche di un organismo sono determinate dai geni presenti nei suoi cromosomi. Ciascun gene può assumere alleli diversi che producono differenze delle caratteristiche associate a quel gene. (es: i piselli hanno un singolo gene che determina, in funzione dell allele, il colore del fiore (bianco o rosa)). L insieme dei geni è detto genotipo. Con il termine fitness (letteralmente forma fisica), si intende la capacità di adattarsi ad un determinato ambiente. L evoluzione è un processo che altera, di generazione in generazione, le caratteristiche genetiche degli organismi in modo che possano adattarsi meglio al proprio ambiente. In altri termini, il processo di evoluzione è la progressiva selezione di individui con elevata fitness. Gli Algoritmi Genetici simulano il processo di evoluzione partendo da una popolazione iniziale ed applicando ad essa i cosiddetti operatori genetici. Considerando i problemi di ottimizzazione, ad un gene corrisponde una variabile decisionale e ad un allele il valore ad essa associato. Ad un cromosoma corrisponde un insieme di variabili decisionali mentre il genotipo, ossia l insieme dei valori assunti dai geni, è una possibile soluzione del problema. La fitness associata ad ogni genotipo è il valore di funzione obiettivo. Due soluzioni (genitori) si accoppiano attraverso l applicazione di un operatore (crossover) che consente di produrre nuove soluzioni (figli) con valori delle variabili dedotti da quelli dei genitori. Alle soluzioni così generate si applicano altri operatori genetici (mutazione, inversione,..) in modo da produrre modifiche che simulino gli effetti delle variazioni indotte dall ambiente. 4
Capitolo 2 Trattazione del problema tramite Algoritmo Genetico 2.1 GaLib GAlib è una libreria contenente un insieme di oggetti per la programmazione di algoritmi genetici. La documentazione comprende una descrizione estesa su come implementare un algoritmo genetico, oltre a esempi che illustrano come personalizzare le classi di GAlib. 2.2 Modalità Funzionamento L algoritmo prevede due modalità di funzionamento. ASAP fornisce una soluzione non appena è disponibile. TIMEOUT consente all utente di impostare un tempo limite terminato il quale verrà prodotta in output la migliore soluzione trovata fino a quel momento. 5
2 Trattazione del problema tramite Algoritmo Genetico 2.3 Rappresentazione di una soluzione Nel nostro problema una soluzione, non necessariamente feasible, è composta da una serie di numeri interi. Figura 2.1. Una possibile soluzione. In figura è possibile osservare qual è la struttura di una possibile soluzione. In tal caso la soluzione nel mondo reale descritta da tal vettore di interi sarebbe: La borsa 1 è assegnata allo studente 1 La borsa 2 è assegnata allo studente 4 La borsa 3 è assegnata allo studente 2 La borsa 4 è assegnata allo studente 8 La borsa 5 è assegnata allo studente 5 La borsa 6 è assegnata allo studente 7 La borsa 7 è assegnata allo studente 3 La borsa 8 è assegnata allo studente 6 La borsa 9 è assegnata allo studente 9 In sostanza dunque, l indice del vettore indica la borsa, mentre l intero associato a tale indice indica lo studente prescelto. 6
2.4 CrossOver 2.4 CrossOver Nello scegliere la tecnica per effettuare il crossover è necessario considerare se la presenza dei duplicati è lecita o meno nella nostra rappresentazione delle soluzioni. Nel nostro caso i duplicati non pregiudicano la validità di una soluzione in quanto uno studente può essere associato ovviamente a più di una borsa. Possiamo dunque utilizzare una tecnica di crossover che può produrre geni duplicati,una tecnica che fa al caso nostro è il two point crossover. Il TWO POINT CROSSOVER consiste nel considerare due soluzioni adatte all evoluzione e nel tagliare i loro vettori di codifica in due punti predefiniti o casuali al fine di ottenere una testa, una parte centrale ed una coda dalla prima e dalla seconda soluzione. La prima nuova soluzione sarà data dalla testa e della coda della prima soluzione e dalla parte centrale della seconda soluzione. La seconda nuova soluzione sarà data dalla parte centrale della prima soluzione e dalla testa e dalla coda della seconda soluzione. Figura 2.2. 2PointCrossover. 7
2.5 Mutazione 2 Trattazione del problema tramite Algoritmo Genetico La mutazione consiste nella modifica pseudocasuale di alcune parti dei geni in base a coefficienti definiti inizialmente.la mutazione è prevelentamente utilizzata per ampliare lo spazio di ricerca e non far ricadere l evoluzione in ottimi locali Nel nostro caso l operazione di mutazione consiste nella variazione di uno dei geni del cromosoma in esame. Il gene che verrà variato è stabilito in modo casuale. Figura 2.3. Mutazione La mutazione è dunque, semanticamente, la variazione dell assegnatario di una borsa. 2.6 Fitness function La funzione di fitness è quella che permette di associare ad ogni soluzione uno o più parametri legati al modo in cui quest ultima risolve il problema considerato. La funzione di fitness da noi utilizzata, guadagna 100k punti per ogni studente le cui ore sono totalmente coperte. guadagna oreborsa x votostudente per ogni borsa assegnata ad uno studente valido(corso superato). perde 100k punti per ogni borsa assegnato ad uno studente non valido. In questo modo la FITNESS FUNCTION ha le seguenti proprietà: Le soluzioni feasible hanno un valore di fitness maggiore di NumeroStudenti*100k. Ogni soluzione sotto NumeroStudenti*100k è sicuramente non feasible. 8
2.7 Altre caratteristiche 2.7 Altre caratteristiche Di seguito altre caratteristiche secondarie: Se dopo N iterazioni il GA non effettua miglioramenti la popolazione viene sterminata così da evitare situazione di stallo. La popolazione è composta da 200 cromosomi La chromosome mutation probability è del 6%. Per allargare lo spazio di ricerca nel 10% dei casi i cromosomi per il crossover sono scelti in modo indipendente dalla fitness function. Tutte le caratteristiche e i valori associati sopraelencati sono configurabili. 9
Bibliografia [1] GaLib,http://lancet.mit.edu/ga/ [2] http://www.wikipedia.it/ 11