Ejemplo n.º 1
0
 def insereClient(self, client, tipo_servico):
     if self.estado < self.numero_de_maquinas:  # Se servico livre(se estado menor que numero de atendedores)
         self.estado += 1  # Fica ocupado e agenda saida do cliente
         self.simulator.insereEvento(
             eventos.Saida(
                 self.simulator.instant + Aleatorio.normal(
                     self.media_serv, self.desvio_padrao, self.seed)[0],
                 self.simulator, tipo_servico, client, self))
     else:
         self.fila.append(
             client
         )  # Se servico ocupado, o cliente vai para a fila de espera
Ejemplo n.º 2
0
 def insereClient(self, client):
     """Método que insere cliente (client) no serviço"""
     if (self.estado < self.n_maquinas):  #Se serviço livre,
         self.estado = self.estado + 1  #fica ocupado e
         #agenda saída do cliente c para daqui a self.media_serv instantes
         #self.simulator.insereEvento(eventos.Saida(self.simulator.instant + self.media_serv, self.simulator, self, client)) #sem randomizacao
         self.simulator.insereEvento(
             eventos.Saida(self.simulator.instant + self.variacao_normal(),
                           self.simulator, self, client))
     else:
         self.fila.append(
             client
         )  #Se serviço ocupado, o cliente vai para a fila de espera
Ejemplo n.º 3
0
 def insereClient(self, client):
     # """Método que insere cliente (client) no serviço"""
     if len(self.servico) < self.n_servicos:  # Se serviço livre,
         tempo_de_saida = self.simulator.instant + max(
             self.random_generator.normal(self.dist), 0)
         self.servico.append((client, tempo_de_saida))
         sorted(self.servico, key=lambda servico: servico[1], reverse=True)
         self.simulator.insereEvento(
             eventos.Saida(tempo_de_saida, self.simulator, self))
     else:
         self.fila.append(
             client
         )  # Se serviço ocupado, o cliente vai para a fila de espera
Ejemplo n.º 4
0
 def removeClient(self):
     """Método que remove cliente do serviço"""
     self.atendidos = self.atendidos + 1  #Regista que acabou de atender + 1 cliente
     if (self.fila == []):  #Se a fila está vazia,
         self.estado = self.estado - 1  # liberta o serviço
     else:  #Se não,
         #vai buscar próximo cliente à fila de espera e
         client = self.fila.pop(0)
         #agenda a sua saida para daqui a self.media_serv instantes
         #self.simulator.insereEvento(eventos.Saida(self.simulator.instant + self.media_serv, self.simulator, self, client)) #sem randomizacao
         #self.simulator.insereEvento(eventos.Saida(self.simulator.instant + random.normalvariate(self.media_serv, self.desvio), self.simulator, self, client))
         self.simulator.insereEvento(
             eventos.Saida(self.simulator.instant + self.variacao_normal(),
                           self.simulator, self, client))
Ejemplo n.º 5
0
 def removeClient(self, tipo_servico):
     self.atendidos += 1  # Regista que acabou de atender + 1 cliente
     if not self.fila:  # Se a fila esta vazia,
         self.estado -= 1  # liberta o servico
     else:
         # vai buscar proximo cliente a fila de espera e agenda a sua saida
         if self.aux_rand == 0:
             ran = Aleatorio.normal(self.media_serv, self.desvio_padrao,
                                    self.seed)
             random_number = ran[0]
             self.aux_rand = ran[1]
         else:
             random_number = self.aux_rand
             self.aux_rand = 0
         self.simulator.insereEvento(
             eventos.Saida(self.simulator.instant + random_number,
                           self.simulator, tipo_servico, self.fila.pop(0),
                           self))
Ejemplo n.º 6
0
    def insereClient(self, client):
        self.act_stats()
        # """Método que insere cliente (client) no servi�o"""

        if (self.estado < self.num_servicos(client)):  # Se servi�o livre,

            self.estado = self.estado + 1  # fica ocupado e
            # agenda saída do cliente c para daqui a self.simulator.media_serv instantes

            tmp_serv = self.tmp_serv(client)
            al = aleatorio.Aleatorio().normal(self.seed, tmp_serv)
            #print('Valor aleatório: ', al)
            self.simulator.insereEvento(
                eventos.Saida(self.simulator.instant + al, self.simulator,
                              self, client))
        else:
            self.fila.append(
                client
            )  # Se servi�o ocupado, o cliente vai para a fila de espera
Ejemplo n.º 7
0
    def removeClient(self, peca):
        self.act_stats()
        # """Método que remove cliente do serviço"""
        self.atendidos = self.atendidos + 1  # Regista que acabou de atender + 1 cliente

        if self.prox_fila:
            self.prox_fila.act_stats()
            self.prox_fila.insereClient(peca)

        if (self.fila == []):  # Se a fila est� vazia,
            self.estado = self.estado - 1  # liberta o servi�o
        else:  # Se não,

            # vai buscar pr�ximo cliente � fila de espera e
            cl = self.fila.pop(0)
            # agenda a sua saida para daqui a self.simulator.media_serv instantes
            al = aleatorio.Aleatorio().normal(self.seed, self.tmp_serv(cl))

            self.simulator.insereEvento(
                eventos.Saida(self.simulator.instant + al, self.simulator,
                              self, peca))