blob: d8dc78cd7805d0fcf82bf529a528aa408f352735 (
plain)
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
64
|
import math
import parameters
def stats_deneigeuses(all_costs):
'''
Calcule les statistiques des déneigeuses.
Parameters:
all_costs : Liste des coûts des déneigeuses.
Returns:
Un dictionnaire contenant les statistiques des déneigeuses.
'''
result = {
"list":all_costs
}
result["number"] = len(all_costs)
result["dist"] = {
"max": max(d["dist"] for d in all_costs) / 1000,
"min": min(d["dist"] for d in all_costs) / 1000,
"total": sum(d["dist"] for d in all_costs) / 1000
}
result["dist"]["avg"] = result["dist"]["total"] / result["number"]
result["time"] = {}
result["time"]["real"] = {"t1": {}, "t2": {}}
result["time"]["real"]["t1"]["avg"] = result["dist"]["avg"] / parameters.TYPE_I_SPEED
result["time"]["real"]["t2"]["avg"] = result["dist"]["avg"] / parameters.TYPE_II_SPEED
result["time"]["real"]["t1"]["max"] = result["dist"]["max"] / parameters.TYPE_I_SPEED
result["time"]["real"]["t2"]["max"] = result["dist"]["max"] / parameters.TYPE_II_SPEED
def coutHoraireTypeI(heures):
return heures * parameters.TYPE_I_COST_HOUR_UNDER_8 if heures <= 8 else 8 * parameters.TYPE_I_COST_HOUR_UNDER_8 + (heures - 8) * parameters.TYPE_I_COST_HOUR_ABOVE_8
def coutHoraireTypeII(heures):
return heures * parameters.TYPE_II_COST_HOUR_UNDER_8 if heures <= 8 else 8 * parameters.TYPE_II_COST_HOUR_UNDER_8 + (heures - 8) * parameters.TYPE_II_COST_HOUR_ABOVE_8
coutTotalTypeI = (
parameters.TYPE_I_COST_FIXED * (result["number"]) +
parameters.TYPE_I_COST_KILO * result["dist"]["total"] +
coutHoraireTypeI(result["time"]["real"]["t1"]["avg"] * result["number"]))
coutTotalTypeII = (
parameters.TYPE_II_COST_FIXED * result["number"] +
parameters.TYPE_II_COST_KILO * result["dist"]["total"] +
coutHoraireTypeII(result["time"]["real"]["t2"]["avg"] * result["number"])
)
result["cost"] = {
"t1":coutTotalTypeI,
"t2":coutTotalTypeII
}
return result
def stats_drone(cost):
'''
Calcule les statistiques du drone.
Parameters:
cost : Dictionnaire contenant les coûts du drone.
Returns:
Un dictionnaire contenant les statistiques du drone.
'''
cost["distKM"] = cost["dist"] / 1000
cost["time"]["real"] = (cost["distKM"] / parameters.SUPER_DRONE_SPEED) * 60
cost["cost"] = parameters.SUPER_DRONE_COST_FIXED + parameters.SUPER_DRONE_COST_KILO * (cost["dist"] / 1000)
return cost
|