-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClient.py
More file actions
46 lines (38 loc) · 1.98 KB
/
Client.py
File metadata and controls
46 lines (38 loc) · 1.98 KB
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
from Localisation import Localisation
class Client:
def __init__(self, indice=-1, quantite=0, capacite=-1, requete=False, localisation=Localisation(), horaires=None,
jours_depuis_collecte=0, qualite_tri=0, collecteurs_disponibles=None, nom="point"):
self.indice = indice
self.nom = nom
self.localisation = localisation
self.quantite = quantite
self.capacite = capacite
self.requete = requete
self.jours_depuis_collecte = jours_depuis_collecte
self.horaires = [[0, 24*7]] if horaires is None else horaires # h
if collecteurs_disponibles is None:
collecteurs_disponibles = []
if qualite_tri == -1:
collecteurs_disponibles = collecteurs_disponibles[::-1]
self.collecteurs_disponibles = collecteurs_disponibles
self.visite = False
def ratio(self):
return self.quantite / self.capacite
def jour_avant_surcharge(self):
if self.quantite == 0:
# retourner le temps moyen entre 2 collectes
return 30
return self.jours_depuis_collecte * (self.capacite / self.quantite - 1)
def priorite(self):
# return (1 + self.requete) * self.ratio()
return (1 + self.requete) / max(0.1, self.jour_avant_surcharge())
def display(self):
print("- Client = {c} : {nom}".format(c=self.indice, nom=self.nom))
print("\tLieu : {l}".format(l=self.localisation.to_tuple()))
print("\tHoraires : {hours}".format(hours=self.horaires))
print("\tCapacité = {c}".format(c=self.capacite))
print("\tQuantité = {q}".format(q=self.quantite))
print("\tRequête = {r}".format(r=self.requete))
print("\tNbr de jours depuis dernière collecte = {d}".format(d=self.jours_depuis_collecte))
print("\tPriorité = {p}".format(p=self.priorite()))
print("\tCollecteurs disponibles = {c}".format(c=self.collecteurs_disponibles))