plotGPareto | R Documentation |
Display results of multi-objective optimization returned by either GParetoptim
or easyGParetoptim
,
possibly completed with various post-processings of uncertainty quantification.
plotGPareto( res, add = FALSE, UQ_PF = FALSE, UQ_PS = FALSE, UQ_dens = FALSE, lower = NULL, upper = NULL, control = list(pch = 20, col = "red", PF.line.col = "cyan", PF.pch = 17, PF.points.col = "blue", VE.line.col = "cyan", nsim = 100, npsim = 1500, gridtype = "runif", displaytype = "persp", printVD = TRUE, use.rgl = TRUE, bounds = NULL, meshsize3d = 50, theta = -25, phi = 10, add_denoised_PF = TRUE) )
res |
list returned by |
add |
logical; if |
UQ_PF |
logical; for 2 objectives, if |
UQ_PS |
logical; if |
UQ_dens |
logical; for 2D problems, if |
lower |
optional vector of lower bounds for the variables.
Necessary if |
upper |
optional vector of upper bounds for the variables.
Necessary if |
control |
optional list, see details. |
By default, plotGPareto
displays the Pareto front delimiting the non-dominated area with 2 objectives,
by a perspective view with 3 objectives and using parallel coordinates with more objectives.
Setting one or several of UQ_PF, UQ_PS and UQ_dens allows to run and display post-processing tools that assess
the precision and confidence of the optimization run, either in the objective (UQ_PF
) or the variable spaces
(UQ_PS
, UQ_dens
). Note that these options are computationally intensive.
Various parameters can be used for the display of results and/or passed to subsequent function:
col
, pch
correspond the color and plotting character for observations,
PF.line.col
, PF.pch
, PF.points.col
define the color of the line denoting the current Pareto front,
the plotting character and color of non-dominated observations, respectively,
nsim
, npsim
and gridtype
define the number of conditional simulations performed with [DiceKriging::simulate()]
along with the number of simulation points (in case UQ_PF
and/or UQ_dens
are TRUE
),
gridtype
to define how simulation points are selected;
alternatives are 'runif
' (default) for uniformly sampled points,
'LHS
' for a Latin Hypercube design using lhsDesign
and
'grid2d
' for a two dimensional grid,
f1lim
, f2lim
can be passed to CPF
,
resolution
, option
, nintegpoints
are to be passed to plot_uncertainty
displaytype
type of display for UQ_dens
, see plot.kde
,
printVD
logical, if TRUE
and UQ_PF
is TRUE
as well, print the value of the Vorob'ev deviation,
use.rgl
if TRUE
, use rgl for 3D plots, else persp
is used,
bounds
if use.rgl
is TRUE
, optional 2*nobj
matrix of boundaries, see plotParetoEmp
meshsize3d
mesh size of the perspective view for 3-objective problems,
theta
, phi
angles for perspective view of 3-objective problems,
add_denoised_PF
if TRUE
, in the noisy case, add the Pareto front from the estimated mean of the observations.
M. Binois, D. Ginsbourger and O. Roustant (2015), Quantifying Uncertainty on Pareto Fronts with Gaussian process conditional simulations,
European Journal of Operational Research, 243(2), 386-394.
A. Inselberg (2009), Parallel coordinates, Springer.
## Not run: #--------------------------------------------------------------------------- # 2D objective function #--------------------------------------------------------------------------- set.seed(25468) n_var <- 2 fname <- P1 lower <- rep(0, n_var) upper <- rep(1, n_var) res <- easyGParetoptim(fn=fname, lower=lower, upper=upper, budget=15, control=list(method="EHI", inneroptim="pso", maxit=20)) ## Pareto front only plotGPareto(res) ## With post-processing plotGPareto(res, UQ_PF = TRUE, UQ_PS = TRUE, UQ_dens = TRUE) ## With noise noise.var <- c(10, 2) funnoise <- function(x) {P1(x) + sqrt(noise.var)*rnorm(n=2)} res2 <- easyGParetoptim(fn=funnoise, lower=lower, upper=upper, budget=15, noise.var=noise.var, control=list(method="EHI", inneroptim="pso", maxit=20)) plotGPareto(res2, control=list(add_denoised_PF=FALSE)) # noisy observations only plotGPareto(res2) #--------------------------------------------------------------------------- # 3D objective function #--------------------------------------------------------------------------- set.seed(1) n_var <- 3 fname <- DTLZ1 lower <- rep(0, n_var) upper <- rep(1, n_var) res3 <- easyGParetoptim(fn=fname, lower=lower, upper=upper, budget=50, control=list(method="EHI", inneroptim="pso", maxit=20)) ## Pareto front only plotGPareto(res3) ## With noise noise.var <- c(10, 2, 5) funnoise <- function(x) {fname(x) + sqrt(noise.var)*rnorm(n=3)} res4 <- easyGParetoptim(fn=funnoise, lower=lower, upper=upper, budget=100, noise.var=noise.var, control=list(method="EHI", inneroptim="pso", maxit=20)) plotGPareto(res4, control=list(add_denoised_PF=FALSE)) # noisy observations only plotGPareto(res4) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.