-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFuncDict.py
63 lines (53 loc) · 3.02 KB
/
FuncDict.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from Distance import *
from Connectivity import *
from Time import *
from Smoothness import *
from WeightedSum import * # mission_time_and_percentage_connectivity_ws, mission_time_and_percentage_connectivity_and_max_mean_tbv_ws
from PathSolution import *
model_metric_info = {
# Objective Functions
'Total Distance': get_total_distance,
'Mission Time': get_mission_time,
'Percentage Connectivity': calculate_percentage_connectivity,# bfs_connectivity
'Percentage Disconnectivity': calculate_percentage_disconnectivity,
'Path Smoothness': path_smoothness_penalty,
'Total Disconnected Time': calculate_total_disconnected_time,
'Max Disconnected Time': calculate_max_disconnected_time,
'Mean Disconnected Time': calculate_mean_disconnected_time,
'Total Drone Speed Violations as Objective': total_drone_speed_violations_as_objective,
'Path Speed Violations as Objective': path_speed_violations_as_objective,
'Path Smoothness as Objective': path_smoothness_as_objective,
'Max Mean TBV': max_tbv_as_objective,
"Mission Time and Percentage Connectivity Weighted Sum": mission_time_and_percentage_connectivity_ws,
"Mission Time and Percentage Connectivity and Max Mean TBV Weighted Sum": mission_time_and_percentage_connectivity_and_max_mean_tbv_ws,
# Inequality Constraints
'Max Mission Time': max_mission_time,
'Min Percentage Connectivity': min_perc_conn_constraint,
'Max Mean TBV as Constraint': max_tbv_as_constraint,
'Min Cell Visits': min_cell_visits,
'Max Cell Visits': max_cell_visits,
'Path Speed Violations as Constraint': path_speed_violations_as_constraint,
'Total Drone Speed Violations as Constraint': total_drone_speed_violations_as_constraint,
'Max Drone Speed Violations as Constraint': max_drone_speed_violations_as_constraint,
'Limit Cell Range': limit_cell_range,
'Subtour Range':get_subtour_range,
'Time Penalties': calculate_time_penalty,
'Longest Subtour': get_longest_subtour,
'Total Diagonal Steps':get_total_diagonal_steps,
'Mean Turning Angle': get_mean_turning_angle,
'Max Number of Visits':calculate_max_visits,
'Limit Total Traceback Penalty': limit_total_traceback_penalty,
'Limit Max Traceback Penalty': limit_max_traceback_penalty,
'Limit Cell per Drone': min_cells_per_drone_constr,
'Limit Max Longest Subtour': max_longest_subtour_constr,
'Limit Min Longest Subtour': min_longest_subtour_constr,
'Limit Subtour Range': max_subtour_range_constr,
# Equality Constraints
'Hovering Drones Full Connectivity':enforce_hovering_connectivity,
'Eliminate Traceback': eliminate_total_traceback,
'Search Drone Path Smoothness': longest_path_smoothness_penalty,
'Path Smoothness': eliminate_path_smoothness_penalties,
'Eliminate Longest Path Traceback': eliminate_longest_path_traceback,
'Speed Violation Smoothness': speed_violation_smoothness_as_constraint
}
# 'Limit Total Speed Violation', 'Limit Max Speed Violation', 'Limit Total Traceback Penalty' 'Limit Max Traceback Penalty'