Chapter 4 Contradictory objectives results

Here we present the results for the satisfactory trait corverage and activation gene coverage generated by each selection scheme replicate on the contradictory objectives diagnostic. Note both of these values are gathered at the population-level. Activation gene coverage refers to the count of unique activation genes in a given population; this gives us a range of integers between 0 and 100. Satisfactory trait coverage refers to the count of unique satisfied traits in a given population; this gives us a range of integers between 0 and 100.

4.2 Satisfactory trait coverage

Satisfactory trait coverage analysis.

4.2.2 Best coverage throughout

Best satisfactory trait coverage throughout 50,000 generations.

## Warning: Removed 50 rows containing missing values (`geom_point()`).

4.2.2.1 Stats

Summary statistics for the best satisfactory trait coverage.

## # A tibble: 8 x 8
##   acron count na_cnt   min median  mean   max   IQR
##   <fct> <int>  <int> <dbl>  <dbl> <dbl> <dbl> <dbl>
## 1 nds      50      0    85     91 91.8    100     5
## 2 lex      50      0    45     48 48.2     51     2
## 3 pfs      50      0     3      4  3.84     6     1
## 4 gfs      50      0     1      1  1        1     0
## 5 tor      50      0     1      1  1        1     0
## 6 tru      50      0     1      1  1        1     0
## 7 nov      50      0     0      0  0        0     0
## 8 ran      50      0     0      0  0        0     0

Kruskal–Wallis test provides evidence of difference among satisfactory trait coverage.

## 
##  Kruskal-Wallis rank sum test
## 
## data:  val by acron
## Kruskal-Wallis chi-squared = 396.67, df = 7, p-value < 2.2e-16

Results for post-hoc Wilcoxon rank-sum test with a Bonferroni correction on satisfactory trait coverage.

## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  coverage$val and coverage$acron 
## 
##     nds    lex    pfs    gfs    tor    tru    nov
## lex <2e-16 -      -      -      -      -      -  
## pfs <2e-16 <2e-16 -      -      -      -      -  
## gfs <2e-16 <2e-16 <2e-16 -      -      -      -  
## tor <2e-16 <2e-16 <2e-16 1      -      -      -  
## tru <2e-16 <2e-16 <2e-16 1      1      -      -  
## nov <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 -  
## ran <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 1  
## 
## P value adjustment method: bonferroni

4.2.3 End of 50,000 generations

Satisfactory trait coverage in the population at the end of 50,000 generations.

## Warning: Removed 52 rows containing missing values (`geom_point()`).

4.2.3.1 Stats

Summary statistics for satisfactory trait coverage in the population at the end of 50,000 generations.

## # A tibble: 8 x 8
##   acron count na_cnt   min median  mean   max   IQR
##   <fct> <int>  <int> <int>  <dbl> <dbl> <int> <dbl>
## 1 nds      50      0    82     86 86.4     92     3
## 2 lex      50      0    36     39 38.6     40     1
## 3 pfs      50      0     3      4  3.82     6     1
## 4 gfs      50      0     1      1  1        1     0
## 5 tor      50      0     1      1  1        1     0
## 6 tru      50      0     1      1  1        1     0
## 7 nov      50      0     0      0  0        0     0
## 8 ran      50      0     0      0  0        0     0

Kruskal–Wallis test provides evidence of difference among satisfactory trait coverage in the population at the end of 50,000 generations.

## 
##  Kruskal-Wallis rank sum test
## 
## data:  pop_uni_obj by acron
## Kruskal-Wallis chi-squared = 396.7, df = 7, p-value < 2.2e-16

Results for post-hoc Wilcoxon rank-sum test with a Bonferroni correction on satisfactory trait coverage in the population at the end of 50,000 generations.

## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  coverage$pop_uni_obj and coverage$acron 
## 
##     nds    lex    pfs    gfs    tor    tru    nov
## lex <2e-16 -      -      -      -      -      -  
## pfs <2e-16 <2e-16 -      -      -      -      -  
## gfs <2e-16 <2e-16 <2e-16 -      -      -      -  
## tor <2e-16 <2e-16 <2e-16 1      -      -      -  
## tru <2e-16 <2e-16 <2e-16 1      1      -      -  
## nov <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 -  
## ran <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 <2e-16 1  
## 
## P value adjustment method: bonferroni

