The SUMO toolbox  2018a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Public Attributes | List of all members
ParetoFront Class Reference

Updates the cells (integral bounds) for the pareto front. More...

Public Member Functions

function ParetoFront (var varargin)
 Class constructor. More...
 
function updateParetoFront (var values)
 Called when new data arrives. More...
 
function getLevelsOfImprovement ()
 Gets the current Level of Improvement (LoI) bounds. More...
 
function setLevelsOfImprovement (var LoI)
 Sets the Level of Improvement (LoI) strategy. More...
 
function hypervolume ()
 Calculates the hyper volume of the pareto front w.r.t. More...
 

Public Attributes

const var MATLAB_BINARY
 divide longest edge in two More...
 
const var C_WFG
 
var paretoFront
 actual pareto front More...
 
var paretoFrontIdx
 indices to sorted pareto front More...
 
var hypervolumeR
 hypervolume reference point (should dominate pareto front at all times) More...
 
var lbIdx
 
var ubIdx
 
var signs
 
var lbIdxDomAugm
 
var ubIdxDomAugm
 
var signsDomAugm
 

Detailed Description

Updates the cells (integral bounds) for the pareto front.

Refactored from PoI and EI to get this code into one place. Could have been a simple function, but has some persistent state in the form of a logger, some profilers and the previous pareto front.

Todo:
ideas to improve the speed: update the front on new samples instead of recalculating everything, do a binarysearch (per dimension, not octree or branch&bound-like), this comes close to classification (finding the boundary where condition test 1 or 0) -> perhaps this can be solved using an SVM classifier ? :-)

Construct separately with: pf = ParetoFront(levelsOfImprovement);

Constructor & Destructor Documentation

function ParetoFront ( var  varargin)
inline

Class constructor.

Returns
instance of the class.
Todo:
new paretofront metric (convergence measure)

Member Function Documentation

function getLevelsOfImprovement ( )
inline

Gets the current Level of Improvement (LoI) bounds.

This may change as the LoI strategy advances.

function hypervolume ( )
inline

Calculates the hyper volume of the pareto front w.r.t.

reference point R

retval hv hyper volume (higher is better)

function setLevelsOfImprovement ( var  LoI)
inline

Sets the Level of Improvement (LoI) strategy.

This invalidates the current paretofront bounds and updateParetoFront needs to be called again.

Parameters
LoILoI vector
function updateParetoFront ( var  values)
inline

Called when new data arrives.

If needed, the pareto front cells are recalculated.

Todo:
debug plot of the pareto front. If more components are going to use it then it should be put in SUMO::runSampling (or samplemanager::add) but for now, all multiobjective methods use the ParetoFront class

Member Data Documentation

const var C_WFG
var hypervolumeR

hypervolume reference point (should dominate pareto front at all times)

var lbIdx
var lbIdxDomAugm
const var MATLAB_BINARY

divide longest edge in two

var paretoFront

actual pareto front

var paretoFrontIdx

indices to sorted pareto front

var signs
var signsDomAugm
var ubIdx
var ubIdxDomAugm

The documentation for this class was generated from the following file: