| plotGPareto {GPareto} | R Documentation |
Plot multi-objective optimization results and post-processing
Description
Display results of multi-objective optimization returned by either GParetoptim or easyGParetoptim,
possibly completed with various post-processings of uncertainty quantification.
Usage
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)
)
Arguments
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. |
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,pchcorrespond the color and plotting character for observations, -
PF.line.col,PF.pch,PF.points.coldefine the color of the line denoting the current Pareto front, the plotting character and color of non-dominated observations, respectively, -
nsim,npsimandgridtypedefine the number of conditional simulations performed with [DiceKriging::simulate()] along with the number of simulation points (in caseUQ_PFand/orUQ_densareTRUE), -
gridtypeto define how simulation points are selected; alternatives are 'runif' (default) for uniformly sampled points, 'LHS' for a Latin Hypercube design usinglhsDesignand 'grid2d' for a two dimensional grid, -
f1lim,f2limcan be passed toCPF, -
resolution,option,nintegpointsare to be passed toplot_uncertainty -
displaytypetype of display forUQ_dens, seeplot.kde, -
printVDlogical, ifTRUEandUQ_PFisTRUEas well, print the value of the Vorob'ev deviation, -
use.rglifTRUE, use rgl for 3D plots, elseperspis used, -
boundsifuse.rglisTRUE, optional2*nobjmatrix of boundaries, seeplotParetoEmp -
meshsize3dmesh size of the perspective view for 3-objective problems, -
theta,phiangles for perspective view of 3-objective problems, -
add_denoised_PFifTRUE, in the noisy case, add the Pareto front from the estimated mean of the observations.
References
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.
Examples
## 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)