def down_departure(self): # sacar los barcos del dique ships = self._remove_ships() ta = exponential(self.l_departure, len(ships)) if ships else [0] t = sum(ta) for i, s in enumerate(ships): s.time_used += ta[i] # cerrar la compuerta inferior if self.inf_door == Hatch.OPEN: t += exponential(self.l_door) self.inf_door = Hatch.CLOSED return t, ships
def down_entry(self, ships): t = 0 # abrir la puerta superior if self.up_door == Hatch.CLOSED: t += exponential(self.l_door) self.up_door = Hatch.OPEN # dejar entrar los barcos self._put_ships(ships) ta = exponential(self.l_ship, len(self.ships)) if self.ships else [0] t += sum(ta) for i, s in enumerate(self.ships): s.time_used += ta[i] return t
def up_transport(self): t = 0 # cerrar la compuerta inferior y abrir la superior if self.inf_door == Hatch.OPEN: self.inf_door = Hatch.CLOSED t += exponential(self.l_door) if self.up_door == Hatch.CLOSED: self.up_door = Hatch.OPEN t += exponential(self.l_door) # llenar el dique t += exponential(self.l_transport) for s in self.ships: s.time_used += t return t
def down_transport(self): t = 0 # cerrar la puerta superior if self.up_door == Hatch.OPEN: t += exponential(self.l_door) self.up_door = Hatch.CLOSED # abrir la compuerta inferior if self.inf_door == Hatch.CLOSED: t += exponential(self.l_door) self.inf_door = Hatch.OPEN # vaciar el dique t += exponential(self.l_transport) for s in self.ships: s.time_used += t return t
def up_entry(self, ships): t = 0 if self.inf_door == Hatch.CLOSED: # abrir la puerta inferior t += exponential(self.l_door) self.inf_door = Hatch.OPEN # permitir la entrada de los barcos y # calcular el tiempo que se demoran en entrar self._put_ships(ships) # for s in self.ships: # t += exponential(1 / self.l_ship) ta = exponential(self.l_ship, len(self.ships)) if self.ships else [0] t += sum(ta) # tiempo que gasto el barco en la primera fase for i, s in enumerate(self.ships): s.time_used += ta[i] return t