From caecadaed6c113adb3c76a2ff46c325d7041ad63 Mon Sep 17 00:00:00 2001 From: Dvermetten Date: Fri, 26 Sep 2025 13:51:29 +0200 Subject: [PATCH 1/3] Fix dependency --- DESCRIPTION | 2 +- R/DataSet.R | 13 +++++++++++-- R/plotDataSetList.R | 1 + R/readFiles.R | 8 ++++++-- inst/shiny-server/server/upload.R | 4 ++++ inst/shiny-server/ui/upload_box.R | 2 +- 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 391bb2df..7d1c2f30 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: IOHanalyzer Type: Package Title: Data Analysis Part of 'IOHprofiler' -Version: 0.1.8.11 +Version: 0.1.8.12 Maintainer: Diederick Vermetten Authors@R: c( person("Hao", "Wang", email = "h.wang@liacs.leidenuniv.nl", role = "aut", comment = c(ORCID = "0000-0002-4933-5181")), diff --git a/R/DataSet.R b/R/DataSet.R index a5a02fca..9afec0b4 100644 --- a/R/DataSet.R +++ b/R/DataSet.R @@ -135,6 +135,10 @@ DataSet <- PAR <- list('by_FV' = RT[names(RT) != 'RT'], 'by_RT' = FV[names(FV) != 'FV']) + if (all(paste0('x', seq(0,info$DIM - 1)) %in% names(PAR$by_RT))) { + info$contains_position <- T + } + RT <- RT$RT mode(RT) <- 'integer' FV <- FV$FV @@ -335,11 +339,16 @@ c.DataSet <- function(...) { }), recursive = F) } - do.call(function(...) + res <- do.call(function(...) structure(list( RT = RT, FV = FV, PAR = PAR ), class = c('DataSet', 'list'), ...), c(info)) + + if (!is.null(attr(dsl[[1]], 'contains_full_FV')) && attr(dsl[[1]], 'contains_full_FV')) { + res$FV_raw_mat <- do.call(cbind, lapply(dsl, function(ds) unlist(ds$FV_raw_mat))) + } + } #' S3 subset function for DataSet @@ -666,7 +675,7 @@ get_PAR_name <- function(ds, which) #' @examples #' get_FV_overview(dsl) #' get_FV_overview(dsl[[1]]) -#' get_FV_overview(dsl, algorithm = '(1+1)_greedy_hill_climber_1') +#' get_FV_overview(subset(dsl, algId == "(1+1)_greedy_hill_climber_1")) #' @export get_FV_overview <- function(ds, ...) diff --git a/R/plotDataSetList.R b/R/plotDataSetList.R index 3d4ddfcd..11f6f33e 100644 --- a/R/plotDataSetList.R +++ b/R/plotDataSetList.R @@ -1357,6 +1357,7 @@ Plot.Stats.Significance_Graph.DataSetList <- } p_matrix <- pairwise.test(dsList, ftarget, bootstrap.size, which) + p_matrix[is.na(p_matrix)] <- 1 g <- igraph::graph_from_adjacency_matrix(p_matrix <= alpha, mode = 'directed', diag = F) lab.locs <- diff --git a/R/readFiles.R b/R/readFiles.R index b8f5049d..33630007 100644 --- a/R/readFiles.R +++ b/R/readFiles.R @@ -1438,7 +1438,7 @@ read_pure_csv <- function(path, data$neval <- ave(data$fval, data$run, FUN = seq_along) } - dt_for_allign <- dcast(data, neval ~ run, value.var = 'fval') + dt_for_allign <- dcast(data, neval ~ run, value.var = 'fval', fun.aggregate = ifelse(maximization, max, min)) FV_mat <- as.matrix(dt_for_allign[, 2:ncol(dt_for_allign)]) runtimes <- dt_for_allign$neval @@ -1602,7 +1602,11 @@ read_IOH_v1plus <- function(info, full_sampling = FALSE) { paramnames <- - info$attributes[!info$attributes %in% c("evaluations", "raw_y")] + colnames(data)[!colnames(data) %in% c("evaluations", "raw_y", 'runnr')] + + if (all(paste0('x', seq(0,info$DIM - 1)) %in% paramnames)) { + info$contains_position <- T + } PAR <- list( 'by_RT' = lapply(paramnames, function(parname) { diff --git a/inst/shiny-server/server/upload.R b/inst/shiny-server/server/upload.R index 16843e16..d81955b8 100644 --- a/inst/shiny-server/server/upload.R +++ b/inst/shiny-server/server/upload.R @@ -31,6 +31,10 @@ observe({ such as the ones provided on the IOHProfiler github-page.") updateSelectInput(session, 'repository.dataset', choices = NULL, selected = NULL) } + meta_file <- list.files(dir, pattern = 'meta.json', full.names = T) + if (length(meta_file) == 1) { + shinyjs::html("repository_meta", print(rjson::fromJSON(file=meta_file))[['description']]) + } }) # load repository that is selected diff --git a/inst/shiny-server/ui/upload_box.R b/inst/shiny-server/ui/upload_box.R index 4975c1e2..8291e50d 100644 --- a/inst/shiny-server/ui/upload_box.R +++ b/inst/shiny-server/ui/upload_box.R @@ -240,7 +240,7 @@ overal_loading_box <- function(width = 12, collapsible = T, selectInput('repository.type', label = "Select the dataset source", choices = NULL, selected = NULL, width = '80%'), - + verbatimTextOutput('repository_meta'), selectInput('repository.dataset', label = "Select the dataset", choices = NULL, selected = NULL, width = '80%', multiple = T), From 3732bd97503ccc8e5cef98401ba9a398544d976c Mon Sep 17 00:00:00 2001 From: Dvermetten Date: Fri, 26 Sep 2025 13:54:08 +0200 Subject: [PATCH 2/3] update CI cache version --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 187e14f0..ea714112 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -49,7 +49,7 @@ jobs: shell: Rscript {0} - name: Restore R package cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ env.R_LIBS_USER }} key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} From 9f7568de93c500610e3bee062de74f78e043b4b4 Mon Sep 17 00:00:00 2001 From: Dvermetten Date: Fri, 26 Sep 2025 14:34:23 +0200 Subject: [PATCH 3/3] Resolve broken links in readme --- README.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 333c4a6a..9c08657e 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ It is _available through_: ## Online Service -A free server [https://iohanalyzer.liacs.nl](http://iohprofiler.liacs.nl) running the stable version of __IOHanalyzer__ is hosted in [Leiden Institute of Advanced Computer Science](https://liacs.leidenuniv.nl/). You're welcome to check it out! +A free server [https://iohanalyzer.liacs.nl](https://iohanalyzer.liacs.nl) running the stable version of __IOHanalyzer__ is hosted in [Leiden Institute of Advanced Computer Science](https://liacs.leidenuniv.nl/). You're welcome to check it out! ## Installation @@ -107,11 +107,11 @@ then you just need to compress the data folder obtained from the experiment into ## Our Team -* [Hao Wang](https://www.lip6.fr/actualite/personnes-fiche.php?ident=D2381), Sorbonne Université, LIP6, France. -* [Diederick Vermetten](https://www.universiteitleiden.nl/en/staffmembers/diederick-vermetten), Leiden Institute of Advanced Computer Science, The Netherlands. +* [Hao Wang](https://www.universiteitleiden.nl/en/staffmembers/hao-wang), Leiden Institute of Advanced Computer Science, The Netherlands. +* [Diederick Vermetten](https://www.lip6.fr/actualite/personnes-fiche.php?ident=D2799), Sorbonne Université, CNRS, LIP6, France. * [Furong Ye](https://www.universiteitleiden.nl/en/staffmembers/furong-ye), Leiden Institute of Advanced Computer Science, The Netherlands. * [Ofer M. Shir](https://ofersh.github.io/telhai/), Tel-Hai College, Israel. -* [Carola Doerr](http://www-desir.lip6.fr/~doerr/), Sorbonne Université, CNRS, LIP6, France. +* [Carola Doerr](https://doerr.perso.lip6.fr/), Sorbonne Université, CNRS, LIP6, France. * [Thomas Bäck](https://www.universiteitleiden.nl/en/staffmembers/thomas-back), Leiden Institute of Advanced Computer Science, The Netherlands. When using IOHprofiler and parts thereof, please kindly cite this work as @@ -119,16 +119,15 @@ When using IOHprofiler and parts thereof, please kindly cite this work as Hao Wang, Diederick Vermettern, Furong Ye, Carola Doerr and Thomas Bäck: _IOHanalyzer: Performance Analysis for Iterative Optimization Heuristic_, arXiv e-prints:2007.03953, 2020. ```bibtex -@ARTICLE{IOHprofiler, - author = {Hao Wang and Diederick Vermettern and Furong Ye and Carola Doerr and Thomas B{\"a}ck}, - title = {{IOHanalyzer: Performance Analysis for Iterative Optimization Heuristic}}, - journal = {arXiv e-prints:2007.03953}, - archivePrefix = "arXiv", - eprint = {2007.03953}, - year = 2020, - month = July, - keywords = {Computer Science - Neural and Evolutionary Computing}, - url = {https://arxiv.org/abs/2007.03953} +@article{IOHanalzyer, + title={IOHanalyzer: Detailed performance analyses for iterative optimization heuristics}, + author={Wang, Hao and Vermetten, Diederick and Ye, Furong and Doerr, Carola and B{\"a}ck, Thomas}, + journal={ACM Transactions on Evolutionary Learning and Optimization}, + volume={2}, + number={1}, + pages={1--29}, + year={2022}, + publisher={ACM New York, NY} } ```