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