Package comocma :: Module como :: Class IndicatorFront
[hide private]
[frames] | no frames]

Class IndicatorFront

source code

with `hypervolume_improvement` method based on a varying empirical front.

The front is either all kernels but one or based on the `list_attribute` of `moes` (like `archive`) as given on initialization.

Usage:

   >>> import comocma, cma
   >>> list_of_solvers_instances = comocma.get_cmas(13 * [5 * [0.4]], 0.7, {'verbose':-9})
   >>> fitness = comocma.FitFun(cma.ff.sphere, lambda x: cma.ff.sphere(x-1))
   >>> moes = comocma.Sofomore(list_of_solvers_instances, [11, 11])
   >>> moes.front_observed = IndicatorFront()
   >>> moes.optimize(fitness, iterations=47) # doctest:+ELLIPSIS
   Iterat #Fevals   Hypervolume   axis ratios   sigmas   min&max stds***
   >>> moes = comocma.Sofomore(list_of_solvers_instances, [11, 11])
   >>> moes.front_observed = IndicatorFront(list_attribute='archive')
   >>> moes.optimize(fitness, iterations=37) # doctest:+ELLIPSIS
   Iterat #Fevals   Hypervolume   axis ratios   sigmas   min&max stds***
   >>> moes.front_observed.set_kernel(moes[3], moes)
   >>> f_points = [moes.front_observed.hypervolume_improvement(point)
   ...             for point in moes[3]._last_offspring_f_values] 
Instance Methods [hide private]
 
__init__(self, list_attribute=None, NDA=None)
``getattr(moes, list_attribute)`` contains the list to create the front.
source code
 
hypervolume_improvement(self, point) source code
 
set_kernel(self, kernel, moes, lazy=True)
Set empirical front for evolving the given kernel.
source code
Method Details [hide private]

__init__(self, list_attribute=None, NDA=None)
(Constructor)

source code 

``getattr(moes, list_attribute)`` contains the list to create the front.

`NDA` is a non-dominated archive with a `hypervolume_improvement` method.

set_kernel(self, kernel, moes, lazy=True)

source code 

Set empirical front for evolving the given kernel.

By default, make changes only when kernel has changed.

Details: ``moes.reference_point`` and, in case, its attribute with name `self.list_attribute: str` is used.