Applicazioni

Per illustrare la flessibilità degli Algoritmi Genetici, elenchiamo ora alcune applicazioni, delle quali certe sono state usate in pratica, altre rimangono argomenti di ricerca.

Ottimizzazione di funzioni numeriche. Molti ricercatori hanno concentrato i loro sforzi in questo settore. I GA si sono rivelati essere in grado di superare tecniche convenzionali di ottimizzazioni su funzioni complicate, discontinue e disturbate.

Image Processing. Con immagini mediche a raggi X o da satellite, c'è spesso bisogno di allineare due immagini della stessa area, prese in istanti diversi. Comparando un campione casuale di punti nelle due immagini, un GA può efficacemente trovare un insieme di equazioni per adattare una immagine dentro l'altra. Un ulteriore inusuale problema di image processing è quello di creare immagini di sospetti criminali. Il GA rimpiazza il compito del tradizionale sistema pho to-fit, ma usa un simile schema di codifica. Il GA genera un numero casuale di facce, e il testimone seleziona le due che sono più simili a quella del sospetto. Queste sono poi usate per generare altre facce nella generazione successiva. Il testimone agisce come la "funzione fitness" nel GA e controlla la convergenza verso l'immagine corretta.

Ottimizzazione Combinatoria richiede soluzioni a problemi che riguardano disposizione di oggetti. Questo è molto diverso dalle funzioni di ottimizzazione, e diverse tecniche di codifica, ricombinazione, e funzione fitness sono richieste. Probabilmente il problema combinatorio più studiato è il Travelling Salesman Problem che, come vedremo in seguito, richiede di trovare il percorso più breve per visitare un insieme di città (possono anche essere centinaia).

Bin packing, cioè determinare come disporre un numero di oggetti su uno spazio limitato, ha molte applicazioni nell'industria ed è stato largamente studiato. Un particolare esempio è il layout di un circuiti integrati VLSI. Strettamente collegatoè il job shop scheduling, o time-tabling dove il problema è allocare un insieme di risorse (macchine, uomini, stanze) per portare a termine un insieme di compiti, come la manifattura di un numero di componenti di macchine. Ci sono ovvi limiti, per esempio la stessa macchina non può essere usata per fare due compiti diversi nello stesso tempo. L'ottima allocazione è quella che permette di finire il lavoro nel minor tempo possibile, o nel minimo tempo di inattività per ogni risorsa.

Progettare lavori può essere un mix di ottimizzazione combinatoria e ottimizzazione di funzioni. Un GA può spesso provare cose che un progettista umano non avrebbe mai pensato (non hanno paura di sperimentare) e sulle quali non hanno preconcetti. Il progetto dei GA può essere ibridizzato con tecniche più tradizionali di ottimizzazione o con sistemi esperti per produrre un range di progetti che un ingegnere umano può poi valutare.

Machine Learning.. Ci sono molte applicazioni dei GA per sistemi di apprendimento, il modello usuale è quello del sistema classificatore. Il GA prova ad evolvere (cioè a imparare) un set di se ... allora per operare in alcune particolari situazioni. Questo è stato applicato ai giochi e per risolvere labirinti e anche per modelli economici e politici. Un uso maggiore delle tecniche dei machine learning è stato fatto nel campo del controllo. In un grande sistema complesso, come una centrale chimica, ci sono molti parametri di controllo da essere aggiustati perchè il sistema continui a produrre in maniera ottimale. Generalmente, si usa l'approccio del sistema classificatore, in modo da elaborare le regole per controllare il sistema. Il fitness di un insieme di regole può essere valutato giudicando le performance del sistema re ale, oppure di un modello costruito su un computer. Fogarty ha usato il primo metodo per elaborare regole per controllare l'ottimo rapporto gas/aria in una fornace. Goldberg ha modellato una rete di gas per determinare una serie di regole per controllare sistemi di compressione e trovare perdite. Davis e Coombs hanno usato un approccio simile per progettare i collegamenti di una rete di telecomunicazione.