import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use('bmh')
#Not to show warning messages (to keep the notebook clean)
import warnings
warnings.filterwarnings('ignore')
#3. Analyze a queue system similar to the tutorial considering 𝜆=3 and 𝜇=4 for 2000 time periods.
#time periods
size=2000
#Arrival
mean=3
arrival = np.random.poisson(mean, size)
#Service
mean=4
service = np.random.poisson(mean, size)
#
queue = np.zeros(size+1)
for i in range(size):
if ((arrival[i] - service[i]) + queue[i]) > 0:
queue[i+1] = max(0,(arrival[i] - service[i]) + queue[i])
plt.figure(figsize=(14,5))
#plt.plot( arrival, '--o',label='Arrival')
#plt.plot( service, '-x',label='Sevice')
plt.plot( queue, 'ok')
plt.xlabel('$n$')
plt.ylabel('Size')
plt.title('Queue')
#plt.ylim([0, 1])
#plt.xlim([0, 10])
plt.grid(True) #grid
plt.show()
print('Worst delay:', np.max(queue))
print('Ratio of Idle time:',( size-np.count_nonzero(queue)/size))
Worst delay: 20.0
Ratio of Idle time: 1999.505
#4. Analyze a queue system similar to the tutorial considering 𝜆=4 and 𝜇=3 for 2000 time periods.
#time periods
size=10000
#Arrival
mean=4
arrival = np.random.poisson(mean, size)
#Service
mean=3
service = np.random.poisson(mean, size)
#
queue = np.zeros(size+1)
for i in range(size):
if ((arrival[i] - service[i]) + queue[i]) > 0:
queue[i+1] = max(0,(arrival[i] - service[i]) + queue[i])
plt.figure(figsize=(14,5))
#plt.plot( arrival, '--o',label='Arrival')
#plt.plot( service, '-x',label='Sevice')
plt.plot( queue, 'ok')
plt.xlabel('$n$')
plt.ylabel('Size')
plt.title('Queue')
#plt.ylim([0, 1])
#plt.xlim([0, 10])
plt.grid(True) #grid
plt.show()
print('Worst delay:', np.max(queue))
print('Ratio of Idle time:',( size-np.count_nonzero(queue)/size))
Worst delay: 9873.0
Ratio of Idle time: 9999.0
#5. Analyze a queue system similar to the tutorial considering 𝜆=3 and 𝜇=3 for 2000 time periods.
#time periods
size=50000
#Arrival
mean=3
arrival = np.random.poisson(mean, size)
#Service
mean=3
service = np.random.poisson(mean, size)
#
queue = np.zeros(size+1)
for i in range(size):
if ((arrival[i] - service[i]) + queue[i]) > 0:
queue[i+1] = max(0,(arrival[i] - service[i]) + queue[i])
plt.figure(figsize=(14,5))
#plt.plot( arrival, '--o',label='Arrival')
#plt.plot( service, '-x',label='Sevice')
plt.plot( queue, 'ok')
plt.xlabel('$n$')
plt.ylabel('Size')
plt.title('Queue')
#plt.ylim([0, 1])
#plt.xlim([0, 10])
plt.grid(True) #grid
plt.show()
print('Worst delay:', np.max(queue))
print('Ratio of Idle time:',( size-np.count_nonzero(queue)/size))
Worst delay: 1075.0
Ratio of Idle time: 49999.00008