[jgap-users] Avoiding "Unordered" Duplicate Chromosomes
Brought to you by:
klausikm
From: Massimiliano S. - C. <mas...@cr...> - 2014-04-23 14:28:54
|
For the problem i'm trying to solve with JGAP i've a Chromosome made by IntegerGene(s). In my problem the order of the genes doesn't count (1 2 3 4 is the same solution as 1 3 2 4 or 4 1 2 3 ...) So after the run , if I order the results by fitness, I end up with a lot of chromosomes representing the same solution with the same fitness... I avoid the "ordered" (identical) duplicates using the | BestChromosomesSelector with|| setDoubletteChromosomesAllowed(false);| But Is there a way to avoid the generation of "unordered" duplicates? More details: If it can help, actually the problem I'm trying to solve is the one of finding some lists of N similar couples of objects in a pool of M objects. (cardinality : for example 30 couples on 100 objects, or 10 on 50 or 40 on 1000... ) A list of couples is represented by a chromosome. I've a similarity matrix that I use as fitness function ... I have N integer genes which values represent the "index" of the couples in a list of all the couples. 1:[A,B] 2:[A,C] 3:[A,D] 4:[B,C] 5:[B,D] 6:[C,D] so for example the chromosomes : {2,5} represents the list : {[A,C][B,D]} {1,6} represents the list : {[A,B][C,D]} So I have to avoid those cases: - [A,B][B,A] : in the list the couples are "ordered" so i don't have this case. (OK) - [A,A ] genes or [ A, B] [B,C] couples (avoid it by setting fitness=0 to the chromosomes with duplicate objects or using Supergene) (OK) - Chromosome1: {[A,B][C,D]} , Chromosome2: {[A,B][C,D]} duplicates (i avoid it with BestChromosomeSelector) (OK) -Now I need to avoid the case : Chromosome1 {[A B][C D]} , Chromosome2:{[C D][A B]} how can I do it ? Thank you, -- Max |