Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import factorial, exp
- def get_r(_alpha, _beta):
- eps = .00000001
- _r = 1
- while ((_alpha / _beta) ** _r / factorial(_r - 1)) * exp(_alpha / _beta) > eps:
- _r += 1
- return _r
- def get_prod(s):
- res = 1
- for i in range(1, s + 1):
- res *= k + i * beta
- return res
- def get_p_0():
- sum1 = sum([alpha ** n / factorial(n) for n in range(0, k + 1)])
- coef = alpha ** k / factorial(k)
- sum2 = sum([alpha**s/get_prod(s) for s in range(1, r + 1)])
- return 1/ (sum1 + coef*sum2)
- def get_p_ks(s):
- res = (alpha ** (k + s)) / (factorial(k) * get_prod(s))
- return res * get_p_0()
- def get_p_n(n):
- return (alpha ** n / factorial(n)) * get_p_0()
- def get_b():
- return sum([s * get_p_ks(s) for s in range(1, r + 1)])
- def get_h():
- return sum([n * get_p_n(n) for n in range(1, k + 1)]) + k * sum([get_p_ks(s) for s in range(1, r + 1)])
- nu = 1
- lambd = 5
- mu = 3
- k = 2
- alpha = lambd / mu
- beta = nu / mu
- r = get_r(alpha, beta)
- # а) Вероятность того, что все бригады будут сидеть без дела из-за отсутствия овощей
- p_0 = get_p_0()
- print("Вероятность того, что все бригады будут сидеть без дела из-за отсутствия овощей:", p_0)
- # б) вероятность того, что привезенные овощи не будут своевременно обработаны
- b = get_b()
- p_otk = b * (beta / alpha)
- print("Вероятность того, что привезенные овощи не будут своевременно обработаны:", p_otk)
- # в) Среднее число бригад, занятых обработкой овощей:
- h = get_h()
- print("Среднее число бригад, занятых обработкой овощей:", h)
- g = k - h
- k_g = g / k
- print("Доля простаивающих бригад:", k_g)
- k_h = h / k
- print("Доля занятых бригад:", k_h)
- # д) Среднее число тонн овощей, обработанных за сутки, и среднее число тонн овощей, потерянных за сутки из-за их несвоевременной обработки
- avg_served = lambd * (1 - p_otk)
- print("среднее число тонн, обработанных за сутки:", avg_served)
- avg_lost = lambd * p_otk
- print("среднее число потерянных тонн:", avg_lost)
- # е) Среднее число тонн овощей, ожидающих обработки:
- print("Среднее число тонн овощей, ожидающих обработки:", b)
- #Определить необходимое число бригад, чтобы потери овощей были минимальны, а обработка их была наиболее экономичной
- eff_crit = ((50000 / 31 * 2) + (10000 * avg_lost)) / avg_served
- crit = [(eff_crit, 2)]
- while k != 10:
- k += 1
- b = get_b()
- p_otk = b * (beta / alpha)
- avg_served = lambd * (1 - p_otk)
- avg_lost = lambd * p_otk
- eff_crit = ((50000 / 31 * k) + (10000 * avg_lost)) / avg_served
- crit.append((eff_crit, k))
- print(f"eff_crit = {eff_crit} при {k} бригад")
- print(f"avg_served = {avg_served}, avg_lost = {avg_lost}")
- print(f'При {min(crit)[1]} бригад критерий эффективности минимален и равняется {min(crit)[0]} ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement