Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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