class documentation

class IndicatorFront:

Constructor: IndicatorFront(list_attribute, NDA)

View In Hierarchy

with hypervolume_improvement method based on a varying empirical front.

The front is either all non-dominated points from all but one kernels 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]
Method __init__ getattr(moes, list_attribute) contains the list to create the front.
Method hypervolume_improvement Undocumented
Method set_kernel Set empirical front for evolving the given kernel.
Instance Variable front Undocumented
Instance Variable kernel Undocumented
Instance Variable list_attribute Undocumented
Instance Variable NDA Undocumented
def __init__(self, list_attribute=None, NDA=None):

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

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

def hypervolume_improvement(self, point):

Undocumented

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

Set empirical front for evolving the given kernel.

By default, make changes only when kernel has changed.

Details: kernel may also be the index of the kernel in moes. moes.reference_point and, in case, its attribute with name self.list_attribute: str is used.

front =

Undocumented

kernel =

Undocumented

list_attribute =

Undocumented

NDA =

Undocumented