Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Код
- import math
- import numpy as np
- from scipy.optimize import fsolve
- import matplotlib.pyplot as plt
- lamda = 3/60
- k = 6
- mu = k*1/90
- v = 1/35
- k=1
- alpha = lamda/mu
- beta = v/mu
- v_ = 1/(mu)
- #Проверка на точность для первой суммы
- eps = 0.00001
- r1 = 1
- cond1 = ((alpha/beta)**r1 * math.exp(alpha/beta)) / math.factorial(r1)
- while cond1 >= eps:
- cond1 = ((alpha/beta)**r1 * math.exp(alpha/beta)) / math.factorial(r1)
- r1 += 1
- print("Число слагаемых в сумме: ", r1)
- #Подсчет pn
- sum1_1 = 0
- for n in range(0, k+1):
- sum1_1 += alpha**n / (math.factorial(n))
- sum1_2 = 0
- for s in range(1, r1+1):
- mul = 1
- for m in range(1,s+1):
- mul *=(k + m*beta)
- sum1_2 += alpha**s / mul
- p = np.zeros(2)
- p[0] = 1 / (sum1_1 + sum1_2*(alpha**k / (math.factorial(k))))
- p[1] = p[0]* alpha**1 / math.factorial(1)
- #Подсчет вероятностей pk+s
- pk = np.zeros(r1+1)
- for s in range(1,r1+1):
- mul3 = 1
- for m in range(1, s+1):
- mul3 *=(k+m*beta)
- pk[s] = p[0]*alpha**(k+s) / (math.factorial(k)*mul3)
- print('pk:\n ', pk)
- b_ = 0
- for s in range(1, r1+1):
- b_ += s*pk[s]
- p_otk = b_*beta/alpha
- print("Сумма вероятностей = ",sum(p) + sum(pk))
- print("Среднее время обработки отделом одной сводки v_= ", '%.3f' %(v_), "мин")
- print("Вероятность того, что сотрудники свободны от работы p0= ", '%.3f' %(p[0]))
- print('Вероятность того, что в отделе одна сводка обрабатывается, а сводок, ожидающих обработки, нет p1= ', '%.3f' %(p[1]))
- print('Cреднее число сводок, ожидающих обработки b_= ', '%.3f' %(b_))
- print("Процент своевременно использованной информации", '%.3f' %((1 - p_otk)*100), '%')
- print("Вероятность того, что информация не будет использована из-за того, \n что до окончания обработки она уже потеряла свою ценность p_otk="
- ,'%.3f' %(p_otk))
- percent_points= []
- for i in range(7,13):
- lamda = 3/60
- k = i
- mu = k*1/90
- v = 1/35
- k=1
- alpha = lamda/mu
- beta = v/mu
- v_ = 1/(mu)
- #Проверка на точность для первой суммы
- eps = 0.00001
- r1 = 1
- cond1 = ((alpha/beta)**r1 * math.exp(alpha/beta)) / math.factorial(r1)
- while cond1 >= eps:
- cond1 = ((alpha/beta)**r1 * math.exp(alpha/beta)) / math.factorial(r1)
- r1 += 1
- #Подсчет pn
- sum1_1 = 0
- for n in range(0, k+1):
- sum1_1 += alpha**n / (math.factorial(n))
- sum1_2 = 0
- for s in range(1, r1+1):
- mul = 1
- for m in range(1,s+1):
- mul *=(k + m*beta)
- sum1_2 += alpha**s / mul
- p = np.zeros(2)
- p[0] = 1 / (sum1_1 + sum1_2*(alpha**k / (math.factorial(k))))
- p[1] = p[0]* alpha**1 / math.factorial(1)
- #Подсчет вероятностей pk+s
- pk = np.zeros(r1+1)
- for s in range(1,r1+1):
- mul3 = 1
- for m in range(1, s+1):
- mul3 *=(k+m*beta)
- pk[s] = p[0]*alpha**(k+s) / (math.factorial(k)*mul3)
- b_ = 0
- for s in range(1, r1+1):
- b_ += s*pk[s]
- p_otk = b_*beta/alpha
- percent = (1 - p_otk)*100
- percent_points.append(percent)
- k = [7, 8, 9, 10, 11, 12]
- fig, ax = plt.subplots()
- ax.set_ylabel('Процент использованной информации')
- ax.set_xlabel('Количество работников')
- ax.plot(k, percent_points, marker='o')
- for i in range(len(k)):
- ax.annotate(f'({round(percent_points[i],3)}; {round(k[i], 3)})', (k[i], percent_points[i]))
- plt.show()
- t = [0, 0.10, 0.20, 0.30, 0.40, 0.50]
- percent_points= []
- percent_points_time= []
- for i in range(6):
- lamda = 3/60
- k = 6
- mu = k*1/(90*(1-t[i]))
- v = 1/35
- k=1
- alpha = lamda/mu
- beta = v/mu
- v_ = 1/(mu)
- #Проверка на точность для первой суммы
- eps = 0.00001
- r1 = 1
- cond1 = ((alpha/beta)**r1 * math.exp(alpha/beta)) / math.factorial(r1)
- while cond1 >= eps:
- cond1 = ((alpha/beta)**r1 * math.exp(alpha/beta)) / math.factorial(r1)
- r1 += 1
- #Подсчет pn
- sum1_1 = 0
- for n in range(0, k+1):
- sum1_1 += alpha**n / (math.factorial(n))
- sum1_2 = 0
- for s in range(1, r1+1):
- mul = 1
- for m in range(1,s+1):
- mul *=(k + m*beta)
- sum1_2 += alpha**s / mul
- p = np.zeros(2)
- p[0] = 1 / (sum1_1 + sum1_2*(alpha**k / (math.factorial(k))))
- p[1] = p[0]* alpha**1 / math.factorial(1)
- #Подсчет вероятностей pk+s
- pk = np.zeros(r1+1)
- for s in range(1,r1+1):
- mul3 = 1
- for m in range(1, s+1):
- mul3 *=(k+m*beta)
- pk[s] = p[0]*alpha**(k+s) / (math.factorial(k)*mul3)
- b_ = 0
- for s in range(1, r1+1):
- b_ += s*pk[s]
- p_otk = b_*beta/alpha
- percent = (1 - p_otk)*100
- percent_points.append(percent)
- percent_points_time.append(90*(1-t[i]))
- fig, ax = plt.subplots()
- ax.set_ylabel('Процент использованной информации')
- ax.set_xlabel('Длительность обработки сводки данных одним сотрудником')
- ax.plot(percent_points_time, percent_points, marker='o')
- for i in range(len(percent_points_time)):
- ax.annotate(f'({round(percent_points[i],3)}; {round(percent_points_time[i], 3)})', (percent_points_time[i], percent_points[i]))
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement