Diagnosing Island Supplemental Material
2023-04-07
Chapter 1 Introduction
This is the supplemental material associated with the 6th chapter in my dissertation.
1.1 Computer Setup
These analyses were conducted in the following computing environment:
## _
## platform x86_64-pc-linux-gnu
## arch x86_64
## os linux-gnu
## system x86_64, linux-gnu
## status
## major 4
## minor 2.3
## year 2023
## month 03
## day 15
## svn rev 83980
## language R
## version.string R version 4.2.3 (2023-03-15)
## nickname Shortstop Beagle
1.2 Experimental setup
Setting up required variables variables.
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Loading required package: rlang
p_theme <- theme(
text = element_text(size = 28),
plot.title = element_text( face = "bold", size = 22, hjust = 0.5),
panel.border = element_blank(),
panel.grid.minor = element_blank(),
legend.title=element_text(size=18),
legend.text=element_text(size=18),
axis.title = element_text(size=20),
axis.text = element_text(size=18),
legend.position="bottom",
panel.background = element_rect(fill = "#f1f2f5",
colour = "white",
size = 0.5, linetype = "solid")
)## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## i Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# default variables
MODEL = c('EA','IS','NMIS')
STRUCTURE = c('Well-mixed','Standard islands','Isolated islands')
EXPERIMENTS = c('BASE-EXPERIMENTS/','MI50/','MI5000/')
SCHEME = c('TRUNCATION','TOURNAMENT','LEXICASE')
DIAGNOSTIC = c('EXPLOITATION_RATE', 'ORDERED_EXPLOITATION', 'CONTRADICTORY_OBJECTIVES', 'MULTIPATH_EXPLORATION')
DIMENSIONALITY = 100
cb_palette <- c('#D81B60','#1E88E5','#FFC107')
cb_palette_mi <- c('#E66100','#1E88E5','#5D3A9B')
SHAPE = c(15,16,17)
TSIZE = 20
GENERATIONS = 50000
# data related
DATA_DIR = '/opt/Diagnosing-Island-Structures/DATA-FINAL/'
# go through each diagnostic and collect over time data for cross comparison (cc)
base_over_time = data.frame()
mi50_over_time = data.frame()
mi5000_over_time = data.frame()
print('over time data')## [1] "over time data"
for(model in MODEL)
{
print(model)
for(scheme in SCHEME)
{
base_dir = paste(DATA_DIR,EXPERIMENTS[1],model,'/over-time-',scheme, '.csv', sep = "", collapse = NULL)
base_over_time = rbind(base_over_time, read.csv(base_dir, header = TRUE, stringsAsFactors = FALSE))
mi50_dir = paste(DATA_DIR,EXPERIMENTS[2],model,'/over-time-',scheme, '.csv', sep = "", collapse = NULL)
mi50_over_time = rbind(mi50_over_time, read.csv(mi50_dir, header = TRUE, stringsAsFactors = FALSE))
mi5000_dir = paste(DATA_DIR,EXPERIMENTS[3],model,'/over-time-',scheme, '.csv', sep = "", collapse = NULL)
mi5000_over_time = rbind(mi5000_over_time, read.csv(mi5000_dir, header = TRUE, stringsAsFactors = FALSE))
}
}## [1] "EA"
## [1] "IS"
## [1] "NMIS"
colnames(base_over_time)[colnames(base_over_time) == "SEL"] = 'Selection\nScheme'
base_over_time$Structure <- factor(base_over_time$Structure, levels = MODEL)
base_over_time$sel_pre = base_over_time$sel_pre * -1.0
base_over_time$`Population structure` <-
with(base_over_time, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
base_over_time$`Population structure` <- factor(base_over_time$`Population structure`, levels = STRUCTURE)
colnames(mi50_over_time)[colnames(mi50_over_time) == "SEL"] = 'Selection\nScheme'
mi50_over_time$Structure <- factor(mi50_over_time$Structure, levels = MODEL)
mi50_over_time$sel_pre = mi50_over_time$sel_pre * -1.0
mi50_over_time$`Population structure` <-
with(mi50_over_time, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
mi50_over_time$`Population structure` <- factor(mi50_over_time$`Population structure`, levels = STRUCTURE)
colnames(mi5000_over_time)[colnames(mi5000_over_time) == "SEL"] = 'Selection\nScheme'
mi5000_over_time$Structure <- factor(mi5000_over_time$Structure, levels = MODEL)
mi5000_over_time$sel_pre = mi5000_over_time$sel_pre * -1.0
mi5000_over_time$`Population structure` <-
with(mi5000_over_time, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
mi5000_over_time$`Population structure` <- factor(mi5000_over_time$`Population structure`, levels = STRUCTURE)
# go through each diagnostic and collect best over time for cross comparison (cc)
base_best = data.frame()
mi50_best = data.frame()
mi5000_best = data.frame()
print('best data')## [1] "best data"
for(model in MODEL)
{
print(model)
for(scheme in SCHEME)
{
base_dir = paste(DATA_DIR,EXPERIMENTS[1],model,'/best-',scheme, '.csv', sep = "", collapse = NULL)
base_best = rbind(base_best, read.csv(base_dir, header = TRUE, stringsAsFactors = FALSE))
mi50_dir = paste(DATA_DIR,EXPERIMENTS[2],model,'/best-',scheme, '.csv', sep = "", collapse = NULL)
mi50_best = rbind(mi50_best, read.csv(mi50_dir, header = TRUE, stringsAsFactors = FALSE))
mi5000_dir = paste(DATA_DIR,EXPERIMENTS[3],model,'/best-',scheme, '.csv', sep = "", collapse = NULL)
mi5000_best = rbind(mi5000_best, read.csv(mi5000_dir, header = TRUE, stringsAsFactors = FALSE))
}
}## [1] "EA"
## [1] "IS"
## [1] "NMIS"
colnames(base_best)[colnames(base_best) == "SEL"] = 'Selection\nScheme'
base_best$Structure <- factor(base_best$Structure, levels = MODEL)
base_best$`Population structure` <-
with(base_best, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
base_best$`Population structure` <- factor(base_best$`Population structure`, levels = STRUCTURE)
colnames(mi50_best)[colnames(mi50_best) == "SEL"] = 'Selection\nScheme'
mi50_best$Structure <- factor(mi50_best$Structure, levels = MODEL)
mi50_best$`Population structure` <-
with(mi50_best, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
mi50_best$`Population structure` <- factor(mi50_best$`Population structure`, levels = STRUCTURE)
colnames(mi5000_best)[colnames(mi5000_best) == "SEL"] = 'Selection\nScheme'
mi5000_best$Structure <- factor(mi5000_best$Structure, levels = MODEL)
mi5000_best$`Population structure` <-
with(mi5000_best, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
mi5000_best$`Population structure` <- factor(mi5000_best$`Population structure`, levels = STRUCTURE)
# get generation a satisfactory solution is found for cross comparison (cc)
base_ssf = data.frame()
mi50_ssf = data.frame()
mi5000_ssf = data.frame()
print('ssf data')## [1] "ssf data"
for(model in MODEL)
{
print(model)
for(scheme in SCHEME)
{
base_dir = paste(DATA_DIR,EXPERIMENTS[1],model,'/ssf-',scheme, '.csv', sep = "", collapse = NULL)
base_ssf = rbind(base_ssf, read.csv(base_dir, header = TRUE, stringsAsFactors = FALSE))
mi50_dir = paste(DATA_DIR,EXPERIMENTS[2],model,'/ssf-',scheme, '.csv', sep = "", collapse = NULL)
mi50_ssf = rbind(mi50_ssf, read.csv(mi50_dir, header = TRUE, stringsAsFactors = FALSE))
mi5000_dir = paste(DATA_DIR,EXPERIMENTS[3],model,'/ssf-',scheme, '.csv', sep = "", collapse = NULL)
mi5000_ssf = rbind(mi5000_ssf, read.csv(mi5000_dir, header = TRUE, stringsAsFactors = FALSE))
}
}## [1] "EA"
## [1] "IS"
## [1] "NMIS"
colnames(base_ssf)[colnames(base_ssf) == "SEL"] = 'Selection\nScheme'
base_ssf$Structure <- factor(base_ssf$Structure, levels = MODEL)
base_ssf$`Population structure` <-
with(base_ssf, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
base_ssf$`Population structure` <- factor(base_ssf$`Population structure`, levels = STRUCTURE)
colnames(mi50_ssf)[colnames(mi50_ssf) == "SEL"] = 'Selection\nScheme'
mi50_ssf$Structure <- factor(mi50_ssf$Structure, levels = MODEL)
mi50_ssf$`Population structure` <-
with(mi50_ssf, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
mi50_ssf$`Population structure` <- factor(mi50_ssf$`Population structure`, levels = STRUCTURE)
colnames(mi5000_ssf)[colnames(mi5000_ssf) == "SEL"] = 'Selection\nScheme'
mi5000_ssf$Structure <- factor(mi5000_ssf$Structure, levels = MODEL)
mi5000_ssf$`Population structure` <-
with(mi5000_ssf, ifelse(Structure == 'EA', 'Well-mixed',
ifelse(Structure == 'IS', 'Standard islands',
ifelse(Structure == 'NMIS', 'Isolated islands',''))))
mi5000_ssf$`Population structure` <- factor(mi5000_ssf$`Population structure`, levels = STRUCTURE)