R/paretoObjectivesNsga2.R
paretoObjectivesNsga2.RdEstimate multi-objective Pareto front using NSGAII
paretoObjectivesNsga2(
MODEL,
objective = hydromad.getOption("objective"),
control = hydromad.getOption("nsga2.control")
)a model specification created by hydromad. It
should not be fully specified, i.e one or more parameters should be defined
by ranges of values rather than exact values.
objective functions to maximise, as a list with elements as
function(Q, X, ...). See objFunVal.
arguments for nsga2 function. See nsga2.
runlist of models on Pareto front
data(Cotter)
x <- Cotter[1:1000]
## IHACRES CWI model with exponential unit hydrograph
## an unfitted model, with ranges of possible parameter values
modx <- hydromad(x,
sma = "cwi", routing = "expuh",
tau_s = c(2, 100), v_s = c(0, 1)
)
## Multi-objective optimisation
front <- paretoObjectivesNsga2(modx, objective = list(hmadstat("r.sq.log"), hmadstat("r.squared")))
#> Loading required namespace: mco
## Pairwise plot of parameters on Pareto front
splom(coef(front))
## Calculate objectives
stats <- t(sapply(front, objFunVal, objective = list(hmadstat("r.sq.log"), hmadstat("r.squared"))))
splom(stats)