-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
41 lines (36 loc) · 1.31 KB
/
utils.py
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
""" Archivo para funciones auxiliares """
import random
from constantes import *
#metodo que devuelde true si un valor esta entre dos valores
def between(value, min, max):
if min <= value < max:
return True
else:
return False
def getPoissonRate(time):
""" Método que devuelve el valor de la distribución
de Poisson para un tiempo dado """
lambd = 0
h_in_day = (time / 60.0) % 24.0
if between(h_in_day, 0.0, 5):
lambd = 2.0 / 5.0 * h_in_day + 5.0
elif between(h_in_day, 5, 8):
lambd = -1.0 / 3.0 * h_in_day + 26.0 / 3.0
elif between(h_in_day, 8, 15):
lambd = 3.0 / 7.0 * h_in_day + 18.0 / 7.0
elif between(h_in_day, 15, 17):
lambd = -3.0 / 2.0 * h_in_day + 63.0/2.0
elif between(h_in_day, 17, 24):
lambd = -1.0 / 7.0 * h_in_day + 59.0 / 7.0
else:
print("Lambda fuera del rango")
#logging.error("lambda out of index")
return lambd
def get_tiempo_vacio():
""" Método que devuelve el tiempo de movimiento
para un remolcador vacío """
return random.normalvariate(MU_REMOLCADOR_VACIO, SIGMA_REMOLCADOR_VACIO)
def get_tiempo_lleno():
""" Método que devuelve el tiempo de movimiento
para un remolcador lleno """
return random.normalvariate(MU_REMOLCADOR_LLENO, SIGMA_REMOLCADOR_LLENO)