Skip to content

Instantly share code, notes, and snippets.

@VitorDiToro
Last active November 11, 2016 13:26
Show Gist options
  • Save VitorDiToro/d2f670ffe560e1b16c7f8bd2e096f3e7 to your computer and use it in GitHub Desktop.
Save VitorDiToro/d2f670ffe560e1b16c7f8bd2e096f3e7 to your computer and use it in GitHub Desktop.
import numpy as np
import math
import matplotlib.pyplot as plt
lambida = float(input('Lambda: '))
mi = float(input('Mi: '))
vet_tamanho = int(input('Numero de elementos: '))
'''Gera o vetor com as distribuicoes de chegada '''
chegada = np.random.exponential(1.0/lambida,vet_tamanho)
#print(chegada)
''' Gera o vetor de tempos de atendimento '''
escala = 1.0/mi
t_atendimento = np.random.exponential(escala,vet_tamanho)
#print(t_atendimento)
''' Gera o vetor com os tempos de chegada '''
t_anterior = 0.0
t_chegada = [0.0 for i in range(vet_tamanho)]
for i in range(vet_tamanho):
t_chegada[i] = t_anterior
t_anterior += chegada[i]
''' Criacao dos veores '''
t_q_demorou = [0.0 for i in range(vet_tamanho)]
t_saida = [0.0 for i in range(vet_tamanho)]
i_atendimento = [0.0 for i in range(vet_tamanho)]
t_espera = [0.0 for i in range(vet_tamanho)] #AKA t_fila
''' Sets de T0 '''
t_saida[0] = t_chegada[0] + t_atendimento[0]
t_q_demorou[0] = t_saida[0] - t_chegada[0]
i_atendimento[0] = t_chegada[0]
t_espera[0] = i_atendimento[0] - t_chegada[0]
''' Calculos da porra toda '''
for i in range(1,vet_tamanho):
if(t_chegada[i] > t_saida[i-1]):
t_saida[i] = t_chegada[i] + float(t_atendimento[i])
else:
t_saida[i] = t_saida[i-1] + float(t_atendimento[i])
t_q_demorou[i] = t_saida[i] - t_chegada[i]
i_atendimento[i] = t_saida[i] - float(t_atendimento[i])
t_espera[i] = i_atendimento[i] - t_chegada[i]
print('\nChegada: ')
print(t_chegada)
print('\nInicio de atendimento: ')
print(i_atendimento)
print('\nTempo de espera na fila: ')
print(t_espera)
print('\nTempo de atendimento')
print(t_atendimento)
print('\nInstante de saida: ')
print(t_saida)
media_t_atendimento = np.average(t_atendimento)
media_t_espera = np.average(t_espera)
media_t_q_demorou = np.average(t_q_demorou)
print('\nMedias (Simuladas): ')
print('E[Ts] (Tempo de Serviso) = %s ' % media_t_atendimento)
print('E[Tw] (Tempo de Espera) = %s ' % media_t_espera)
print('E[Tq] (tempo de Permanencia no Sistema) = %s ' %media_t_q_demorou)
print('\nMedias (Calculadas): ')
print('E[Ts] (Tempo de Serviso) = %s ' % (1.0/mi))
print('E[Tw] (Tempo de Espera) = %s ' % (1.0-(1.0/mi)))
print('E[Tq] (tempo de Permanencia no Sistema) = %s ' % (1.0/(mi - lambida)))
#plt.plot()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment