-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainOriginal.py
67 lines (52 loc) · 1.92 KB
/
mainOriginal.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
""" Programa main """
# Importar classes
from petrolero import Petrolero
from remolcador import Remolcador
from estados import Estados
# Importar funciones auxiliares
from utils import *
# Importar librerias linked list
from collections import deque
#importar constantes
from constantes import *
import random
#class main
class Main:
#init
def __init__(
self,
num_remolcadores = NUM_REMOLCADORES,
tiempo_max = TIEMPO_MAX,
mu_remolcador_vacio = MU_REMOLCADOR_VACIO,
sigma_remolcador_vacio = SIGMA_REMOLCADOR_VACIO,
grado_libertad_descarga = GRADO_LIBERTAD_DESCARGA
):
self.tiempo_max = tiempo_max
self.mu_remolcador_vacio = mu_remolcador_vacio
self.sigma_remolcador_vacio = sigma_remolcador_vacio
self.grado_libertad_descarga = grado_libertad_descarga
# Lista de remolcadores
self.lista_remolcadores = [Remolcador() for i in range(num_remolcadores)]
tiempos_llegada = self.init_tiempos_petroleros()
self.array_petroleros = [Petrolero(t) for t in tiempos_llegada]
self.events_list = deque(self.array_petroleros)
# funcion simular
def simular(self):
# TODO
pass
# metodo que inicializa la llegada de todos los petroleros
def init_tiempos_petroleros(self):
""" Método que devuelve un array con
todos los tiempos de llegada de los petroleros """
tiempo = 0
tiempos_llegada = []
# Calculamos el primero en llegar
tiempo += 60 * random.expovariate(getPoissonRate(tiempo))
# Mientras las llegadas esten dentro del tiempo de simulacion calculamos las siguientes entradas
while tiempo < self.tiempo_max:
tiempos_llegada.append(tiempo)
tiempo += 60 * random.expovariate(getPoissonRate(tiempo))
return tiempos_llegada
if __name__ == '__main__':
simul = Main()
simul.simular()