From f8f7f72eeaffc2342005a3a1ffd9311e1827bee3 Mon Sep 17 00:00:00 2001 From: Berack96 Date: Wed, 16 Apr 2025 10:47:09 +0200 Subject: [PATCH] Update README.md with additional simulation result images for better visualization and understanding --- README.md | 16 +++++++++++----- image/README/1744786768084.png | Bin 0 -> 6789 bytes image/README/1744786814771.png | Bin 0 -> 6964 bytes image/README/1744793029362.png | Bin 0 -> 15036 bytes 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 image/README/1744786768084.png create mode 100644 image/README/1744786814771.png create mode 100644 image/README/1744793029362.png diff --git a/README.md b/README.md index 3970e64..0a331c5 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,13 @@ Le distribuzioni usate hanno tutte la stessa media μ: ### Primo esempio ![1741862746304](image/README/1741862746304.png)\ Il primo è `example1`; è una rete composta da una fonte di clienti (Source) che arrivano con tasso esponenziale (λ=0.222 e quindi media 4.5) e un centro di servizio (Queue) con tasso di servizio distribuito come una normale (μ=3.2, σ=0.6).\ -Se si effettua una simulazione si vedranno i risultati sulla console in questo modo: +Se si effettua una simulazione si vedranno i risultati sulla console in questo modo:\ ![1741860064265](image/README/1741860064265.png) -Il tool JMT con la stessa rete produce i seguenti risultati che sono molto simili a quelli prodotti dalla libreria:\ +O se si utilizza la parte grafica si possono vedere i risultati della Queue con l'incertezza:\ +![1744786768084](image/README/1744786768084.png) + +Il tool JMT con la stessa rete produce i seguenti risultati che sono molto simili a quelli prodotti dalla libreria: ``` Response Time (Queue) 7.3022 con range [7.1456, 7.4589] Throughput (Queue) 0.2226 con range [0.2182, 0.2271] @@ -87,10 +90,13 @@ Di seguito si può vedere il cambiamento del tempo medio di attesa, il numero me ### Secondo esempio ![1741863043733](image/README/1741863043733.png)\ Il secondo esempio è `example2`; è una rete composta da una fonte di clienti (Source) che arrivano con tasso esponenziale (λ=1.5 e quindi media 0.666), un centro di servizio (Service1) con tasso di servizio distribuito come una esponenziale (λ=2.0 e quindi media 0.5) e un altro centro di servizio (Service2) con tasso di servizio distribuito come una esponenziale (λ=3.5 e quindi media 0.2857) e con un tempo di indisponibilità che viene attivato con probabilità 10% e distribuito con una eseponenziale (λ=10.0 e quindi media 0.1)\ -Se si effettua una simulazione si vedranno i risultati sulla console in questo modo: +Se si effettua una simulazione si vedranno i risultati sulla console in questo modo:\ ![1741862486547](image/README/1741862486547.png) -Il tool JMT con la stessa rete produce i seguenti risultati che sono molto simili a quelli prodotti dalla libreria:\ +O se si utilizza la parte grafica si possono vedere i risultati del Service2 con l'incertezza:\ +![1744786814771](image/README/1744786814771.png) + +Il tool JMT con la stessa rete produce i seguenti risultati che sono molto simili a quelli prodotti dalla libreria: ``` Response Time (Service1) 2.0115 con range [1.9671, 2.0559] Response Time (Busy2) 0.2858 con range [0.2816, 0.2899] @@ -102,6 +108,6 @@ Throughput del Sistema 1.5094 con range [1.5005, 1.5183] ``` Successivamente ho cambiato la distribuzione di servizio usata dal nodo "Service2".\ -Anche in questo caso l'utilizzo e il throughput rimangono pressochè invariati e convergono con l'aumentare dei clienti nel sistema, ma cambiano il **numero medio della coda** e il **tempo medio di attesa**.\ +Anche in questo caso l'utilizzo e il throughput rimangono pressochè invariati e convergono con l'aumentare dei clienti nel sistema, ma cambiano il **numero medio della coda** e il **tempo medio di attesa**.![1744793029362](image/README/1744793029362.png)\ Una particolarità di questa rete è il basso valore atteso per il tempo di servizio. Questo, in concomitanza con il resample in caso di valori negativi, fa si di aumentare la media della Distribuzione Normale. Nei grafici seguenti è stata inclusa la Normale solo nell'ultimo per mostrare la differenza rispetto le altre distribuzioni.\ ![1742632017987](image/README/1742632017987.png) diff --git a/image/README/1744786768084.png b/image/README/1744786768084.png new file mode 100644 index 0000000000000000000000000000000000000000..d98fba4005d1f5b8430f010c1a742a1ce7497572 GIT binary patch literal 6789 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 literal 0 HcmV?d00001 diff --git a/image/README/1744793029362.png b/image/README/1744793029362.png new file mode 100644 index 0000000000000000000000000000000000000000..6d14ff4588b5833cd34e8fc63ad3b7e0a7b565d5 GIT binary patch literal 15036 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