plotGPareto function

Plot multi-objective optimization results and post-processing

Plot multi-objective optimization results and post-processing

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) )

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:

  • 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.

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)

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.

  • Maintainer: Mickael Binois
  • License: GPL-3
  • Last published: 2024-01-26