4.3 Activation gene coverage

Activation gene coverage analysis.

4.3.2 End of 50,000 generations

Activation gene coverage in the population at the end of 50,000 generations.

## Warning: Removed 17 rows containing missing values (`geom_point()`).

4.3.2.1 Stats

Summary statistics for activation gene coverage.

## # A tibble: 8 x 8
##   acron count na_cnt   min median  mean   max   IQR
##   <fct> <int>  <int> <int>  <dbl> <dbl> <int> <dbl>
## 1 nov      50      0    98    100 99.6    100     1
## 2 nds      50      0    82     86 86.4     92     3
## 3 lex      50      0    36     39 38.6     40     1
## 4 pfs      50      0     3      4  3.98     6     1
## 5 ran      50      0     1      2  2.06     7     1
## 6 gfs      50      0     1      1  1        1     0
## 7 tor      50      0     1      1  1        1     0
## 8 tru      50      0     1      1  1        1     0

Kruskal–Wallis test provides evidence of difference among activation gene coverage.

## 
##  Kruskal-Wallis rank sum test
## 
## data:  uni_str_pos by acron
## Kruskal-Wallis chi-squared = 384.23, df = 7, p-value < 2.2e-16

Results for post-hoc Wilcoxon rank-sum test with a Bonferroni correction on activation gene coverage.

## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  coverage$uni_str_pos and coverage$acron 
## 
##     nov     nds     lex     pfs     ran     gfs tor
## nds < 2e-16 -       -       -       -       -   -  
## lex < 2e-16 < 2e-16 -       -       -       -   -  
## pfs < 2e-16 < 2e-16 < 2e-16 -       -       -   -  
## ran < 2e-16 < 2e-16 < 2e-16 2.9e-12 -       -   -  
## gfs < 2e-16 < 2e-16 < 2e-16 < 2e-16 3.0e-10 -   -  
## tor < 2e-16 < 2e-16 < 2e-16 < 2e-16 3.0e-10 1   -  
## tru < 2e-16 < 2e-16 < 2e-16 < 2e-16 3.0e-10 1   1  
## 
## P value adjustment method: bonferroni

4.4 Nondominated sorting split

Here analyze the satisfactory trait coverage and activation gene coverage results for nondominated sorting, nondominated front ranking (no fitness sharing between fronts), and phenotypic fitness sharing.

4.4.2 Best coverage throughout

Best satisfactory trait coverage.

## Warning: Removed 2 rows containing missing values (`geom_point()`).

4.4.2.1 Stats

Summary statistics for the best satisfactory trait coverage.

## # A tibble: 3 x 8
##   acron count na_cnt   min median  mean   max   IQR
##   <fct> <int>  <int> <dbl>  <dbl> <dbl> <dbl> <dbl>
## 1 nds      50      0    85     91  91.8   100   5  
## 2 pfs      50      0     1      1   1       1   0  
## 3 nfr      50      0    28     44  42.8    54   8.5

Kruskal–Wallis test provides evidence of difference among best satisfactory trait coverage.

## 
##  Kruskal-Wallis rank sum test
## 
## data:  val by acron
## Kruskal-Wallis chi-squared = 137.61, df = 2, p-value < 2.2e-16

Results for post-hoc Wilcoxon rank-sum test with a Bonferroni correction on best satisfactory trait coverage.

## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  coverage$val and coverage$acron 
## 
##     nds    pfs
## pfs <2e-16 -  
## nfr <2e-16 1  
## 
## P value adjustment method: bonferroni

4.4.3 End of 50,000 generations

Satisfactory trait coverage in the population at the end of 50,000 generations.

4.4.3.1 Stats

Summary statistics for satisfactory trait coverage in the population at the end of 50,000 generations.

## # A tibble: 3 x 8
##   acron count na_cnt   min median  mean   max   IQR
##   <fct> <int>  <int> <int>  <dbl> <dbl> <int> <dbl>
## 1 nds      50      0    82     86 86.4     92     3
## 2 pfs      50      0     3      4  3.82     6     1
## 3 nfr      50      0     1      1  1.28     2     1

Kruskal–Wallis test provides evidence of difference among satisfactory trait coverage in the population at the end of 50,000 generations.

## 
##  Kruskal-Wallis rank sum test
## 
## data:  pop_uni_obj by acron
## Kruskal-Wallis chi-squared = 135.36, df = 2, p-value < 2.2e-16

