public double averageWeigthDiff(Organism org) {
        double W = 0.0;
        int i = 0, j = 0;
        double count = 0.0;
        while (i < this.getGenomeSize() && j < org.getGenomeSize()) {
            if (this.getGenome().getGenes().get(i).getInnovation_num() == org.getGenome().getGenes().get(j).getInnovation_num()) {
                W += Math.abs(this.getGenome().getGenes().get(i).getLink().getWeight()
                        - org.getGenome().getGenes().get(j).getLink().getWeight());
                count += 1.0;
                i++;
                j++;
            } else if (this.getGenome().getGenes().get(i).getInnovation_num() < org.getGenome().getGenes().get(j).getInnovation_num()) {
                i++;
            } else {
                j++;
            }
        }
        if (count == 0.0) {
            return 0.0;
        }
        return (W / count);
    }