Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. import random
  2. import copy
  3. from Zdarzenie import Zdarzenie
  4. from matplotlib import pyplot as plt
  5.  
  6. def losuj(czas):
  7. return random.uniform(20,30) + czas
  8.  
  9. def main():
  10. czasy = []
  11. wartosci_bufora = []
  12. wartosci_pasma = []
  13.  
  14. przebieg = open("przebieg.txt", "w")
  15. high = 10
  16. low = 1
  17. wielkosc_paczki = 4.5
  18.  
  19. czas_chwilowy = 0
  20. calkowity_czas = 100
  21. czas_rozpoczecia = 0
  22. bufor = 0
  23. pasmo = high
  24.  
  25. zdarzenia = []
  26. zdarzenia_strumien = Zdarzenie(losuj(czas_chwilowy), "Zmiana strumienia")
  27. zdarzenia.append(zdarzenia_strumien)
  28.  
  29. zdarzenie_zmien = Zdarzenie(czas_chwilowy + (wielkosc_paczki/pasmo), "Zmiana bufora")
  30. zdarzenia.append(zdarzenie_zmien)
  31.  
  32. przebieg.write(str(int(czas_chwilowy * 100)) + " " + str(pasmo) + " " + str(int(bufor*100)) + "\n")
  33.  
  34. czasy.append(int(czas_chwilowy * 100))
  35. wartosci_pasma.append(pasmo)
  36. wartosci_bufora.append(bufor)
  37.  
  38. while czas_chwilowy < calkowity_czas:
  39. zdarzenia.sort(key=lambda x: x.czas, reverse=False)
  40.  
  41. zdarzenie = Zdarzenie(zdarzenia[0].czas, zdarzenia[0].typ)
  42.  
  43. if zdarzenie.typ == "Zmiana bufora":
  44. czas_rozpoczecia = czas_chwilowy
  45.  
  46. czas_chwilowy = zdarzenie.czas
  47.  
  48. if zdarzenie.typ == "Zmiana strumienia":
  49.  
  50. if pasmo == high:
  51. pasmo = low
  52. else:
  53. pasmo = high
  54.  
  55. zdarzenia_strumien = Zdarzenie(losuj(czas_chwilowy), "Zmiana strumienia")
  56. zdarzenia.append(zdarzenia_strumien)
  57. elif zdarzenie.typ == "Zmiana bufora":
  58. zdarzenie_zmien = Zdarzenie(czas_chwilowy + (wielkosc_paczki/pasmo), "Zmiana bufora")
  59. zdarzenia.append(zdarzenie_zmien)
  60. bufor = bufor + 1
  61. bufor = bufor - (czas_chwilowy - czas_rozpoczecia)
  62. if bufor > 30: bufor = 30
  63. if bufor < 0: bufor = 0
  64.  
  65. przebieg.write(str(int(czas_chwilowy * 100)) + " " + str(pasmo) + " " + str(int(bufor*100)) + "\n")
  66.  
  67. czasy.append(int(czas_chwilowy * 100))
  68. wartosci_pasma.append(pasmo)
  69. wartosci_bufora.append(bufor)
  70.  
  71. zdarzenia.pop(0)
  72. plt.plot(czasy, wartosci_pasma, "-b", label="Pasmo")
  73. plt.plot(czasy, wartosci_bufora, "-r", label="Bufor")
  74. plt.xlabel('Czas')
  75. plt.ylabel('Wartosc')
  76. plt.legend(loc="upper left")
  77. plt.show()
  78. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement