{
  "_id": "6ad606e1c5cddeca72012f12",
  "Package": "ecr",
  "Title": "Evolutionary Computation in R",
  "Description": "Framework for building evolutionary algorithms for both\nsingle- and multi-objective continuous or discrete optimization\nproblems. A set of predefined evolutionary building blocks and\noperators is included. Moreover, the user can easily set up\ncustom objective functions, operators, building blocks and\nrepresentations sticking to few conventions. The package allows\nboth a black-box approach for standard tasks (plug-and-play\nstyle) and a much more flexible white-box approach where the\nevolutionary cycle is written by hand.",
  "Version": "2.1.1",
  "Encoding": "UTF-8",
  "Date": "2023-03-08",
  "Authors@R": "c(\nperson(\"Jakob\", \"Bossek\", email = \"j.bossek@gmail.com\", role = c(\"aut\", \"cre\", \"cph\")),\nperson(\"Michael H.\", \"Buselli\", role = c(\"ctb\", \"cph\")),\nperson(\"Wessel\", \"Dankers\", role = c(\"ctb\", \"cph\")),\nperson(\"Carlos M.\", \"Fonseca\", role = c(\"ctb\", \"cph\")),\nperson(\"Manuel\", \"Lopez-Ibanez\", role = c(\"ctb\", \"cph\")),\nperson(\"Luis\", \"Paquete\", role = c(\"ctb\", \"cph\")),\nperson(\"Joshua\", \"Knowles\", role = c(\"ctb\", \"cph\")),\nperson(\"Eckart\", \"Zitzler\", role = c(\"ctb\", \"cph\")),\nperson(\"Olaf\", \"Mersmann\", role = \"ctb\"))",
  "Maintainer": "Jakob Bossek <j.bossek@gmail.com>",
  "License": "GPL-3",
  "URL": "https://github.com/jakobbossek/ecr2",
  "BugReports": "https://github.com/jakobbossek/ecr2/issues",
  "ByteCompile": "yes",
  "VignetteBuilder": "knitr",
  "LazyData": "true",
  "RoxygenNote": "7.2.3",
  "Config/pak/sysreqs": "cmake libfontconfig1-dev libfreetype6-dev\nlibfribidi-dev libglu1-mesa-dev make libharfbuzz-dev texlive\nlibicu-dev libpng-dev libuv1-dev libxml2-dev libgl1-mesa-dev\nlibssl-dev zlib1g-dev",
  "Repository": "https://jakobbossek.r-universe.dev",
  "Date/Publication": "2026-01-19 11:18:23 UTC",
  "RemoteUrl": "https://github.com/jakobbossek/ecr2",
  "RemoteRef": "HEAD",
  "RemoteSha": "ae5032dbd34a793c5957455928e31c20fdd425f0",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-19 11:55:20 UTC",
    "User": "root"
  },
  "Author": "Jakob Bossek [aut, cre, cph],\nMichael H. Buselli [ctb, cph],\nWessel Dankers [ctb, cph],\nCarlos M. Fonseca [ctb, cph],\nManuel Lopez-Ibanez [ctb, cph],\nLuis Paquete [ctb, cph],\nJoshua Knowles [ctb, cph],\nEckart Zitzler [ctb, cph],\nOlaf Mersmann [ctb]",
  "_user": "jakobbossek",
  "_type": "src",
  "_file": "ecr_2.1.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/9f69c73dfeb416a1a4ff239c39e106856cab12164adcc3a5227b200d655fcde2",
  "_filesize": 1828730,
  "_sha256": "9f69c73dfeb416a1a4ff239c39e106856cab12164adcc3a5227b200d655fcde2",
  "_expires": "2027-01-27T12:02:39.000Z",
  "_created": "2026-10-19T11:55:20.000Z",
  "_published": "2026-10-19T12:02:41.361Z",
  "_buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 118045235198,
      "time": 207,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12183978486"
    },
    {
      "job": 118045235305,
      "time": 235,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12184776510"
    },
    {
      "job": 118045235511,
      "time": 201,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12184501820"
    },
    {
      "job": 118045235211,
      "time": 212,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12184796482"
    },
    {
      "job": 118045235242,
      "time": 111,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12184173111"
    },
    {
      "job": 118045235314,
      "time": 254,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12184950641"
    },
    {
      "job": 118045235364,
      "time": 150,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12184188221"
    },
    {
      "job": 118045235374,
      "time": 347,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12185125485"
    },
    {
      "job": 118042136447,
      "time": 462,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12184376418"
    },
    {
      "job": 118045235121,
      "time": 163,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12184208202"
    },
    {
      "job": 118045235334,
      "time": 388,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12184258636"
    },
    {
      "job": 118045235481,
      "time": 186,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12184631756"
    },
    {
      "job": 118045235348,
      "time": 126,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12184143158"
    },
    {
      "job": 118045235446,
      "time": 393,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12183924115"
    },
    {
      "job": 118045235306,
      "time": 140,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12184088265"
    }
  ],
  "_upstream": "https://github.com/jakobbossek/ecr2",
  "_commit": {
    "id": "ae5032dbd34a793c5957455928e31c20fdd425f0",
    "author": "Jakob Bossek <j.bossek@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #134 from villegar/master\n\nUpdate documentation to address CRAN notes",
    "time": 1768821503
  },
  "_maintainer": {
    "name": "Jakob Bossek",
    "email": "j.bossek@gmail.com",
    "login": "jakobbossek",
    "description": "",
    "uuid": 4079979
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 2.10",
      "role": "Depends"
    },
    {
      "package": "BBmisc",
      "version": ">= 1.6",
      "role": "Depends"
    },
    {
      "package": "smoof",
      "version": ">= 1.4",
      "role": "Depends"
    },
    {
      "package": "ParamHelpers",
      "version": ">= 1.1",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "checkmate",
      "version": ">= 1.1",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "version": ">= 0.12.16",
      "role": "Imports"
    },
    {
      "package": "parallelMap",
      "version": ">= 1.3",
      "role": "Imports"
    },
    {
      "package": "reshape2",
      "version": ">= 1.4.1",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "viridis",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "plot3D",
      "role": "Imports"
    },
    {
      "package": "plot3Drgl",
      "role": "Imports"
    },
    {
      "package": "scatterplot3d",
      "role": "Imports"
    },
    {
      "package": "plotly",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Imports"
    },
    {
      "package": "kableExtra",
      "role": "Imports"
    },
    {
      "package": "lazyeval",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 0.9.1",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "mlr",
      "role": "Suggests"
    },
    {
      "package": "mlbench",
      "role": "Suggests"
    },
    {
      "package": "randomForest",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    }
  ],
  "_owner": "jakobbossek",
  "_selfowned": true,
  "_usedby": 3,
  "_updates": [
    {
      "week": "2026-04",
      "n": 1
    }
  ],
  "_tags": [],
  "_topics": [
    "combinatorial-optimization",
    "evolutionary-algorithm",
    "evolutionary-algorithms",
    "evolutionary-strategy",
    "genetic-algorithm-framework",
    "metaheuristics",
    "multi-objective-optimization",
    "optimization",
    "optimization-framework",
    "cpp"
  ],
  "_stars": 43,
  "_contributors": [
    {
      "user": "jakobbossek",
      "count": 298,
      "uuid": 4079979
    },
    {
      "user": "thllwg",
      "count": 35,
      "uuid": 31413490
    },
    {
      "user": "villegar",
      "count": 3,
      "uuid": 5126692
    }
  ],
  "_userbio": {
    "uuid": 4079979,
    "type": "user",
    "name": "Jakob Bossek",
    "followers": 67
  },
  "_downloads": {
    "count": 603,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/ecr"
  },
  "_devurl": "https://github.com/jakobbossek/ecr2",
  "_searchresults": 114,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/ecr.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/jakobbossek/ecr2",
  "_realowner": "jakobbossek",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0",
      "date": "2016-08-23"
    },
    {
      "version": "1.0.1",
      "date": "2016-09-10"
    },
    {
      "version": "2.0.0",
      "date": "2017-04-26"
    },
    {
      "version": "2.1.0",
      "date": "2017-07-10"
    },
    {
      "version": "2.1.1",
      "date": "2023-03-08"
    },
    {
      "version": "2.1.1.1",
      "date": "2026-10-15"
    }
  ],
  "_exports": [
    "%dominates%",
    "%isDominatedBy%",
    "addAllGroup",
    "addUnionGroup",
    "approximateIdealPoint",
    "approximateNadirPoint",
    "approximateRefPoints",
    "approximateRefSets",
    "asemoa",
    "categorize",
    "computeAverageHausdorffDistance",
    "computeCrowdingDistance",
    "computeDistanceFromPointToSetOfPoints",
    "computeDominanceRanking",
    "computeGenerationalDistance",
    "computeHV",
    "computeHVContr",
    "computeIndicators",
    "computeInvertedGenerationalDistance",
    "dominated",
    "dominates",
    "doNondominatedSorting",
    "ecr",
    "emoaIndC",
    "emoaIndDelta",
    "emoaIndDeltap",
    "emoaIndEps",
    "emoaIndGD",
    "emoaIndHV",
    "emoaIndIGD",
    "emoaIndM1",
    "emoaIndMD",
    "emoaIndONVG",
    "emoaIndR1",
    "emoaIndR2",
    "emoaIndR3",
    "emoaIndSP",
    "evaluateFitness",
    "explode",
    "filterDuplicated",
    "gen",
    "genBin",
    "generateOffspring",
    "generatesMultipleChildren",
    "genPerm",
    "genReal",
    "getFront",
    "getIndividuals",
    "getNumberOfChildren",
    "getNumberOfParentsNeededForMating",
    "getPopulations",
    "getSize",
    "getStatistics",
    "getSupportedRepresentations",
    "implode",
    "initECRControl",
    "initLogger",
    "initParetoArchive",
    "initPopulation",
    "is.supported",
    "isDominated",
    "isEcrOperator",
    "isMaximallyDominated",
    "makeECRMonitor",
    "makeEMOAIndicator",
    "makeMutator",
    "makeOperator",
    "makeOptimizationTask",
    "makeRecombinator",
    "makeSelector",
    "makeTerminator",
    "mutate",
    "mutBitflip",
    "mutGauss",
    "mutInsertion",
    "mutInversion",
    "mutJump",
    "mutPolynomial",
    "mutScramble",
    "mutSwap",
    "mutUniform",
    "niceCellFormater",
    "nondominated",
    "normalize",
    "nsga2",
    "plotDistribution",
    "plotFront",
    "plotHeatmap",
    "plotScatter2d",
    "plotScatter3d",
    "plotStatistics",
    "recCrossover",
    "recIntermediate",
    "recombinate",
    "recOX",
    "recPMX",
    "recSBX",
    "recUnifCrossover",
    "reduceToSingleDataFrame",
    "registerECROperator",
    "replaceMuCommaLambda",
    "replaceMuPlusLambda",
    "selDomHV",
    "selDomNumberPlusHV",
    "selectForMating",
    "selectForSurvival",
    "selGreedy",
    "selNondom",
    "selRanking",
    "selRoulette",
    "selSimple",
    "selTournament",
    "setDominates",
    "setup",
    "setupECRDefaultMonitor",
    "smsemoa",
    "sortByObjective",
    "stopOnEvals",
    "stopOnIters",
    "stopOnMaxTime",
    "stopOnOptY",
    "toGG",
    "toLatex",
    "toParetoDf",
    "updateLogger",
    "updateParetoArchive",
    "which.dominated",
    "which.nondominated",
    "wrapChildren"
  ],
  "_datasets": [
    {
      "name": "mcMST",
      "title": "mcMST",
      "object": "mcMST",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "f1",
        "f2",
        "prob",
        "repl",
        "algorithm"
      ],
      "rows": 88448,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "addUnionGroup",
      "title": "Grouping helpers",
      "topics": [
        "addAllGroup",
        "addUnionGroup"
      ]
    },
    {
      "page": "reference_point_approximation",
      "title": "Reference point approximations",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "approximateIdealPoint",
        "approximateNadirPoint"
      ]
    },
    {
      "page": "approximateRefPoints",
      "title": "Helper function to estimate reference points",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "approximateRefPoints"
      ]
    },
    {
      "page": "approximateRefSets",
      "title": "Helper function to estimate reference set(s)",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "approximateRefSets"
      ]
    },
    {
      "page": "asemoa",
      "title": "Implementation of the NSGA-II EMOA algorithm by Deb",
      "topics": [
        "asemoa"
      ]
    },
    {
      "page": "categorize",
      "title": "Assign group membership based on another group membership",
      "topics": [
        "categorize"
      ]
    },
    {
      "page": "computeAverageHausdorffDistance",
      "title": "Average Hausdorff Distance computation",
      "topics": [
        "computeAverageHausdorffDistance"
      ]
    },
    {
      "page": "computeCrowdingDistance",
      "title": "Compute the crowding distance of a set of points",
      "topics": [
        "computeCrowdingDistance"
      ]
    },
    {
      "page": "computeDistanceFromPointToSetOfPoints",
      "title": "Computes distance between a single point and set of points",
      "topics": [
        "computeDistanceFromPointToSetOfPoints"
      ]
    },
    {
      "page": "computeDominanceRanking",
      "title": "Ranking of approximation sets",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "computeDominanceRanking"
      ]
    },
    {
      "page": "computeGenerationalDistance",
      "title": "Computes Generational Distance",
      "topics": [
        "computeGenerationalDistance"
      ]
    },
    {
      "page": "dominated_hypervolume",
      "title": "Functions for the calculation of the dominated hypervolume (contribution)",
      "topics": [
        "computeHV",
        "computeHVContr"
      ]
    },
    {
      "page": "computeIndicators",
      "title": "Computation of EMOA performance indicators",
      "topics": [
        "computeIndicators"
      ]
    },
    {
      "page": "computeInvertedGenerationalDistance",
      "title": "Computes Inverted Generational Distance",
      "topics": [
        "computeInvertedGenerationalDistance"
      ]
    },
    {
      "page": "dominated",
      "title": "Check for pareto dominance",
      "topics": [
        "dominated",
        "nondominated"
      ]
    },
    {
      "page": "dominates",
      "title": "Dominance relation check",
      "topics": [
        "%dominates%",
        "%isDominatedBy%",
        "dominates",
        "isDominated"
      ]
    },
    {
      "page": "doNondominatedSorting",
      "title": "Fast non-dominated sorting algorithm",
      "topics": [
        "doNondominatedSorting"
      ]
    },
    {
      "page": "ecr",
      "title": "Interface to ecr similar to the optim function",
      "topics": [
        "ecr"
      ]
    },
    {
      "page": "ecr_parallelization",
      "title": "Parallelization in ecr",
      "topics": [
        "ecr_parallelization"
      ]
    },
    {
      "page": "ecr_result",
      "title": "Result object",
      "topics": [
        "ecr_result"
      ]
    },
    {
      "page": "emoa_indicators",
      "title": "EMOA performance indicators",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "emoaIndC",
        "emoaIndDelta",
        "emoaIndDeltap",
        "emoaIndEps",
        "emoaIndGD",
        "emoaIndHV",
        "emoaIndIGD",
        "emoaIndM1",
        "emoaIndMD",
        "emoaIndONVG",
        "emoaIndR1",
        "emoaIndR2",
        "emoaIndR3",
        "emoaIndSP"
      ]
    },
    {
      "page": "evaluateFitness",
      "title": "Computes the fitness value(s) for each individual of a given set",
      "topics": [
        "evaluateFitness"
      ]
    },
    {
      "page": "explode",
      "title": "Explode/implode data frame column(s)",
      "topics": [
        "explode",
        "implode"
      ]
    },
    {
      "page": "filterDuplicated",
      "title": "Filter approximation sets by duplicate objective vectors",
      "topics": [
        "filterDuplicated",
        "filterDuplicated.data.frame",
        "filterDuplicated.ecr_multi_objective_result",
        "filterDuplicated.list",
        "filterDuplicated.matrix"
      ]
    },
    {
      "page": "generateOffspring",
      "title": "Helper functions for offspring generation",
      "topics": [
        "generateOffspring",
        "mutate",
        "recombinate"
      ]
    },
    {
      "page": "generatesMultipleChildren",
      "title": "Does the recombinator generate multiple children?",
      "topics": [
        "generatesMultipleChildren"
      ]
    },
    {
      "page": "generators",
      "title": "Population generators",
      "concept": [
        "generators"
      ],
      "topics": [
        "gen",
        "genBin",
        "generators",
        "genPerm",
        "genReal"
      ]
    },
    {
      "page": "getFront",
      "title": "Extract fitness values from Pareto archive",
      "topics": [
        "getFront"
      ]
    },
    {
      "page": "getIndividuals",
      "title": "Extract individuals from Pareto archive",
      "concept": [
        "ParetoArchive"
      ],
      "topics": [
        "getIndividuals"
      ]
    },
    {
      "page": "getNumberOfChildren",
      "title": "Number of children",
      "topics": [
        "getNumberOfChildren"
      ]
    },
    {
      "page": "getNumberOfParentsNeededForMating",
      "title": "Number of parents needed for mating",
      "topics": [
        "getNumberOfParentsNeededForMating"
      ]
    },
    {
      "page": "getPopulationFitness",
      "title": "Access to logged population fitness",
      "concept": [
        "logging"
      ],
      "topics": [
        "getPopulationFitness"
      ]
    },
    {
      "page": "getPopulations",
      "title": "Access to logged populations",
      "concept": [
        "logging"
      ],
      "topics": [
        "getPopulations"
      ]
    },
    {
      "page": "getSize",
      "title": "Get size of Pareto-archive",
      "concept": [
        "ParetoArchive"
      ],
      "topics": [
        "getSize"
      ]
    },
    {
      "page": "getStatistics",
      "title": "Access the logged statistics",
      "concept": [
        "logging"
      ],
      "topics": [
        "getStatistics"
      ]
    },
    {
      "page": "getSupportedRepresentations",
      "title": "Get supported representations",
      "topics": [
        "getSupportedRepresentations"
      ]
    },
    {
      "page": "initECRControl",
      "title": "Control object generator",
      "topics": [
        "initECRControl"
      ]
    },
    {
      "page": "initLogger",
      "title": "Initialize a log object",
      "concept": [
        "logging"
      ],
      "topics": [
        "initLogger"
      ]
    },
    {
      "page": "initParetoArchive",
      "title": "Initialize Pareto Archive",
      "concept": [
        "ParetoArchive"
      ],
      "topics": [
        "initParetoArchive"
      ]
    },
    {
      "page": "initPopulation",
      "title": "Helper function to build initial population",
      "topics": [
        "initPopulation"
      ]
    },
    {
      "page": "is.supported",
      "title": "Check if ecr operator supports given representation",
      "topics": [
        "is.supported"
      ]
    },
    {
      "page": "isEcrOperator",
      "title": "Check if given function is an ecr operator",
      "topics": [
        "isEcrOperator"
      ]
    },
    {
      "page": "makeECRMonitor",
      "title": "Factory method for monitor objects",
      "topics": [
        "makeECRMonitor"
      ]
    },
    {
      "page": "makeEMOAIndicator",
      "title": "Constructor for EMOA indicators",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "makeEMOAIndicator"
      ]
    },
    {
      "page": "makeMutator",
      "title": "Construct a mutation operator",
      "topics": [
        "makeMutator"
      ]
    },
    {
      "page": "makeOperator",
      "title": "Construct evolutionary operator",
      "topics": [
        "makeOperator"
      ]
    },
    {
      "page": "makeOptimizationTask",
      "title": "Creates an optimization task",
      "topics": [
        "makeOptimizationTask"
      ]
    },
    {
      "page": "makeRecombinator",
      "title": "Construct a recombination operator",
      "topics": [
        "makeRecombinator"
      ]
    },
    {
      "page": "makeSelector",
      "title": "Construct a selection operator",
      "topics": [
        "makeSelector"
      ]
    },
    {
      "page": "makeTerminator",
      "title": "Generate stopping condition",
      "topics": [
        "makeTerminator"
      ]
    },
    {
      "page": "mcMST",
      "title": "mcMST",
      "topics": [
        "mcMST"
      ]
    },
    {
      "page": "mutBitflip",
      "title": "Bitplip mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutBitflip"
      ]
    },
    {
      "page": "mutGauss",
      "title": "Gaussian mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutGauss"
      ]
    },
    {
      "page": "mutInsertion",
      "title": "Insertion mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutInsertion"
      ]
    },
    {
      "page": "mutInversion",
      "title": "Inversion mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutInversion"
      ]
    },
    {
      "page": "mutJump",
      "title": "Jump mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutJump"
      ]
    },
    {
      "page": "mutPolynomial",
      "title": "Polynomial mutation",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutPolynomial"
      ]
    },
    {
      "page": "mutScramble",
      "title": "Scramble mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutScramble"
      ]
    },
    {
      "page": "mutSwap",
      "title": "Swap mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutSwap"
      ]
    },
    {
      "page": "mutUniform",
      "title": "Uniform mutator",
      "concept": [
        "mutators"
      ],
      "topics": [
        "mutUniform"
      ]
    },
    {
      "page": "niceCellFormater",
      "title": "Formatter for table cells of LaTeX tables",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "niceCellFormater"
      ]
    },
    {
      "page": "normalize",
      "title": "Normalize approximations set(s)",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "normalize"
      ]
    },
    {
      "page": "nsga2",
      "title": "Implementation of the NSGA-II EMOA algorithm by Deb",
      "topics": [
        "nsga2"
      ]
    },
    {
      "page": "plotDistribution",
      "title": "Plot distribution of EMOA indicators",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "plotDistribution"
      ]
    },
    {
      "page": "plotFront",
      "title": "Draw scatterplot of Pareto-front approximation",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "plotFront"
      ]
    },
    {
      "page": "plotHeatmap",
      "title": "Plot heatmap",
      "topics": [
        "plotHeatmap"
      ]
    },
    {
      "page": "plotScatter2d",
      "title": "Visualize bi-objective Pareto-front approximations",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "plotScatter2d"
      ]
    },
    {
      "page": "plotScatter3d",
      "title": "Visualize three-objective Pareto-front approximations",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "plotScatter3d"
      ]
    },
    {
      "page": "plotStatistics",
      "title": "Generate line plot of logged statistics",
      "topics": [
        "plotStatistics"
      ]
    },
    {
      "page": "recCrossover",
      "title": "One-point crossover recombinator",
      "concept": [
        "recombinators"
      ],
      "topics": [
        "recCrossover"
      ]
    },
    {
      "page": "recIntermediate",
      "title": "Indermediate recombinator",
      "concept": [
        "recombinators"
      ],
      "topics": [
        "recIntermediate"
      ]
    },
    {
      "page": "recOX",
      "title": "Ordered-Crossover (OX) recombinator",
      "concept": [
        "recombinators"
      ],
      "topics": [
        "recOX"
      ]
    },
    {
      "page": "recPMX",
      "title": "Partially-Mapped-Crossover (PMX) recombinator",
      "concept": [
        "recombinators"
      ],
      "topics": [
        "recPMX"
      ]
    },
    {
      "page": "recSBX",
      "title": "Simulated Binary Crossover (SBX) recombinator",
      "concept": [
        "recombinators"
      ],
      "topics": [
        "recSBX"
      ]
    },
    {
      "page": "recUnifCrossover",
      "title": "Uniform crossover recombinator",
      "concept": [
        "recombinators"
      ],
      "topics": [
        "recUnifCrossover"
      ]
    },
    {
      "page": "reduceToSingleDataFrame",
      "title": "Combine multiple data frames into a single data.frame",
      "topics": [
        "reduceToSingleDataFrame"
      ]
    },
    {
      "page": "registerECROperator",
      "title": "Register operators to control object",
      "topics": [
        "registerECROperator"
      ]
    },
    {
      "page": "replace",
      "title": "(mu + lambda) selection",
      "topics": [
        "replace",
        "replaceMuCommaLambda",
        "replaceMuPlusLambda"
      ]
    },
    {
      "page": "selDomHV",
      "title": "Dominated Hypervolume selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selDomHV"
      ]
    },
    {
      "page": "selDomNumberPlusHV",
      "title": "Modified dominated Hypervolume selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selDomNumberPlusHV"
      ]
    },
    {
      "page": "select",
      "title": "Select individuals",
      "topics": [
        "select",
        "selectForMating",
        "selectForSurvival"
      ]
    },
    {
      "page": "selGreedy",
      "title": "Simple selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selGreedy"
      ]
    },
    {
      "page": "selNondom",
      "title": "Non-dominated sorting selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selNondom"
      ]
    },
    {
      "page": "selRanking",
      "title": "Rank Selection Operator",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selRanking"
      ]
    },
    {
      "page": "selRoulette",
      "title": "Roulette-wheel / fitness-proportional selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selRoulette"
      ]
    },
    {
      "page": "selSimple",
      "title": "Simple (naive) selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selSimple"
      ]
    },
    {
      "page": "selTournament",
      "title": "k-Tournament selector",
      "concept": [
        "selectors"
      ],
      "topics": [
        "selTournament"
      ]
    },
    {
      "page": "setDominates",
      "title": "Check if one set is better than another",
      "topics": [
        "setDominates"
      ]
    },
    {
      "page": "setup",
      "title": "Set up parameters for evolutionary operator",
      "topics": [
        "setup"
      ]
    },
    {
      "page": "setupECRDefaultMonitor",
      "title": "Default monitor",
      "topics": [
        "setupECRDefaultMonitor"
      ]
    },
    {
      "page": "smsemoa",
      "title": "Implementation of the SMS-EMOA by Emmerich et al",
      "topics": [
        "smsemoa"
      ]
    },
    {
      "page": "sortByObjective",
      "title": "Sort Pareto-front approximation by objective",
      "topics": [
        "sortByObjective",
        "sortByObjective.data.frame",
        "sortByObjective.ecr_multi_objective_result",
        "sortByObjective.list",
        "sortByObjective.matrix"
      ]
    },
    {
      "page": "stoppingConditions",
      "title": "Stopping conditions",
      "concept": [
        "stopping conditions"
      ],
      "topics": [
        "stopOnEvals",
        "stopOnIters",
        "stopOnMaxTime",
        "stopOnOptY",
        "stoppingConditions"
      ]
    },
    {
      "page": "toGG",
      "title": "Transform to long format",
      "topics": [
        "toGG"
      ]
    },
    {
      "page": "toLatex",
      "title": "Export results of statistical tests to LaTeX table(s)",
      "concept": [
        "EMOA performance assessment tools"
      ],
      "topics": [
        "toLatex",
        "toLatex.data.frame",
        "toLatex.list"
      ]
    },
    {
      "page": "toParetoDf",
      "title": "Convert matrix to Pareto front data frame",
      "topics": [
        "toParetoDf"
      ]
    },
    {
      "page": "transformFitness",
      "title": "Fitness transformation / scaling",
      "topics": [
        "transformFitness"
      ]
    },
    {
      "page": "updateLogger",
      "title": "Update the log",
      "concept": [
        "logging"
      ],
      "topics": [
        "updateLogger"
      ]
    },
    {
      "page": "updateParetoArchive",
      "title": "Update Pareto Archive",
      "concept": [
        "ParetoArchive"
      ],
      "topics": [
        "updateParetoArchive"
      ]
    },
    {
      "page": "which.dominated",
      "title": "Determine which points of a set are (non)dominated",
      "topics": [
        "isMaximallyDominated",
        "which.dominated",
        "which.nondominated"
      ]
    },
    {
      "page": "wrapChildren",
      "title": "Wrap the individuals constructed by a recombination operator",
      "topics": [
        "wrapChildren"
      ]
    }
  ],
  "_readme": "https://github.com/jakobbossek/ecr2/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "backports",
    "base64enc",
    "BBmisc",
    "bslib",
    "cachem",
    "checkmate",
    "cli",
    "cpp11",
    "crosstalk",
    "curl",
    "data.table",
    "digest",
    "dplyr",
    "evaluate",
    "farver",
    "fastmap",
    "fastmatch",
    "fontawesome",
    "fs",
    "generics",
    "ggplot2",
    "glue",
    "gridExtra",
    "gtable",
    "highr",
    "htmltools",
    "htmlwidgets",
    "httr",
    "isoband",
    "jquerylib",
    "jsonlite",
    "kableExtra",
    "knitr",
    "labeling",
    "later",
    "lazyeval",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "misc3d",
    "openssl",
    "otel",
    "parallelMap",
    "ParamHelpers",
    "pillar",
    "pkgconfig",
    "plot3D",
    "plot3Drgl",
    "plotly",
    "plyr",
    "promises",
    "purrr",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "RcppArmadillo",
    "reshape2",
    "rgl",
    "rlang",
    "rmarkdown",
    "rstudioapi",
    "S7",
    "sass",
    "scales",
    "scatterplot3d",
    "smoof",
    "stringi",
    "stringr",
    "svglite",
    "sys",
    "systemfonts",
    "textshaping",
    "tibble",
    "tidyr",
    "tidyselect",
    "tinytex",
    "utf8",
    "vctrs",
    "viridis",
    "viridisLite",
    "withr",
    "xfun",
    "xml2",
    "yaml"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "introduction.Rmd",
      "filename": "introduction.html",
      "title": "Brief introduction to ecr",
      "author": "Jakob Bossek",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A gentle introduction",
        "Writing the evolutionary loop by hand",
        "Black-box approach"
      ],
      "created": "2017-03-29 09:51:54",
      "modified": "2019-10-23 11:51:50",
      "commits": 5
    },
    {
      "source": "multiobjective.Rmd",
      "filename": "multiobjective.html",
      "title": "Multi-Objective Evolutionary Algorithms",
      "author": "Thorben Hellweg",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Multiobjective Optimization Problems",
        "Black-box approach",
        "White-box approach"
      ],
      "created": "2019-10-23 11:51:50",
      "modified": "2019-10-23 11:51:50",
      "commits": 1
    }
  ],
  "_score": 7.945645812019365,
  "_indexed": true,
  "_nocasepkg": "ecr",
  "_universes": [
    "jakobbossek"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-10-19T11:58:38.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/7d9c860ae852783964d7d6b2ee3d7d71c35ddd56610aa4581699e40bdfabb0ff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-10-19T11:59:03.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/ab3e661a9cba00ade7f1609f9720e848777b2ef16eb0819f770775222d887e83",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-10-19T11:58:40.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/82ae4dbd129135238a23e5b334b264057f71a2cb4d0f7e0ad2b081f8a42c6bf2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-10-19T11:58:41.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/61d2a6e54e15941beca1a641e8083297eaa0bff38400129fb91713dbf7e3b711",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-10-19T11:57:38.000Z",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/75ba929b05ec72ad4d10d5766e9f9d4d8dd01180fd7514dadfbd601c0a7cb174",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-10-19T11:59:05.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/9c99db8ee1813b412172e99f7433c6824562c8779fd1bd46fbedb416fc000d2e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-10-19T11:58:13.000Z",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/0a980ab8ff84a26bd8caa2a4ead7f8ed202a99c7d5581b281eabe1375e7def40",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-10-19T11:59:45.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/484d8251f720ddcffd11dcd56b0da8950a43cb21cdd98d6edf3b8363c9e3a0e6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "2.1.1",
      "date": "2026-10-19T11:58:25.000Z",
      "arch": "emscripten",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/6ac07220f1163b1bc8f63e6a36c7d60b2866c77752a8c01bd87320fd56aee277",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-10-19T12:00:36.000Z",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/b85cc7113f64fef1a921b2e1aac2e2d421b2d88c33c8fc7c23a740f017609345",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-10-19T11:56:59.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/c8cdb87e995ac9c0d247fe7671bdd7ab0ee02ccde91ab2169759a4296c08e24a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-10-19T11:56:49.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/bc13074b9741c2f6c62d853c9cd46d33e2970c55b4e8108f588c66bf0fdb0604",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-10-19T12:00:50.000Z",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/0f8962456c136b1a6a147aa3a55609497d920a49eb327e3007adc591123982ab",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-10-19T11:56:50.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "https://r2.ropensci.org/a6b9d5b8bc50c799cec685d5095279bbf941c9de0deacddcd1bf1023e2b73d3e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/39247207332"
    }
  ]
}