ENautilus

class desdeo_mcdm.interactive.ENautilus(pareto_front, ideal, nadir, objective_names=None, minimize=None)[source]

Bases: desdeo_mcdm.interactive.InteractiveMethod.InteractiveMethod

Methods Summary

calculate_bounds(pareto_front, …)

Calculate the new bounds of the reachable points on the Pareto optimal front from each of the intermediate points.

calculate_distances(intermediate_points, …)

rtype

ndarray

calculate_intermediate_points(…)

Calcualtes the intermediate points between representative points an a preferred point.

calculate_reachable_point_indices(…)

Calculate the indices of the reachable Pareto optimal solutions based on lower and upper bounds.

calculate_representative_points(…)

Calcualtes the most representative points on the Pareto front.

handle_initial_request(request)

Handles the initial request by parsing the response appropiately.

handle_request(request)

Handles the intermediate requests.

iterate(request)

Perform the next logical iteratino step based on the given request type.

start()

rtype

ENautilusInitialRequest

Methods Documentation

calculate_bounds(pareto_front, intermediate_points)[source]

Calculate the new bounds of the reachable points on the Pareto optimal front from each of the intermediate points.

Parameters
  • pareto_front (np.ndarray) – The Pareto optimal front.

  • intermediate_points (np.ndarray) – The current intermedaite points as a 2D array.

Returns

The lower and upper bounds for each of the intermediate points.

Return type

Tuple[np.ndarray, np.ndarray]

calculate_distances(intermediate_points, zbars, nadir)[source]
Return type

ndarray

calculate_intermediate_points(preferred_point, zbars, n_iterations_left)[source]

Calcualtes the intermediate points between representative points an a preferred point.

Parameters
  • preferred_point (np.ndarray) – The preferred point, 1D array.

  • zbars (np.ndarray) – The representative points, 2D array.

  • n_iterations_left (int) – The number of iterations left.

Returns

The intermediate points as a 2D array.

Return type

np.ndarray

calculate_reachable_point_indices(pareto_front, lower_bounds, upper_bounds)[source]

Calculate the indices of the reachable Pareto optimal solutions based on lower and upper bounds.

Returns

List of the indices of the reachable solutions.

Return type

List[int]

calculate_representative_points(pareto_front, subset_indices, n_points)[source]

Calcualtes the most representative points on the Pareto front. The points are clustered using k-means.

Parameters
  • pareto_front (np.ndarray) – The Pareto front.

  • subset_indices (List[int]) – A list of indices representing the

  • of the points on the Pareto front for which the (subset) –

  • points should be calculated. (representative) –

  • n_points (int) – The number of representative points to be calculated.

Returns

A 2D array of the most representative points. If the subset of Pareto efficient points is less than n_points, returns the subset of the Pareto front.

Return type

np.ndarray

handle_initial_request(request)[source]

Handles the initial request by parsing the response appropiately.

Return type

ENautilusRequest

handle_request(request)[source]

Handles the intermediate requests.

Return type

Union[ENautilusRequest, ENautilusStopRequest]

iterate(request)[source]

Perform the next logical iteratino step based on the given request type.

Return type

Union[ENautilusRequest, ENautilusStopRequest]

start()[source]
Return type

ENautilusInitialRequest