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
-
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
-
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
-