Answers.Body: <p>In the <a href="http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf" rel="nofollow noreferrer">original NEAT paper</a>, these two concepts are defined distinctly.</p>
  <blockquote>
  <p>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 <strong>disjoint</strong> or <strong>excess</strong>, 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.</p>
  </blockquote>
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-16T13:31:56.710Z
Answers.Text: 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?
Answers.UserDisplayName: gerichhome
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-16T17:13:49.527Z
Answers.Text: 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.
Answers.UserDisplayName: Amrinder Arora
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-16T19:34:49.810Z
Answers.Text: 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?
Answers.UserDisplayName: gerichhome
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-15T10:20:10.777Z
Answers.LastActivityDate: 2021-08-15T10:20:10.777Z
Answers.UserDisplayName: Amrinder Arora
Body: <p>In the NEAT algorithm, what is the purpose of treating disjoint and excess genes differently?</p>
  <p>They are treated so (or may be treated potentially) at least when calculating the distance between 2 individuals when dividing the population into species (<code>c1</code> and <code>c2</code> coefficients).</p>
  
Tags: <neural-networks><genetic-algorithms><neat><neuroevolution>
Title: In the NEAT algorithm, what is the purpose of treating disjoint and excess genes differently?
UserDisplayName: gerichhome
ThreadText: # In the NEAT algorithm, what is the purpose of treating disjoint and excess genes differently?
  
  (Asked by: username_0 on 2021-08-14)
  
  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).
  
  **Tags:** neural-networks, genetic-algorithms, neat, neuroevolution
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2021-08-15. Score: 1
  
  In the [original NEAT paper](http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf), 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.
  
  > **Comments:**
  > **username_0**: 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?  
  > **username_1**: 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.  
  > **username_0**: 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?  
  
  ---
  
  