Results for post-hoc Wilcoxon rank-sum test with a Bonferroni correction on satisfactory trait coverage in the population at the end of 50,000 generations.

## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  coverage$pop_uni_obj and coverage$acron 
## 
##     nds    pfs   
## pfs <2e-16 -     
## nfr <2e-16 <2e-16
## 
## P value adjustment method: bonferroni

4.5 Multi-valley crossing results

4.5.1 Satisfactory trait coverage

Satisfactory trait coverage analysis.

4.5.1.2 Best coverage throughout

Best satisfactory trait coverage throughout 50,000 generations.

## Warning: Removed 178 rows containing missing values (`geom_point()`).

4.5.1.2.1 Stats

Summary statistics for the best satisfactory trait coverage.

## # A tibble: 8 x 8
##   acron count na_cnt   min median  mean   max   IQR
##   <fct> <int>  <int> <dbl>  <dbl> <dbl> <dbl> <dbl>
## 1 pfs      50      0     2      3  3.42     5     1
## 2 nds      50      0     0      0  0        0     0
## 3 lex      50      0     0      0  0        0     0
## 4 gfs      50      0     0      0  0        0     0
## 5 tor      50      0     0      0  0        0     0
## 6 tru      50      0     0      0  0        0     0
## 7 nov      50      0     0      0  0        0     0
## 8 ran      50      0     0      0  0        0     0

Kruskal–Wallis test provides evidence of difference among satisfactory trait coverage.

## 
##  Kruskal-Wallis rank sum test
## 
## data:  val by acron
## Kruskal-Wallis chi-squared = 396.91, df = 7, p-value < 2.2e-16

Results for post-hoc Wilcoxon rank-sum test with a Bonferroni correction on satisfactory trait coverage.

## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  coverage$val and coverage$acron 
## 
##     pfs    nds lex gfs tor tru nov
## nds <2e-16 -   -   -   -   -   -  
## lex <2e-16 1   -   -   -   -   -  
## gfs <2e-16 1   1   -   -   -   -  
## tor <2e-16 1   1   1   -   -   -  
## tru <2e-16 1   1   1   1   -   -  
## nov <2e-16 1   1   1   1   1   -  
## ran <2e-16 1   1   1   1   1   1  
## 
## P value adjustment method: bonferroni

4.5.1.3 Coverage comparison

Best performances in the population at 40,000 and 50,000 generations.

## Warning: The following aesthetics were dropped during statistical transformation:
## colour, shape
## i This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## i Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?
## The following aesthetics were dropped during statistical transformation:
## colour, shape
## i This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## i Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?

4.5.1.3.1 Stats

Summary statistics for the activation gene coverage at 40,000 and 50,000 generations.

## `summarise()` has grouped output by 'acron'. You can override using the
## `.groups` argument.
## # A tibble: 14 x 9
## # Groups:   acron [7]
##    acron Generation count na_cnt   min median  mean   max   IQR
##    <fct> <fct>      <int>  <int> <int>  <dbl> <dbl> <int> <dbl>
##  1 pfs   50000         50      0     1      3  3.14     5     2
##  2 pfs   40000         50      0     1      3  2.9      5     1
##  3 nds   50000         50      0     0      0  0        0     0
##  4 nds   40000         50      0     0      0  0        0     0
##  5 lex   50000         50      0     0      0  0        0     0
##  6 lex   40000         50      0     0      0  0        0     0
##  7 gfs   50000         50      0     0      0  0        0     0
##  8 gfs   40000         50      0     0      0  0        0     0
##  9 tor   50000         50      0     0      0  0        0     0
## 10 tor   40000         50      0     0      0  0        0     0
## 11 tru   50000         50      0     0      0  0        0     0
## 12 tru   40000         50      0     0      0  0        0     0
## 13 nov   50000         50      0     0      0  0        0     0
## 14 nov   40000         50      0     0      0  0        0     0

Truncation selection comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "tru" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "tru" & Generation == 40000)$pop_uni_obj
## W = 1250, p-value = NA
## alternative hypothesis: true location shift is not equal to 0

Tournament selection comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "tor" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "tor" & Generation == 40000)$pop_uni_obj
## W = 1250, p-value = NA
## alternative hypothesis: true location shift is not equal to 0

