Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import numpy as np
- N = 100
- T = 30
- def work(C1, C2, C3, Nmin, Q, Q0, T):
- """
- :param C1: удельные затраты на хранение
- :param C2: удельные затраты, связанные с дефицитом
- :param C3: удельные затраты, связанные с поставками
- :param Nmin: минимальное количество продукции на складе, если N < Nmin, то заказываем еще
- :param Q: объем партии продукции
- :param Q0: объем нулевой партии
- """
- j = k = 0
- N = Nmin
- demand = np.zeros(T) # потребление
- for f in range(T):
- demand[f] = random.randrange(5, 10, 1)
- lead_time = np.zeros(100)
- cost = deficit = storage_cost = delivery = 0
- N = N + Q0
- t = 1
- while t <= T-1:
- if t == k:
- N = N + Q
- N = N - demand[t]
- if N < 0:
- deficit = deficit - C2*N
- N = 0
- storage_cost = storage_cost + C1*N
- if N <= Nmin:
- if t >= k:
- #дозаказ
- delivery = delivery + C3*Q
- j = j+1
- lead_time[j] = random.randrange(5, 10, 1)
- k = t + lead_time[j]
- t = t+1
- cost = deficit + storage_cost + delivery
- return (cost)
- def test(N, C1, C2, C3, Nmin, Q, Q0, T):
- result = np.zeros(N)
- mean = 0
- dispersion = 0
- for k in range(N):
- result[k] = work(C1, C2, C3, Nmin, Q, Q0, T)
- mean = mean + result[k]
- mean = mean / N
- for k in range(N):
- dispersion = dispersion + (result[k] - mean)**2
- standart_deviation = np.sqrt(dispersion)
- return mean, dispersion, standart_deviation
- print("""Введите: C1: удельные затраты на хранение,
- C2: удельные затраты, связанные с дефицитом,
- C3: удельные затраты, связанные с поставками,
- Nmin: минимальное количество продукции на складе,
- Q: объем партии продукции,
- Q0: объем нулевой партии""", end='\n')
- C1 = input()
- C2 = input()
- C3 = input()
- Nmin = input()
- Q = input()
- Q0 = input()
- #work(int(C1), int(C2), int(C3), int(Nmin), int(Q), int(Q0), T)
- print("Издержки:", work(int(C1), int(C2), int(C3), int(Nmin), int(Q), int(Q0), T))
- mean, dispersion, standart_deviation = test(10, int(C1), int(C2), int(C3), int(Nmin), int(Q), int(Q0), T)
- print("Дисперсия: ", round(dispersion, 4))
- print("Среднее: ", round(mean, 4))
- print("Среднеквадратичное отклонение: ", round(standart_deviation, 4))
- print("Издержки:", work(1, 1, 1, 50, 120, 70, 30))
- mean, dispersion, standart_deviation = test(10, 1, 1, 1, 50, 120, 70, 30)
- print("Дисперсия: ", round(dispersion, 4))
- print("Среднее: ", round(mean, 4))
- print("Среднеквадратичное отклонение: ", round(standart_deviation, 4))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement