diff options
Diffstat (limited to 'ero1/src/helper/export_cost.py')
| -rw-r--r-- | ero1/src/helper/export_cost.py | 60 |
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") |
