NautilusNavigator

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

Bases: desdeo_mcdm.interactive.InteractiveMethod.InteractiveMethod

Implementations of the NAUTILUS Navigator algorithm.

Methods Summary

calculate_bounds(pareto_front, nav_point)

Calculate the new bounds of the reachable points on the Pareto optimal front from a navigation point.

calculate_distance(nav_point, projection, nadir)

Calculate the distance to the Pareto optimal front from a navigation point.

calculate_navigation_point(projection, …)

Calculate a new navigation point based on the projection of the preference point to the Pareto optimal front.

calculate_reachable_point_indices(…)

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

handle_request(request)

Handle the Request and its contents.

iterate(request)

Perform the next logical step based on the response in the Request.

solve_nautilus_asf_problem(pareto_f, …)

Forms and solves the achievement scalarizing function to find the closesto point on the Pareto optimal front to the given reference point.

start()

Returns the first Request object to begin iterating.

update(ref_point, speed, go_to_previous, stop)

Update the inernal state of self.

Methods Documentation

calculate_bounds(pareto_front, nav_point)[source]

Calculate the new bounds of the reachable points on the Pareto optimal front from a navigation point.

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

  • nav_point (np.ndarray) – The current navigation point.

Returns

The lower and upper bounds.

Return type

Tuple[np.ndarray, np.ndarray]

calculate_distance(nav_point, projection, nadir)[source]

Calculate the distance to the Pareto optimal front from a navigation point. The distance is calculated to the supplied projection which is assumed to lay on the front.

Parameters
  • nav_point (np.ndarray) – The navigation point.

  • projection (np.ndarray) – The point of the Pareto optimal front the distance is calculated to.

  • nadir (np.ndarray) – The nadir point of the Pareto optimal set.

Returns

The distance.

Return type

float

calculate_navigation_point(projection, nav_point, steps_remaining)[source]

Calculate a new navigation point based on the projection of the preference point to the Pareto optimal front.

Parameters
  • projection (np.ndarray) – The point on the Pareto optimal front

  • to the preference point given by a decision maker. (closest) –

  • nav_point (np.ndarray) – The previous navigation point.

  • steps_remaining (int) – How many steps are remaining in the navigation.

Returns

The new navigation point.

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]

handle_request(request)[source]

Handle the Request and its contents.

Parameters

request (NautilusNavigatorRequest) – A Request with a defined response.

Returns

Some of the contents of the response are invalid.

Return type

NautilusNavigatorRequest

iterate(request)[source]

Perform the next logical step based on the response in the Request.

Return type

NautilusNavigatorRequest

solve_nautilus_asf_problem(pareto_f, subset_indices, ref_point, ideal, nadir)[source]

Forms and solves the achievement scalarizing function to find the closesto point on the Pareto optimal front to the given reference point.

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

  • subset_indices ([type]) – Indices of the currently reachable solutions.

  • ref_point (np.ndarray) – The reference point indicating a decision

  • preference. (maker's) –

  • ideal (np.ndarray) – Ideal point.

  • nadir (np.ndarray) – Nadir point.

Returns

Index of the closest point according the minimized value of the ASF.

Return type

int

start()[source]

Returns the first Request object to begin iterating.

Returns

The Request.

Return type

NautilusNavigatorRequest

update(ref_point, speed, go_to_previous, stop, step_number=None, nav_point=None, lower_bounds=None, upper_bounds=None, reachable_idx=None, distance=None, steps_remaining=None)[source]

Update the inernal state of self.

Parameters
  • ref_point (np.ndarray) – A reference point given by a decision maker.

  • speed (int) – An integer value between 1-5 indicating the navigation speed.

  • go_to_previous (bool) – If True, the parameters indicate the state

  • a previous state (of) –

  • the request is handled accordingly. (and) –

  • stop (bool) – If the navigation should stop. If True, self.update return None.

  • step_number (Optional[int], optional) – Current step number, or

  • step number if go_to_previous is True. Defaults to None. (previous) –

  • nav_point (Optional[np.ndarray], optional) – The current

  • point. Relevant if go_to_previous is True. Defaults to (navigation) –

  • None.

  • lower_bounds (Optional[np.ndarray], optional) – Lower bounds of

  • reachable objective vector valus. Relevant if go_to_previous (the) –

  • True. Defaults to None. (is) –

  • upper_bounds (Optional[np.ndarray], optional) – Upper bounds of

  • reachable objective vector valus. Relevant if go_to_previous

  • True. Defaults to None.

  • reachable_idx (Optional[List[int]], optional) – Indices of the

  • Pareto optimal solutions. Relevant if go_to_previous is (reachable) –

  • Defaults to None. (True.) –

  • distance (Optional[float], optional) – Distance to the Pareto

  • front. Relevant if go_to_previous is True. Defaults to (optimal) –

  • None.

  • steps_remaining (Optional[int], optional) – Remaining steps in the

  • Relevant if go_to_previous is True. Defaults to None. (navigation.) –

Returns

Some of the given parameters are erraneous.

Return type

NautilusNavigatorRequest