summaryrefslogtreecommitdiff
path: root/ero1/src/helper/export_cost.py
diff options
context:
space:
mode:
Diffstat (limited to 'ero1/src/helper/export_cost.py')
-rw-r--r--ero1/src/helper/export_cost.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/ero1/src/helper/export_cost.py b/ero1/src/helper/export_cost.py
new file mode 100644
index 0000000..d3d9ede
--- /dev/null
+++ b/ero1/src/helper/export_cost.py
@@ -0,0 +1,60 @@
+# - Distance Parcourus
+# - Nombre de déneigeuses
+# - Coût en fonction de la déneigeuse choisie
+# - Coût du drone
+# - Distance parcourus par déneigeuse
+# - Temps "réel" passé
+# - Temps d'exécution (Indicatif uniquement)
+
+from src.helper.debug_printer import debug_print
+import math
+import parameters as params
+
+def export_cost(parcours_drone, parcours_deneigeuses, graph, debug_mode, temps_execution_deneigeuse, temps_execution_drone):
+ """
+ Exporte le coût du parcours.
+ Parameters:
+ parcours_drone : Les routes à exporter.
+ parcours_deneigeuses : Les routes à exporter.
+ graph : Le graphe à exporter.
+ debug_mode : Indique si le mode debug est activé ou non.
+ temps_execution_deneigeuse : Le temps d'exécution des déneigeuses.
+ temps_execution_drone : Le temps d'exécution du drone.
+ """
+
+ debug_print(f"======== EXPORT COST ==========", debug_mode)
+ debug_print(f"Exportation du coût du parcours.", debug_mode)
+
+
+ def get_edge_length(u, v):
+ try:
+ return graph[u][v][0]['length']
+ except KeyError:
+ try:
+ return graph[v][u][0]['length']
+ except KeyError:
+ return 0
+
+ distance_parcourue_deneigeuses = math.ceil(sum(sum(get_edge_length(u, v) for u, v in parcours) for parcours in parcours_deneigeuses))
+ distance_parcourue_drone = math.ceil(sum(get_edge_length(u, v) for u, v in parcours_drone))
+ nombre_de_de_neigeuses = len(parcours_deneigeuses)
+
+ debug_print(f"Distance parcourue - Drone : {distance_parcourue_drone}m", debug_mode)
+ debug_print(f"Distance parcourue - Déneigeuses : {distance_parcourue_deneigeuses}m", debug_mode)
+ debug_print(f"Nombre de déneigeuses : {nombre_de_de_neigeuses}", debug_mode)
+ debug_print(f"Temps d'exécution - Drone : {temps_execution_drone} secondes", debug_mode)
+
+ i = 1
+ for parcours in parcours_deneigeuses:
+ distance_parcourue_deneigeuse = math.ceil(sum(get_edge_length(u, v) for u, v in parcours))
+ debug_print(f" Distance parcourue - Déneigeuse {i} : {distance_parcourue_deneigeuse}m", debug_mode)
+ i += 1
+
+ debug_print(f"======== EXPORT COST ==========", debug_mode)
+
+ # Exportation du coût du parcours dans un fichier texte
+ with open("temp/export_cost.txt", "w") as f:
+ f.write(f"{params.ALGORITHM_NAME}|{distance_parcourue_drone}|{distance_parcourue_deneigeuses}|{nombre_de_de_neigeuses}|{temps_execution_deneigeuse}|{temps_execution_drone}\n")
+ for parcours in parcours_deneigeuses:
+ distance_parcourue_deneigeuse = math.ceil(sum(get_edge_length(u, v) for u, v in parcours))
+ f.write(f"{distance_parcourue_deneigeuse}\n")