Lexicase selection comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "lex" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "lex" & Generation == 40000)$pop_uni_obj
## W = 1250, p-value = NA
## alternative hypothesis: true location shift is not equal to 0

Genotypic fitness sharing comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "gfs" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "gfs" & Generation == 40000)$pop_uni_obj
## W = 1250, p-value = NA
## alternative hypothesis: true location shift is not equal to 0

Phenotypic fitness sharing comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "pfs" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "pfs" & Generation == 40000)$pop_uni_obj
## W = 1423.5, p-value = 0.2118
## alternative hypothesis: true location shift is not equal to 0

Nondominated sorting comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "nds" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "nds" & Generation == 40000)$pop_uni_obj
## W = 1250, p-value = NA
## alternative hypothesis: true location shift is not equal to 0

Novelty search comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "nov" & Generation == 50000)$pop_uni_obj and filter(slices, acron == "nov" & Generation == 40000)$pop_uni_obj
## W = 1250, p-value = NA
## alternative hypothesis: true location shift is not equal to 0

4.5.2 Activation gene coverage

Activation gene coverage analysis.

4.5.2.3 Stats

Summary statistics for the activation gene coverage at 40,000 and 50,000 generations.

## `summarise()` has grouped output by 'acron'. You can override using the
## `.groups` argument.
## # A tibble: 14 x 9
## # Groups:   acron [7]
##    acron Generation count na_cnt   min median   mean   max   IQR
##    <fct> <fct>      <int>  <int> <int>  <dbl>  <dbl> <int> <dbl>
##  1 nov   50000         50      0    99  100   100.     100  0   
##  2 nov   40000         50      0    98  100    99.8    100  0   
##  3 nds   50000         50      0    99  100   100.     100  0   
##  4 nds   40000         50      0   100  100   100      100  0   
##  5 lex   50000         50      0    85   90    90.3     95  3   
##  6 lex   40000         50      0    85   90    90.0     96  4   
##  7 gfs   50000         50      0    13   30    29.4     40  9.5 
##  8 gfs   40000         50      0     4   30.5  29.3     56  7.75
##  9 tor   50000         50      0     1    4     4.64     9  2   
## 10 tor   40000         50      0     2    4     4.54    10  2.75
## 11 tru   50000         50      0     2    5     5.6     11  3   
## 12 tru   40000         50      0     2    6     5.8     11  3   
## 13 pfs   50000         50      0     3    4     4.02     9  0   
## 14 pfs   40000         50      0     2    3     3.42     6  1

Truncation selection comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "tru" & Generation == 50000)$uni_str_pos and filter(slices, acron == "tru" & Generation == 40000)$uni_str_pos
## W = 1175, p-value = 0.6039
## alternative hypothesis: true location shift is not equal to 0

Tournament selection comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "tor" & Generation == 50000)$uni_str_pos and filter(slices, acron == "tor" & Generation == 40000)$uni_str_pos
## W = 1351.5, p-value = 0.4781
## alternative hypothesis: true location shift is not equal to 0

Lexicase selection comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "lex" & Generation == 50000)$uni_str_pos and filter(slices, acron == "lex" & Generation == 40000)$uni_str_pos
## W = 1321.5, p-value = 0.6221
## alternative hypothesis: true location shift is not equal to 0

Genotypic fitness sharing comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "gfs" & Generation == 50000)$uni_str_pos and filter(slices, acron == "gfs" & Generation == 40000)$uni_str_pos
## W = 1223.5, p-value = 0.8575
## alternative hypothesis: true location shift is not equal to 0

Phenotypic fitness sharing comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "pfs" & Generation == 50000)$uni_str_pos and filter(slices, acron == "pfs" & Generation == 40000)$uni_str_pos
## W = 1709, p-value = 0.0006733
## alternative hypothesis: true location shift is not equal to 0

Nondominated sorting comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "nds" & Generation == 50000)$uni_str_pos and filter(slices, acron == "nds" & Generation == 40000)$uni_str_pos
## W = 1225, p-value = 0.3271
## alternative hypothesis: true location shift is not equal to 0

Novelty search comparisons.

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  filter(slices, acron == "nov" & Generation == 50000)$uni_str_pos and filter(slices, acron == "nov" & Generation == 40000)$uni_str_pos
## W = 1476, p-value = 0.007657
## alternative hypothesis: true location shift is not equal to 0