desdeo.method

This package contains methods for interactively solving multi-objective optimisation problems. Currently this includes the NIMBUS methods and several variants of the NAUTILUS method.

class desdeo.method.ENAUTILUS(method, method_class)[source]

Bases: desdeo.method.NAUTILUS.NAUTILUS

__abstractmethods__ = frozenset({})
__init__(method, method_class)[source]

Initialize self. See help(type(self)) for accurate signature.

Return type

None

__module__ = 'desdeo.method.NAUTILUS'
_update_zh(term1, term2)[source]
next_iteration(*args, preference=None, **kwargs)[source]

Return solution(s) for the next iteration

print_current_iteration()[source]
select_point(point)[source]
class desdeo.method.NAUTILUSv1(method, method_class)[source]

Bases: desdeo.method.NAUTILUS.NAUTILUS

The first NAUTILUS method variant [MIETTINEN2010].

References

MIETTINEN2010

Miettinen, K.; Eskelinen, P.; Ruiz, F. & Luque, M., NAUTILUS method: An interactive technique in multiobjective optimization based on the nadir point, European Journal of Operational Research, 2010 , 206 , 426-434.

__abstractmethods__ = frozenset({})
__init__(method, method_class)[source]

Initialize self. See help(type(self)) for accurate signature.

__module__ = 'desdeo.method.NAUTILUS'
_update_fh()[source]
next_iteration(preference=None)[source]

Return next iteration bounds

print_current_iteration()[source]
class desdeo.method.NIMBUS(problem, method_class)[source]

Bases: desdeo.method.base.InteractiveMethod

‘ Abstract class for optimization methods

_preference

Preference, i.e., classification information information for current iteration

Type

ClNIMBUSClassificationdefault:None)

_NIMBUS__SCALARS = ['NIM', 'ACH', 'GUESS', 'STOM']
__abstractmethods__ = frozenset({})
__init__(problem, method_class)[source]

Initialize self. See help(type(self)) for accurate signature.

__module__ = 'desdeo.method.NIMBUS'
_get_ach()[source]
_init_iteration(*args, **kwargs)[source]
Return type

ResultSet

_next_iteration(*args, **kwargs)[source]
Return type

ResultSet

between(objs1, objs2, n=1)[source]

Generate n solutions which attempt to trade-off objs1 and objs2.

Parameters
  • objs1 (List[float]) – First boundary point for desired objective function values

  • objs2 (List[float]) – Second boundary point for desired objective function values

  • n – Number of solutions to generate

next_iteration(*args, **kwargs)[source]

Generate the next iteration’s solutions using the DM’s preferences and the NIMBUS scalarization functions.

Parameters
  • preference (NIMBUSClassification) – Preference classifications obtained from the DM

  • scalars (list of strings) – List containing one or more of the scalarizing functions: NIM, ACH, GUESS, STOM

  • num_scalars (number) – The number of scalarizing functions to use (mutually exclusive with scalars)

class desdeo.method.NNAUTILUS(method, method_class)[source]

Bases: desdeo.method.NAUTILUS.NAUTILUS

NAVIGATOR NAUTILUS method

fh

Current non-dominated point

Type

list of floats

zh

Current iteration point

Type

list of floats

fh_up

Upper boundary for iteration points reachable from iteration point zh

Type

list of floats

fh_lo

Lower boundary for iteration points reachable from iteration point zh

Type

list of floats

exception NegativeIntervalWarning[source]

Bases: desdeo.utils.warnings.UnexpectedCondition

__module__ = 'desdeo.method.NAUTILUS'
__str__()[source]

Return str(self).

__abstractmethods__ = frozenset({})
__init__(method, method_class)[source]

Initialize self. See help(type(self)) for accurate signature.

__module__ = 'desdeo.method.NAUTILUS'
_update_fh()[source]
next_iteration(ref_point, bounds=None)[source]

Calculate the next iteration point to be shown to the DM

Parameters
  • ref_point (list of float) –

  • point given by the DM (Reference) –

update_points()[source]