Nicchia e Specificazione
Negli ecosistemi naturali, ci sono molti modi differenti
con i quali gli animali possono sopravvivere: cacciando,
sottoterra, sugli alberi, pascolando eccetera. E le differenti
specie evolvono per riempire ciascuno la sua nicchia ecologica.
La specificazione è il processo nel quale una singola specie si
differenzia in due o più specie che occupano differenti
nicchie.
Negli algoritmi genetici le nicchie sono il massimo della
funzione fitness. Alcune volte abbiamo funzioni fitness
multimodali di vogliamo localizzare tutti i picchi.
Sfortunatamente i GA tradizionali non riescono a fare questo; lintera
popolazione converge in un singolo picco. Naturalmente dovremmo
aspettarci che la popolazione di un Ga converga a un picco con
alto fitness, ma possono esserci altri picchi uguale fitness e il
GA andrà a finire su uno di questi. Questo è dovuto allo
spostamento genetico" . Alcune modifiche per il GA
tradizionale sono state proposte per risolvere questo problema
tutte basate sugli ecosistemi naturali. Le due tecniche base sono
per mantenere la diversità e per raggiungere il costo
associato a una nicchia.
Cavicchio ha introdotto un meccanismo che ha introdotto
preselezione, dove un figlio, se ha un fitness maggiore del
genitore con fitness più basso, lo rimpiazza. Quindi cè
una competizione tra genitori e figli, il costo non viene
condiviso, ma il vincitore lo prende tutto. Questo metodo aiuta
la mantenere diversità in quanto le stringhe tendono a
rimpiazzarne altre che sono simili a loro, e così si
previene la convergenza in un singolo massimo.
Molti problemi sorgono col metodo delle nicchie se ci sono molti
massimi locali con fitness vicino al massimo globale. Una tecnica
che distribuisce i membri della popolazione nei picchi in
proporzione al fitness di questi ultimi, non riesce a trovare
facilmente il massimo globale se ci sono più picchi di quanti
sono i membri della popolazione.
Un differente approccio è quello fornito da Breasley, Bull e
Martin noto come nicchie sequenziali che si
basa su esecuzioni multiple del GA: ciascuna di esse localizza un
picco e la sua funzione fitness viene modificata in modo che il
picco venga cancellato e questo ci assicura che
in una esecuzione successiva non venga ritrovato. Il GA quindi
riparte con una nuova popolazione e in questo modo viene
localizzato un nuovo picco per ogni esecuzione.