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 GParetoptim or easyGParetoptim,

add

logical; if TRUE adds the first graphical output to an already existing plot; if FALSE, (default) starts a new plot,

UQ_PF

logical; for 2 objectives, if TRUE perform a quantification of uncertainty on the Pareto front to display the symmetric deviation function with plotSymDevFun (cannot be added to existing graph),

UQ_PS

logical; if TRUE call plot_uncertainty representing the probability of non-domination in the variable space,

UQ_dens

logical; for 2D problems, if TRUE call ParetoSetDensity to estimate and display the density of Pareto optimal points in the variable space,

lower

optional vector of lower bounds for the variables. Necessary if UQ_PF and/or UQ_PS are TRUE (if not provided, variables are supposed to vary between 0 and 1),

upper

optional vector of upper bounds for the variables. Necessary if UQ_PF and/or UQ_PS are TRUE (if not provided, variables are supposed to vary between 0 and 1),

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:

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)

[Package GPareto version 1.1.8 Index]