{
  "_id": "6a13fb57acfb0bcc41d35a04",
  "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-05-25 07:27:34 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]",
  "MD5sum": "73d29372d2b7c23043e4bcc1ee2f9730",
  "_user": "jakobbossek",
  "_type": "src",
  "_file": "ecr_2.1.1.tar.gz",
  "_fileid": "ac57fd976fd3f9e667b0f1882f66fe70ba95d85865db92210dab7b41c1a18d70",
  "_filesize": 1829193,
  "_sha256": "ac57fd976fd3f9e667b0f1882f66fe70ba95d85865db92210dab7b41c1a18d70",
  "_created": "2026-05-25T07:27:34.000Z",
  "_published": "2026-05-25T07:33:43.309Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77673565750,
      "time": 189,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7193714417"
    },
    {
      "job": 77673565737,
      "time": 209,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7193719203"
    },
    {
      "job": 77673565776,
      "time": 201,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193717221"
    },
    {
      "job": 77673565753,
      "time": 214,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193720018"
    },
    {
      "job": 77673565764,
      "time": 144,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7193710945"
    },
    {
      "job": 77673565746,
      "time": 217,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7193729374"
    },
    {
      "job": 77673565754,
      "time": 98,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193696540"
    },
    {
      "job": 77673565757,
      "time": 318,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193746471"
    },
    {
      "job": 77672992009,
      "time": 292,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193666951"
    },
    {
      "job": 77673565722,
      "time": 147,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193703827"
    },
    {
      "job": 77673565759,
      "time": 153,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7193705119"
    },
    {
      "job": 77673565730,
      "time": 152,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7193705417"
    },
    {
      "job": 77673565728,
      "time": 139,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7193701757"
    }
  ],
  "_buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_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
  },
  "_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": 2,
  "_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"
  },
  "_downloads": {
    "count": 343,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/ecr"
  },
  "_devurl": "https://github.com/jakobbossek/ecr2",
  "_searchresults": 99,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/ecr.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_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"
    }
  ],
  "_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": "14.2.0-4ubuntu2~24.04.1",
      "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.708284896224761,
  "_indexed": true,
  "_nocasepkg": "ecr",
  "_universes": [
    "jakobbossek"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-05-25T07:30:35.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "1619aa1176765c3e81a1706d072a9c5c4cba7a0ce4ab09f59b652ecaef846d6a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-05-25T07:30:45.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "4e440f6d38254992e833b0fcc40e8a0e69bb147d4c43cbe7b7b084d75aab8b4b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-05-25T07:30:46.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "de588e287018c392ce51286856dab6943fd77f1e79a44e08424f479967121ee9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "2.1.1",
      "date": "2026-05-25T07:30:52.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "a581fee5f3859b483edb58f182c2f3bf89ba598e40343ec122370a7f30fe97d5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-05-25T07:30:14.000Z",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "7ee6151e9ff314d4dec4cb4f11430674489258c458ffd8bdba89299ab32eb9dd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-05-25T07:31:02.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "5cc4374e0c90d486faec7ccd275bdb227ad4bb641207dd066a86992953123a36",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-05-25T07:29:29.000Z",
      "arch": "aarch64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "f08a4af64a684ba75dc90367a315fe0f1834b73d453b8dcdfc5ffa9e70ff9937",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "2.1.1",
      "date": "2026-05-25T07:31:10.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "92a6d3da4080908997b83aa33a418b0024403575bfedaf06233ab18f55536840",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "2.1.1",
      "date": "2026-05-25T07:30:24.000Z",
      "arch": "emscripten",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "77436a514ee30ffeead6b4fde276375425fa94b0a2c2ed71191836ddca2107fe",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-05-25T07:29:11.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "a2ef540b4649227d9cc0ed6b5446312d4a5db6873ef7aa6d2f1d669e2653733e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-05-25T07:29:12.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "4ed98014b7e7e36ffc1b870c0c5c3b412c55f9312033d3869d21de4093ca924e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "2.1.1",
      "date": "2026-05-25T07:29:03.000Z",
      "arch": "x86_64",
      "commit": "ae5032dbd34a793c5957455928e31c20fdd425f0",
      "fileid": "b4f63442db64517cb32faaf41a89553d6900c7a1659ec2641a6032cb88527030",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jakobbossek/actions/runs/26388687492"
    }
  ]
}