1
$\begingroup$

In the NEAT algorithm, what is the purpose of treating disjoint and excess genes differently?

They are treated so (or may be treated potentially) at least when calculating the distance between 2 individuals when dividing the population into species (c1 and c2 coefficients).

$\endgroup$
1
$\begingroup$

In the original NEAT paper, these two concepts are defined distinctly.

When crossing over, the genes in both genomes with the same innovation numbers are lined up. These genes are called matching genes. Genes that do not match are either disjoint or excess, depending on whether they occur within or outside the range of the other parent’s innovation numbers. They represent structure that is not present in the other genome. In composing the offspring, genes are randomly chosen from either parent at matching genes, whereas all excess or disjoint genes are always included from the more fit parent.

However in terms of process, they are handled equivalently. If you see equation 1 on page 110, the equation says using coefficient c1 for Excess E and c2 for Disjoint genes. But in the parameter settings, c1 and c2 are set to equal values. So, while the evaluations presented in the paper do not distinguish between excess and disjoint genes from a process perspective, the purpose is for the framework to allow the distinction between D and E genes to be used by the user of the framework by supplying the values that make sense in their context.

$\endgroup$
3
  • $\begingroup$ Good, your answer is clear. Now I am just curious if there is a real need for setting different c1 and c2. Why one will need to distinguish between D and E genes? What kind of information it brings? Moreover the distance between gene1 and gene2 and distance between gene2 and gene1 should be the same, right? If c1 and c2 are different may distance become different? $\endgroup$
    – gerichhome
    Aug 16 at 13:31
  • $\begingroup$ Distance doesn't depend on c1 and c2, it is just what it is. As for whether c1 and c2 should be different, when you run the experiment, you can set values of c1,c2 to be {1,1} , {1, 1.5}, and {1.5, 1}. You can see which results are better, and that would allow you to find the best performing values. $\endgroup$ Aug 16 at 17:13
  • $\begingroup$ Look. Let our 2 genomes are g1=[1, 2, 3, 4, 6] and g2=[1, 2, 5, 7, 8] (here numbers are innovation numbers). Then if g1 is the first parent, then disjoint gene is 5 and excess genes are 7,8. If g2 is the first one, then 3,4,6 are all the disjoint genes and there are no excess genes. So distances become different: d(g1, g2) ≠ d(g2, g1) because c1*1+c2*2+c3*W ≠c1*3+c2*0+c3*W. Do I understand something wrong? $\endgroup$
    – gerichhome
    Aug 16 at 19:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.