Algoritmo genetico - risolvere una matrice con vincoli rigidi e morbidi

6

Sto scrivendo un programma genetico che ho bisogno di un consiglio per le operazioni di crossover. Il GP sta tentando di trovare la soluzione migliore per una matrice con vincoli di riga rigida e vincoli di colonna più deboli.

Per una data soluzione nella popolazione, le righe contengono una combinazione casuale di id del tipo di oggetto da un set fisso. Il GP sta cercando di trovare una soluzione in cui, dopo che le righe sono disposte, se si calcolano gli ID in ogni colonna, il numero di ciascun tipo deve rientrare nell'intervallo consigliato per quell'id. Ho scritto una funzione di fitness che mi consente di valutare la soluzione sulla vicinanza dei vincoli delle colonne: il 100% di tutte le colonne rientra nelle specifiche.

Poiché la forma fisica è legata alle colonne, sembra logico che l'operazione di crossover debba catturare colonne di due genitori per creare una progenie candidata. Un crossover multipunto dovrebbe essere un modo migliore per andare? La mia preoccupazione è che un'operazione di crossover, quasi certamente, spezzerà i contrafforti di fila.

Grazie per qualsiasi consiglio.

    
posta CardinalFlyer 18.07.2012 - 15:53
fonte

1 risposta

1

Hmmm ... Quando ho seguito un corso su GA e EA, il crossover multipunto non era necessariamente migliore del crossover a punto singolo o persino della mutazione e nessun crossover. In questo caso sembra che l'incrocio multipunto possa generare righe non valide e presumo che ciò significhi che la funzione di valutazione non può calcolare una statistica significativa. Detto questo, la tua idea di incrociare due matrici scambiando intere file sembra una buona idea. Il tuo algoritmo potrebbe essere più esplorativo se puoi mutare le righe in modo sicuro.

    
risposta data 20.03.2013 - 04:51
fonte

Leggi altre domande sui tag