# - 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")