Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 09e23f8f6a | |||
| 87f797987b | |||
| daaad57c08 | |||
| 1d748e0204 |
7
.gitignore
vendored
@@ -8,6 +8,9 @@ logs
|
||||
*.md
|
||||
*.tex
|
||||
!README.md
|
||||
report.aux
|
||||
report.synctex.gz
|
||||
!report.tex
|
||||
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
@@ -53,6 +56,7 @@ build/
|
||||
# Other
|
||||
*.swp
|
||||
*.pdf
|
||||
!Desempenho_Linux.pdf
|
||||
|
||||
# JAR built pom file
|
||||
dependency-reduced-pom.xml
|
||||
@@ -60,3 +64,6 @@ dependency-reduced-pom.xml
|
||||
# Python env
|
||||
venv/
|
||||
.$Diagrama de arquitetura - SD.drawio.bkp
|
||||
|
||||
#others
|
||||
*.out
|
||||
|
||||
BIN
Desempenho_Linux.pdf
Normal file
@@ -1,6 +0,0 @@
|
||||
Execução,VeículosGerados,VeículosCompletados,TaxaConclusão,TempoMédioSistema,TempoMédioEspera,TempoMínimoSistema,TempoMáximoSistema
|
||||
1,1836,348,18.95,75.91,72.28,37.96,151.82
|
||||
2,1728,663,38.37,52.10,49.52,26.05,104.21
|
||||
3,1747,539,30.85,116.39,112.54,58.19,232.78
|
||||
4,1769,149,8.42,89.64,85.89,44.82,179.29
|
||||
5,1827,1097,60.04,90.49,86.93,45.25,180.98
|
||||
|
@@ -1,215 +0,0 @@
|
||||
================================================================================
|
||||
ANÁLISE ESTATÍSTICA MULTI-EXECUÇÃO
|
||||
================================================================================
|
||||
Configuração: simulation-high.properties
|
||||
Número de Execuções: 5
|
||||
Data da Análise: 2025-12-08 08:20:40
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
MÉTRICAS GLOBAIS
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Veículos Gerados:
|
||||
Média: 1781.40 Desvio Padrão: 48.09
|
||||
Mediana: 1769.00 IC 95%: [1712.97, 1849.83]
|
||||
Mín: 1728.00 Máx: 1836.00
|
||||
|
||||
Veículos Completados:
|
||||
Média: 559.20 Desvio Padrão: 358.22
|
||||
Mediana: 539.00 IC 95%: [49.44, 1068.96]
|
||||
Mín: 149.00 Máx: 1097.00
|
||||
|
||||
Taxa de Conclusão (%):
|
||||
Média: 31.33 Desvio Padrão: 19.70
|
||||
Mediana: 30.85 IC 95%: [3.30, 59.36]
|
||||
Mín: 8.42 Máx: 60.04
|
||||
|
||||
Tempo Médio no Sistema (segundos):
|
||||
Média: 84.91 Desvio Padrão: 23.46
|
||||
Mediana: 89.64 IC 95%: [51.52, 118.29]
|
||||
Mín: 52.10 Máx: 116.39
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 81.43 Desvio Padrão: 23.02
|
||||
Mediana: 85.89 IC 95%: [48.68, 114.19]
|
||||
Mín: 49.52 Máx: 112.54
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR TIPO DE VEÍCULO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- BIKE ---
|
||||
Contagem de Veículos:
|
||||
Média: 111.60 Desvio Padrão: 69.43
|
||||
Mediana: 105.00 IC 95%: [12.80, 210.40]
|
||||
Mín: 29.00 Máx: 215.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 78.89 Desvio Padrão: 20.87
|
||||
Mediana: 89.97 IC 95%: [49.20, 108.59]
|
||||
Mín: 49.27 Máx: 98.23
|
||||
|
||||
|
||||
--- LIGHT ---
|
||||
Contagem de Veículos:
|
||||
Média: 333.80 Desvio Padrão: 221.25
|
||||
Mediana: 332.00 IC 95%: [18.95, 648.65]
|
||||
Mín: 90.00 Máx: 669.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 83.83 Desvio Padrão: 24.74
|
||||
Mediana: 86.14 IC 95%: [48.63, 119.03]
|
||||
Mín: 51.94 Máx: 120.26
|
||||
|
||||
|
||||
--- HEAVY ---
|
||||
Contagem de Veículos:
|
||||
Média: 113.80 Desvio Padrão: 68.36
|
||||
Mediana: 102.00 IC 95%: [16.53, 211.07]
|
||||
Mín: 30.00 Máx: 213.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 76.79 Desvio Padrão: 21.46
|
||||
Mediana: 81.20 IC 95%: [46.26, 107.33]
|
||||
Mín: 43.10 Máx: 102.14
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR INTERSEÇÃO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- Cr1 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 221.40 Desvio Padrão: 226.21
|
||||
Mediana: 128.00 IC 95%: [-100.50, 543.30]
|
||||
Mín: 61.00 Máx: 616.00
|
||||
|
||||
|
||||
--- Cr2 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 3.60 Desvio Padrão: 5.90
|
||||
Mediana: 2.00 IC 95%: [-4.79, 11.99]
|
||||
Mín: 0.00 Máx: 14.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 3.60 Desvio Padrão: 5.90
|
||||
Mediana: 2.00 IC 95%: [-4.79, 11.99]
|
||||
Mín: 0.00 Máx: 14.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 228.60 Desvio Padrão: 211.41
|
||||
Mediana: 126.00 IC 95%: [-72.24, 529.44]
|
||||
Mín: 93.00 Máx: 593.00
|
||||
|
||||
|
||||
--- Cr3 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.20 Desvio Padrão: 2.68
|
||||
Mediana: 0.00 IC 95%: [-2.62, 5.02]
|
||||
Mín: 0.00 Máx: 6.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.20 Desvio Padrão: 2.68
|
||||
Mediana: 0.00 IC 95%: [-2.62, 5.02]
|
||||
Mín: 0.00 Máx: 6.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 263.80 Desvio Padrão: 240.18
|
||||
Mediana: 128.00 IC 95%: [-77.98, 605.58]
|
||||
Mín: 57.00 Máx: 604.00
|
||||
|
||||
|
||||
--- Cr4 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.60 Desvio Padrão: 0.89
|
||||
Mediana: 0.00 IC 95%: [-0.67, 1.87]
|
||||
Mín: 0.00 Máx: 2.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.60 Desvio Padrão: 0.89
|
||||
Mediana: 0.00 IC 95%: [-0.67, 1.87]
|
||||
Mín: 0.00 Máx: 2.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 95.00 Desvio Padrão: 78.43
|
||||
Mediana: 62.00 IC 95%: [-16.60, 206.60]
|
||||
Mín: 43.00 Máx: 231.00
|
||||
|
||||
|
||||
--- Cr5 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 2.80 Desvio Padrão: 3.63
|
||||
Mediana: 1.00 IC 95%: [-2.37, 7.97]
|
||||
Mín: 0.00 Máx: 9.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 2.80 Desvio Padrão: 3.63
|
||||
Mediana: 1.00 IC 95%: [-2.37, 7.97]
|
||||
Mín: 0.00 Máx: 9.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 207.60 Desvio Padrão: 166.31
|
||||
Mediana: 139.00 IC 95%: [-29.06, 444.26]
|
||||
Mín: 76.00 Máx: 493.00
|
||||
|
||||
|
||||
--- ExitNode ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 559.20 Desvio Padrão: 358.22
|
||||
Mediana: 539.00 IC 95%: [49.44, 1068.96]
|
||||
Mín: 149.00 Máx: 1097.00
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
RESUMOS INDIVIDUAIS DAS EXECUÇÕES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Execução #1 [simulation-high.properties]:
|
||||
Gerados: 1836, Completados: 348 (19.0%)
|
||||
Tempo Médio no Sistema: 75.91s
|
||||
Tempo Médio de Espera: 72.28s
|
||||
|
||||
Execução #2 [simulation-high.properties]:
|
||||
Gerados: 1728, Completados: 663 (38.4%)
|
||||
Tempo Médio no Sistema: 52.10s
|
||||
Tempo Médio de Espera: 49.52s
|
||||
|
||||
Execução #3 [simulation-high.properties]:
|
||||
Gerados: 1747, Completados: 539 (30.9%)
|
||||
Tempo Médio no Sistema: 116.39s
|
||||
Tempo Médio de Espera: 112.54s
|
||||
|
||||
Execução #4 [simulation-high.properties]:
|
||||
Gerados: 1769, Completados: 149 (8.4%)
|
||||
Tempo Médio no Sistema: 89.64s
|
||||
Tempo Médio de Espera: 85.89s
|
||||
|
||||
Execução #5 [simulation-high.properties]:
|
||||
Gerados: 1827, Completados: 1097 (60.0%)
|
||||
Tempo Médio no Sistema: 90.49s
|
||||
Tempo Médio de Espera: 86.93s
|
||||
|
||||
================================================================================
|
||||
FIM DO RELATÓRIO
|
||||
================================================================================
|
||||
11
main/analysis/HIGH_LOAD_20251211-021618.csv
Normal file
@@ -0,0 +1,11 @@
|
||||
Execução,VeículosGerados,VeículosCompletados,TaxaConclusão,TempoMédioSistema,TempoMédioEspera,TempoMínimoSistema,TempoMáximoSistema
|
||||
1,1801,1711,95.00,140.07,135.67,70.03,280.14
|
||||
2,1796,1721,95.82,143.35,139.00,71.68,286.70
|
||||
3,1834,1773,96.67,149.98,145.57,74.99,299.95
|
||||
4,1799,1527,84.88,140.39,136.20,70.19,280.77
|
||||
5,1830,1670,91.26,150.89,146.66,75.45,301.78
|
||||
6,1833,1690,92.20,139.40,135.24,69.70,278.80
|
||||
7,1822,1769,97.09,148.40,144.03,74.20,296.80
|
||||
8,1756,1487,84.68,135.16,131.01,67.58,270.32
|
||||
9,1829,1640,89.67,144.65,140.25,72.32,289.30
|
||||
10,1784,1745,97.81,151.09,146.69,75.54,302.17
|
||||
|
240
main/analysis/HIGH_LOAD_20251211-021618.txt
Normal file
@@ -0,0 +1,240 @@
|
||||
================================================================================
|
||||
ANÁLISE ESTATÍSTICA MULTI-EXECUÇÃO
|
||||
================================================================================
|
||||
Configuração: simulation-high.properties
|
||||
Número de Execuções: 10
|
||||
Data da Análise: 2025-12-11 02:16:18
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
MÉTRICAS GLOBAIS
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Veículos Gerados:
|
||||
Média: 1808.40 Desvio Padrão: 25.76
|
||||
Mediana: 1811.50 IC 95%: [1787.45, 1829.35]
|
||||
Mín: 1756.00 Máx: 1834.00
|
||||
|
||||
Veículos Completados:
|
||||
Média: 1673.30 Desvio Padrão: 97.44
|
||||
Mediana: 1700.50 IC 95%: [1594.08, 1752.52]
|
||||
Mín: 1487.00 Máx: 1773.00
|
||||
|
||||
Taxa de Conclusão (%):
|
||||
Média: 92.51 Desvio Padrão: 4.86
|
||||
Mediana: 93.60 IC 95%: [88.55, 96.46]
|
||||
Mín: 84.68 Máx: 97.81
|
||||
|
||||
Tempo Médio no Sistema (segundos):
|
||||
Média: 144.34 Desvio Padrão: 5.58
|
||||
Mediana: 144.00 IC 95%: [139.80, 148.87]
|
||||
Mín: 135.16 Máx: 151.09
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 140.03 Desvio Padrão: 5.52
|
||||
Mediana: 139.62 IC 95%: [135.55, 144.52]
|
||||
Mín: 131.01 Máx: 146.69
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR TIPO DE VEÍCULO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- BIKE ---
|
||||
Contagem de Veículos:
|
||||
Média: 338.60 Desvio Padrão: 31.26
|
||||
Mediana: 342.00 IC 95%: [313.19, 364.01]
|
||||
Mín: 279.00 Máx: 377.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 140.36 Desvio Padrão: 11.64
|
||||
Mediana: 138.38 IC 95%: [130.90, 149.82]
|
||||
Mín: 121.77 Máx: 165.19
|
||||
|
||||
|
||||
--- LIGHT ---
|
||||
Contagem de Veículos:
|
||||
Média: 991.30 Desvio Padrão: 49.19
|
||||
Mediana: 1011.00 IC 95%: [951.31, 1031.29]
|
||||
Mín: 893.00 Máx: 1035.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 141.44 Desvio Padrão: 7.85
|
||||
Mediana: 143.16 IC 95%: [135.06, 147.83]
|
||||
Mín: 130.22 Máx: 151.65
|
||||
|
||||
|
||||
--- HEAVY ---
|
||||
Contagem de Veículos:
|
||||
Média: 343.40 Desvio Padrão: 29.42
|
||||
Mediana: 343.00 IC 95%: [319.48, 367.32]
|
||||
Mín: 288.00 Máx: 385.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 135.81 Desvio Padrão: 9.45
|
||||
Mediana: 134.25 IC 95%: [128.13, 143.49]
|
||||
Mín: 118.95 Máx: 149.71
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR INTERSEÇÃO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- Cr1 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.70 Desvio Padrão: 1.25
|
||||
Mediana: 0.00 IC 95%: [-0.32, 1.72]
|
||||
Mín: 0.00 Máx: 3.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.70 Desvio Padrão: 1.25
|
||||
Mediana: 0.00 IC 95%: [-0.32, 1.72]
|
||||
Mín: 0.00 Máx: 3.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 578.20 Desvio Padrão: 50.05
|
||||
Mediana: 604.00 IC 95%: [537.51, 618.89]
|
||||
Mín: 493.00 Máx: 626.00
|
||||
|
||||
|
||||
--- Cr2 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.40 Desvio Padrão: 2.37
|
||||
Mediana: 0.00 IC 95%: [-0.52, 3.32]
|
||||
Mín: 0.00 Máx: 6.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.40 Desvio Padrão: 2.37
|
||||
Mediana: 0.00 IC 95%: [-0.52, 3.32]
|
||||
Mín: 0.00 Máx: 6.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 550.30 Desvio Padrão: 50.21
|
||||
Mediana: 540.00 IC 95%: [509.48, 591.12]
|
||||
Mín: 459.00 Máx: 616.00
|
||||
|
||||
|
||||
--- Cr3 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.40 Desvio Padrão: 1.26
|
||||
Mediana: 0.00 IC 95%: [-0.63, 1.43]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.40 Desvio Padrão: 1.26
|
||||
Mediana: 0.00 IC 95%: [-0.63, 1.43]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 589.10 Desvio Padrão: 42.91
|
||||
Mediana: 595.00 IC 95%: [554.21, 623.99]
|
||||
Mín: 502.00 Máx: 671.00
|
||||
|
||||
|
||||
--- Cr4 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.50 Desvio Padrão: 1.58
|
||||
Mediana: 1.00 IC 95%: [0.21, 2.79]
|
||||
Mín: 0.00 Máx: 5.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.50 Desvio Padrão: 1.58
|
||||
Mediana: 1.00 IC 95%: [0.21, 2.79]
|
||||
Mín: 0.00 Máx: 5.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 540.10 Desvio Padrão: 52.20
|
||||
Mediana: 549.50 IC 95%: [497.66, 582.54]
|
||||
Mín: 442.00 Máx: 603.00
|
||||
|
||||
|
||||
--- Cr5 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.50 Desvio Padrão: 1.51
|
||||
Mediana: 1.00 IC 95%: [0.27, 2.73]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.50 Desvio Padrão: 1.51
|
||||
Mediana: 1.00 IC 95%: [0.27, 2.73]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 1075.10 Desvio Padrão: 78.71
|
||||
Mediana: 1064.00 IC 95%: [1011.11, 1139.09]
|
||||
Mín: 920.00 Máx: 1176.00
|
||||
|
||||
|
||||
--- ExitNode ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 1673.30 Desvio Padrão: 97.44
|
||||
Mediana: 1700.50 IC 95%: [1594.08, 1752.52]
|
||||
Mín: 1487.00 Máx: 1773.00
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
RESUMOS INDIVIDUAIS DAS EXECUÇÕES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Execução #1 [simulation-high.properties]:
|
||||
Gerados: 1801, Completados: 1711 (95.0%)
|
||||
Tempo Médio no Sistema: 140.07s
|
||||
Tempo Médio de Espera: 135.67s
|
||||
|
||||
Execução #2 [simulation-high.properties]:
|
||||
Gerados: 1796, Completados: 1721 (95.8%)
|
||||
Tempo Médio no Sistema: 143.35s
|
||||
Tempo Médio de Espera: 139.00s
|
||||
|
||||
Execução #3 [simulation-high.properties]:
|
||||
Gerados: 1834, Completados: 1773 (96.7%)
|
||||
Tempo Médio no Sistema: 149.98s
|
||||
Tempo Médio de Espera: 145.57s
|
||||
|
||||
Execução #4 [simulation-high.properties]:
|
||||
Gerados: 1799, Completados: 1527 (84.9%)
|
||||
Tempo Médio no Sistema: 140.39s
|
||||
Tempo Médio de Espera: 136.20s
|
||||
|
||||
Execução #5 [simulation-high.properties]:
|
||||
Gerados: 1830, Completados: 1670 (91.3%)
|
||||
Tempo Médio no Sistema: 150.89s
|
||||
Tempo Médio de Espera: 146.66s
|
||||
|
||||
Execução #6 [simulation-high.properties]:
|
||||
Gerados: 1833, Completados: 1690 (92.2%)
|
||||
Tempo Médio no Sistema: 139.40s
|
||||
Tempo Médio de Espera: 135.24s
|
||||
|
||||
Execução #7 [simulation-high.properties]:
|
||||
Gerados: 1822, Completados: 1769 (97.1%)
|
||||
Tempo Médio no Sistema: 148.40s
|
||||
Tempo Médio de Espera: 144.03s
|
||||
|
||||
Execução #8 [simulation-high.properties]:
|
||||
Gerados: 1756, Completados: 1487 (84.7%)
|
||||
Tempo Médio no Sistema: 135.16s
|
||||
Tempo Médio de Espera: 131.01s
|
||||
|
||||
Execução #9 [simulation-high.properties]:
|
||||
Gerados: 1829, Completados: 1640 (89.7%)
|
||||
Tempo Médio no Sistema: 144.65s
|
||||
Tempo Médio de Espera: 140.25s
|
||||
|
||||
Execução #10 [simulation-high.properties]:
|
||||
Gerados: 1784, Completados: 1745 (97.8%)
|
||||
Tempo Médio no Sistema: 151.09s
|
||||
Tempo Médio de Espera: 146.69s
|
||||
|
||||
================================================================================
|
||||
FIM DO RELATÓRIO
|
||||
================================================================================
|
||||
@@ -1,6 +0,0 @@
|
||||
Execução,VeículosGerados,VeículosCompletados,TaxaConclusão,TempoMédioSistema,TempoMédioEspera,TempoMínimoSistema,TempoMáximoSistema
|
||||
1,368,329,89.40,78.34,74.19,39.17,156.67
|
||||
2,368,218,59.24,60.44,56.64,30.22,120.89
|
||||
3,349,235,67.34,53.51,49.44,26.76,107.03
|
||||
4,332,243,73.19,69.63,65.50,34.82,139.27
|
||||
5,322,221,68.63,47.52,43.77,23.76,95.05
|
||||
|
@@ -1,215 +0,0 @@
|
||||
================================================================================
|
||||
ANÁLISE ESTATÍSTICA MULTI-EXECUÇÃO
|
||||
================================================================================
|
||||
Configuração: simulation-low.properties
|
||||
Número de Execuções: 5
|
||||
Data da Análise: 2025-12-08 08:19:33
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
MÉTRICAS GLOBAIS
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Veículos Gerados:
|
||||
Média: 347.80 Desvio Padrão: 20.81
|
||||
Mediana: 349.00 IC 95%: [318.18, 377.42]
|
||||
Mín: 322.00 Máx: 368.00
|
||||
|
||||
Veículos Completados:
|
||||
Média: 249.20 Desvio Padrão: 45.76
|
||||
Mediana: 235.00 IC 95%: [184.08, 314.32]
|
||||
Mín: 218.00 Máx: 329.00
|
||||
|
||||
Taxa de Conclusão (%):
|
||||
Média: 71.56 Desvio Padrão: 11.17
|
||||
Mediana: 68.63 IC 95%: [55.66, 87.46]
|
||||
Mín: 59.24 Máx: 89.40
|
||||
|
||||
Tempo Médio no Sistema (segundos):
|
||||
Média: 61.89 Desvio Padrão: 12.34
|
||||
Mediana: 60.44 IC 95%: [44.33, 79.45]
|
||||
Mín: 47.52 Máx: 78.34
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 57.91 Desvio Padrão: 12.21
|
||||
Mediana: 56.64 IC 95%: [40.54, 75.28]
|
||||
Mín: 43.77 Máx: 74.19
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR TIPO DE VEÍCULO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- BIKE ---
|
||||
Contagem de Veículos:
|
||||
Média: 48.20 Desvio Padrão: 12.38
|
||||
Mediana: 47.00 IC 95%: [30.59, 65.81]
|
||||
Mín: 36.00 Máx: 68.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 51.22 Desvio Padrão: 16.62
|
||||
Mediana: 46.02 IC 95%: [27.56, 74.87]
|
||||
Mín: 40.06 Máx: 80.31
|
||||
|
||||
|
||||
--- LIGHT ---
|
||||
Contagem de Veículos:
|
||||
Média: 151.00 Desvio Padrão: 22.64
|
||||
Mediana: 146.00 IC 95%: [118.78, 183.22]
|
||||
Mín: 133.00 Máx: 189.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 58.33 Desvio Padrão: 11.58
|
||||
Mediana: 53.58 IC 95%: [41.85, 74.80]
|
||||
Mín: 45.31 Máx: 74.17
|
||||
|
||||
|
||||
--- HEAVY ---
|
||||
Contagem de Veículos:
|
||||
Média: 50.00 Desvio Padrão: 13.77
|
||||
Mediana: 47.00 IC 95%: [30.41, 69.59]
|
||||
Mín: 35.00 Máx: 72.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 60.73 Desvio Padrão: 34.92
|
||||
Mediana: 44.79 IC 95%: [11.04, 110.42]
|
||||
Mín: 40.26 Máx: 122.51
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR INTERSEÇÃO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- Cr1 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 5.00 Desvio Padrão: 4.47
|
||||
Mediana: 4.00 IC 95%: [-1.36, 11.36]
|
||||
Mín: 0.00 Máx: 12.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 5.00 Desvio Padrão: 4.47
|
||||
Mediana: 4.00 IC 95%: [-1.36, 11.36]
|
||||
Mín: 0.00 Máx: 12.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 87.00 Desvio Padrão: 29.01
|
||||
Mediana: 93.00 IC 95%: [45.72, 128.28]
|
||||
Mín: 56.00 Máx: 123.00
|
||||
|
||||
|
||||
--- Cr2 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 95.20 Desvio Padrão: 24.86
|
||||
Mediana: 100.00 IC 95%: [59.82, 130.58]
|
||||
Mín: 61.00 Máx: 125.00
|
||||
|
||||
|
||||
--- Cr3 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 91.40 Desvio Padrão: 28.68
|
||||
Mediana: 103.00 IC 95%: [50.58, 132.22]
|
||||
Mín: 56.00 Máx: 126.00
|
||||
|
||||
|
||||
--- Cr4 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.80 Desvio Padrão: 0.84
|
||||
Mediana: 1.00 IC 95%: [-0.39, 1.99]
|
||||
Mín: 0.00 Máx: 2.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.80 Desvio Padrão: 0.84
|
||||
Mediana: 1.00 IC 95%: [-0.39, 1.99]
|
||||
Mín: 0.00 Máx: 2.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 63.00 Desvio Padrão: 21.11
|
||||
Mediana: 62.00 IC 95%: [32.96, 93.04]
|
||||
Mín: 38.00 Máx: 87.00
|
||||
|
||||
|
||||
--- Cr5 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 2.20 Desvio Padrão: 2.59
|
||||
Mediana: 1.00 IC 95%: [-1.48, 5.88]
|
||||
Mín: 0.00 Máx: 5.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 2.20 Desvio Padrão: 2.59
|
||||
Mediana: 1.00 IC 95%: [-1.48, 5.88]
|
||||
Mín: 0.00 Máx: 5.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 126.40 Desvio Padrão: 45.39
|
||||
Mediana: 111.00 IC 95%: [61.81, 190.99]
|
||||
Mín: 86.00 Máx: 203.00
|
||||
|
||||
|
||||
--- ExitNode ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 249.20 Desvio Padrão: 45.76
|
||||
Mediana: 235.00 IC 95%: [184.08, 314.32]
|
||||
Mín: 218.00 Máx: 329.00
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
RESUMOS INDIVIDUAIS DAS EXECUÇÕES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Execução #1 [simulation-low.properties]:
|
||||
Gerados: 368, Completados: 329 (89.4%)
|
||||
Tempo Médio no Sistema: 78.34s
|
||||
Tempo Médio de Espera: 74.19s
|
||||
|
||||
Execução #2 [simulation-low.properties]:
|
||||
Gerados: 368, Completados: 218 (59.2%)
|
||||
Tempo Médio no Sistema: 60.44s
|
||||
Tempo Médio de Espera: 56.64s
|
||||
|
||||
Execução #3 [simulation-low.properties]:
|
||||
Gerados: 349, Completados: 235 (67.3%)
|
||||
Tempo Médio no Sistema: 53.51s
|
||||
Tempo Médio de Espera: 49.44s
|
||||
|
||||
Execução #4 [simulation-low.properties]:
|
||||
Gerados: 332, Completados: 243 (73.2%)
|
||||
Tempo Médio no Sistema: 69.63s
|
||||
Tempo Médio de Espera: 65.50s
|
||||
|
||||
Execução #5 [simulation-low.properties]:
|
||||
Gerados: 322, Completados: 221 (68.6%)
|
||||
Tempo Médio no Sistema: 47.52s
|
||||
Tempo Médio de Espera: 43.77s
|
||||
|
||||
================================================================================
|
||||
FIM DO RELATÓRIO
|
||||
================================================================================
|
||||
11
main/analysis/LOW_LOAD_20251211-021249.csv
Normal file
@@ -0,0 +1,11 @@
|
||||
Execução,VeículosGerados,VeículosCompletados,TaxaConclusão,TempoMédioSistema,TempoMédioEspera,TempoMínimoSistema,TempoMáximoSistema
|
||||
1,353,334,94.62,78.12,73.90,39.06,156.25
|
||||
2,366,359,98.09,90.80,86.56,45.40,181.60
|
||||
3,352,340,96.59,78.90,74.45,39.45,157.79
|
||||
4,362,347,95.86,69.35,64.88,34.68,138.71
|
||||
5,338,324,95.86,71.04,66.72,35.52,142.08
|
||||
6,371,366,98.65,79.54,75.17,39.77,159.09
|
||||
7,355,345,97.18,69.18,64.63,34.59,138.35
|
||||
8,364,361,99.18,79.69,75.35,39.84,159.37
|
||||
9,363,309,85.12,71.72,67.62,35.86,143.44
|
||||
10,386,376,97.41,78.78,74.30,39.39,157.56
|
||||
|
240
main/analysis/LOW_LOAD_20251211-021249.txt
Normal file
@@ -0,0 +1,240 @@
|
||||
================================================================================
|
||||
ANÁLISE ESTATÍSTICA MULTI-EXECUÇÃO
|
||||
================================================================================
|
||||
Configuração: simulation-low.properties
|
||||
Número de Execuções: 10
|
||||
Data da Análise: 2025-12-11 02:12:49
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
MÉTRICAS GLOBAIS
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Veículos Gerados:
|
||||
Média: 361.00 Desvio Padrão: 12.80
|
||||
Mediana: 362.50 IC 95%: [350.60, 371.40]
|
||||
Mín: 338.00 Máx: 386.00
|
||||
|
||||
Veículos Completados:
|
||||
Média: 346.10 Desvio Padrão: 20.35
|
||||
Mediana: 346.00 IC 95%: [329.55, 362.65]
|
||||
Mín: 309.00 Máx: 376.00
|
||||
|
||||
Taxa de Conclusão (%):
|
||||
Média: 95.86 Desvio Padrão: 4.02
|
||||
Mediana: 96.89 IC 95%: [92.59, 99.12]
|
||||
Mín: 85.12 Máx: 99.18
|
||||
|
||||
Tempo Médio no Sistema (segundos):
|
||||
Média: 76.71 Desvio Padrão: 6.62
|
||||
Mediana: 78.45 IC 95%: [71.33, 82.09]
|
||||
Mín: 69.18 Máx: 90.80
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 72.36 Desvio Padrão: 6.66
|
||||
Mediana: 74.10 IC 95%: [66.95, 77.77]
|
||||
Mín: 64.63 Máx: 86.56
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR TIPO DE VEÍCULO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- BIKE ---
|
||||
Contagem de Veículos:
|
||||
Média: 69.60 Desvio Padrão: 6.69
|
||||
Mediana: 71.00 IC 95%: [64.16, 75.04]
|
||||
Mín: 58.00 Máx: 78.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 68.27 Desvio Padrão: 18.90
|
||||
Mediana: 61.61 IC 95%: [52.90, 83.64]
|
||||
Mín: 55.09 Máx: 119.43
|
||||
|
||||
|
||||
--- LIGHT ---
|
||||
Contagem de Veículos:
|
||||
Média: 204.80 Desvio Padrão: 13.91
|
||||
Mediana: 202.00 IC 95%: [193.49, 216.11]
|
||||
Mín: 185.00 Máx: 231.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 72.78 Desvio Padrão: 7.41
|
||||
Mediana: 72.59 IC 95%: [66.76, 78.80]
|
||||
Mín: 63.84 Máx: 83.07
|
||||
|
||||
|
||||
--- HEAVY ---
|
||||
Contagem de Veículos:
|
||||
Média: 71.70 Desvio Padrão: 8.33
|
||||
Mediana: 70.00 IC 95%: [64.93, 78.47]
|
||||
Mín: 60.00 Máx: 83.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 75.65 Desvio Padrão: 17.00
|
||||
Mediana: 69.72 IC 95%: [61.83, 89.47]
|
||||
Mín: 61.05 Máx: 116.12
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR INTERSEÇÃO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- Cr1 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.50 Desvio Padrão: 2.68
|
||||
Mediana: 0.00 IC 95%: [-0.68, 3.68]
|
||||
Mín: 0.00 Máx: 7.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.50 Desvio Padrão: 2.68
|
||||
Mediana: 0.00 IC 95%: [-0.68, 3.68]
|
||||
Mín: 0.00 Máx: 7.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 118.90 Desvio Padrão: 6.37
|
||||
Mediana: 119.50 IC 95%: [113.72, 124.08]
|
||||
Mín: 109.00 Máx: 127.00
|
||||
|
||||
|
||||
--- Cr2 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.80 Desvio Padrão: 1.32
|
||||
Mediana: 0.00 IC 95%: [-0.27, 1.87]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.80 Desvio Padrão: 1.32
|
||||
Mediana: 0.00 IC 95%: [-0.27, 1.87]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 118.30 Desvio Padrão: 8.82
|
||||
Mediana: 121.00 IC 95%: [111.13, 125.47]
|
||||
Mín: 104.00 Máx: 128.00
|
||||
|
||||
|
||||
--- Cr3 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.30 Desvio Padrão: 0.48
|
||||
Mediana: 0.00 IC 95%: [-0.09, 0.69]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.30 Desvio Padrão: 0.48
|
||||
Mediana: 0.00 IC 95%: [-0.09, 0.69]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 120.70 Desvio Padrão: 10.27
|
||||
Mediana: 121.50 IC 95%: [112.35, 129.05]
|
||||
Mín: 108.00 Máx: 132.00
|
||||
|
||||
|
||||
--- Cr4 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.20 Desvio Padrão: 1.48
|
||||
Mediana: 0.50 IC 95%: [0.00, 2.40]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.20 Desvio Padrão: 1.48
|
||||
Mediana: 0.50 IC 95%: [0.00, 2.40]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 111.50 Desvio Padrão: 13.71
|
||||
Mediana: 115.00 IC 95%: [100.35, 122.65]
|
||||
Mín: 79.00 Máx: 127.00
|
||||
|
||||
|
||||
--- Cr5 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.60 Desvio Padrão: 1.35
|
||||
Mediana: 1.00 IC 95%: [0.50, 2.70]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.60 Desvio Padrão: 1.35
|
||||
Mediana: 1.00 IC 95%: [0.50, 2.70]
|
||||
Mín: 0.00 Máx: 4.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 225.40 Desvio Padrão: 21.42
|
||||
Mediana: 232.50 IC 95%: [207.99, 242.81]
|
||||
Mín: 178.00 Máx: 251.00
|
||||
|
||||
|
||||
--- ExitNode ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 346.10 Desvio Padrão: 20.35
|
||||
Mediana: 346.00 IC 95%: [329.55, 362.65]
|
||||
Mín: 309.00 Máx: 376.00
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
RESUMOS INDIVIDUAIS DAS EXECUÇÕES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Execução #1 [simulation-low.properties]:
|
||||
Gerados: 353, Completados: 334 (94.6%)
|
||||
Tempo Médio no Sistema: 78.12s
|
||||
Tempo Médio de Espera: 73.90s
|
||||
|
||||
Execução #2 [simulation-low.properties]:
|
||||
Gerados: 366, Completados: 359 (98.1%)
|
||||
Tempo Médio no Sistema: 90.80s
|
||||
Tempo Médio de Espera: 86.56s
|
||||
|
||||
Execução #3 [simulation-low.properties]:
|
||||
Gerados: 352, Completados: 340 (96.6%)
|
||||
Tempo Médio no Sistema: 78.90s
|
||||
Tempo Médio de Espera: 74.45s
|
||||
|
||||
Execução #4 [simulation-low.properties]:
|
||||
Gerados: 362, Completados: 347 (95.9%)
|
||||
Tempo Médio no Sistema: 69.35s
|
||||
Tempo Médio de Espera: 64.88s
|
||||
|
||||
Execução #5 [simulation-low.properties]:
|
||||
Gerados: 338, Completados: 324 (95.9%)
|
||||
Tempo Médio no Sistema: 71.04s
|
||||
Tempo Médio de Espera: 66.72s
|
||||
|
||||
Execução #6 [simulation-low.properties]:
|
||||
Gerados: 371, Completados: 366 (98.7%)
|
||||
Tempo Médio no Sistema: 79.54s
|
||||
Tempo Médio de Espera: 75.17s
|
||||
|
||||
Execução #7 [simulation-low.properties]:
|
||||
Gerados: 355, Completados: 345 (97.2%)
|
||||
Tempo Médio no Sistema: 69.18s
|
||||
Tempo Médio de Espera: 64.63s
|
||||
|
||||
Execução #8 [simulation-low.properties]:
|
||||
Gerados: 364, Completados: 361 (99.2%)
|
||||
Tempo Médio no Sistema: 79.69s
|
||||
Tempo Médio de Espera: 75.35s
|
||||
|
||||
Execução #9 [simulation-low.properties]:
|
||||
Gerados: 363, Completados: 309 (85.1%)
|
||||
Tempo Médio no Sistema: 71.72s
|
||||
Tempo Médio de Espera: 67.62s
|
||||
|
||||
Execução #10 [simulation-low.properties]:
|
||||
Gerados: 386, Completados: 376 (97.4%)
|
||||
Tempo Médio no Sistema: 78.78s
|
||||
Tempo Médio de Espera: 74.30s
|
||||
|
||||
================================================================================
|
||||
FIM DO RELATÓRIO
|
||||
================================================================================
|
||||
@@ -1,6 +0,0 @@
|
||||
Execução,VeículosGerados,VeículosCompletados,TaxaConclusão,TempoMédioSistema,TempoMédioEspera,TempoMínimoSistema,TempoMáximoSistema
|
||||
1,891,202,22.67,69.75,66.09,34.87,139.50
|
||||
2,871,340,39.04,68.73,64.73,34.37,137.46
|
||||
3,953,541,56.77,68.64,65.24,34.32,137.28
|
||||
4,888,501,56.42,60.85,57.48,30.42,121.69
|
||||
5,869,387,44.53,58.29,55.37,29.15,116.58
|
||||
|
@@ -1,209 +0,0 @@
|
||||
================================================================================
|
||||
ANÁLISE ESTATÍSTICA MULTI-EXECUÇÃO
|
||||
================================================================================
|
||||
Configuração: simulation-medium.properties
|
||||
Número de Execuções: 5
|
||||
Data da Análise: 2025-12-08 08:20:05
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
MÉTRICAS GLOBAIS
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Veículos Gerados:
|
||||
Média: 894.40 Desvio Padrão: 34.20
|
||||
Mediana: 888.00 IC 95%: [845.73, 943.07]
|
||||
Mín: 869.00 Máx: 953.00
|
||||
|
||||
Veículos Completados:
|
||||
Média: 394.20 Desvio Padrão: 134.99
|
||||
Mediana: 387.00 IC 95%: [202.11, 586.29]
|
||||
Mín: 202.00 Máx: 541.00
|
||||
|
||||
Taxa de Conclusão (%):
|
||||
Média: 43.89 Desvio Padrão: 14.12
|
||||
Mediana: 44.53 IC 95%: [23.80, 63.97]
|
||||
Mín: 22.67 Máx: 56.77
|
||||
|
||||
Tempo Médio no Sistema (segundos):
|
||||
Média: 65.25 Desvio Padrão: 5.28
|
||||
Mediana: 68.64 IC 95%: [57.73, 72.77]
|
||||
Mín: 58.29 Máx: 69.75
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 61.78 Desvio Padrão: 4.97
|
||||
Mediana: 64.73 IC 95%: [54.71, 68.86]
|
||||
Mín: 55.37 Máx: 66.09
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR TIPO DE VEÍCULO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- BIKE ---
|
||||
Contagem de Veículos:
|
||||
Média: 83.60 Desvio Padrão: 28.80
|
||||
Mediana: 88.00 IC 95%: [42.62, 124.58]
|
||||
Mín: 42.00 Máx: 112.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 64.62 Desvio Padrão: 9.80
|
||||
Mediana: 65.07 IC 95%: [50.67, 78.57]
|
||||
Mín: 53.82 Máx: 77.73
|
||||
|
||||
|
||||
--- LIGHT ---
|
||||
Contagem de Veículos:
|
||||
Média: 234.80 Desvio Padrão: 86.82
|
||||
Mediana: 221.00 IC 95%: [111.26, 358.34]
|
||||
Mín: 119.00 Máx: 328.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 60.49 Desvio Padrão: 4.15
|
||||
Mediana: 61.41 IC 95%: [54.58, 66.39]
|
||||
Mín: 53.78 Máx: 65.19
|
||||
|
||||
|
||||
--- HEAVY ---
|
||||
Contagem de Veículos:
|
||||
Média: 75.80 Desvio Padrão: 21.70
|
||||
Mediana: 78.00 IC 95%: [44.93, 106.67]
|
||||
Mín: 41.00 Máx: 101.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 62.90 Desvio Padrão: 13.27
|
||||
Mediana: 63.80 IC 95%: [44.01, 81.79]
|
||||
Mín: 42.19 Máx: 78.56
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR INTERSEÇÃO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- Cr1 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 2.00 Desvio Padrão: 2.55
|
||||
Mediana: 1.00 IC 95%: [-1.63, 5.63]
|
||||
Mín: 0.00 Máx: 6.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 2.00 Desvio Padrão: 2.55
|
||||
Mediana: 1.00 IC 95%: [-1.63, 5.63]
|
||||
Mín: 0.00 Máx: 6.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 106.20 Desvio Padrão: 62.26
|
||||
Mediana: 72.00 IC 95%: [17.60, 194.80]
|
||||
Mín: 56.00 Máx: 208.00
|
||||
|
||||
|
||||
--- Cr2 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.40 Desvio Padrão: 3.13
|
||||
Mediana: 0.00 IC 95%: [-3.05, 5.85]
|
||||
Mín: 0.00 Máx: 7.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.40 Desvio Padrão: 3.13
|
||||
Mediana: 0.00 IC 95%: [-3.05, 5.85]
|
||||
Mín: 0.00 Máx: 7.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 123.60 Desvio Padrão: 90.00
|
||||
Mediana: 102.00 IC 95%: [-4.47, 251.67]
|
||||
Mín: 49.00 Máx: 275.00
|
||||
|
||||
|
||||
--- Cr3 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.20 Desvio Padrão: 0.45
|
||||
Mediana: 0.00 IC 95%: [-0.44, 0.84]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 102.60 Desvio Padrão: 50.09
|
||||
Mediana: 104.00 IC 95%: [31.32, 173.88]
|
||||
Mín: 55.00 Máx: 181.00
|
||||
|
||||
|
||||
--- Cr4 ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 68.80 Desvio Padrão: 27.10
|
||||
Mediana: 60.00 IC 95%: [30.24, 107.36]
|
||||
Mín: 47.00 Máx: 113.00
|
||||
|
||||
|
||||
--- Cr5 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.20 Desvio Padrão: 2.17
|
||||
Mediana: 0.00 IC 95%: [-1.89, 4.29]
|
||||
Mín: 0.00 Máx: 5.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.20 Desvio Padrão: 2.17
|
||||
Mediana: 0.00 IC 95%: [-1.89, 4.29]
|
||||
Mín: 0.00 Máx: 5.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 125.80 Desvio Padrão: 51.69
|
||||
Mediana: 96.00 IC 95%: [52.24, 199.36]
|
||||
Mín: 84.00 Máx: 193.00
|
||||
|
||||
|
||||
--- ExitNode ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 394.20 Desvio Padrão: 134.99
|
||||
Mediana: 387.00 IC 95%: [202.11, 586.29]
|
||||
Mín: 202.00 Máx: 541.00
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
RESUMOS INDIVIDUAIS DAS EXECUÇÕES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Execução #1 [simulation-medium.properties]:
|
||||
Gerados: 891, Completados: 202 (22.7%)
|
||||
Tempo Médio no Sistema: 69.75s
|
||||
Tempo Médio de Espera: 66.09s
|
||||
|
||||
Execução #2 [simulation-medium.properties]:
|
||||
Gerados: 871, Completados: 340 (39.0%)
|
||||
Tempo Médio no Sistema: 68.73s
|
||||
Tempo Médio de Espera: 64.73s
|
||||
|
||||
Execução #3 [simulation-medium.properties]:
|
||||
Gerados: 953, Completados: 541 (56.8%)
|
||||
Tempo Médio no Sistema: 68.64s
|
||||
Tempo Médio de Espera: 65.24s
|
||||
|
||||
Execução #4 [simulation-medium.properties]:
|
||||
Gerados: 888, Completados: 501 (56.4%)
|
||||
Tempo Médio no Sistema: 60.85s
|
||||
Tempo Médio de Espera: 57.48s
|
||||
|
||||
Execução #5 [simulation-medium.properties]:
|
||||
Gerados: 869, Completados: 387 (44.5%)
|
||||
Tempo Médio no Sistema: 58.29s
|
||||
Tempo Médio de Espera: 55.37s
|
||||
|
||||
================================================================================
|
||||
FIM DO RELATÓRIO
|
||||
================================================================================
|
||||
11
main/analysis/MEDIUM_LOAD_20251211-021429.csv
Normal file
@@ -0,0 +1,11 @@
|
||||
Execução,VeículosGerados,VeículosCompletados,TaxaConclusão,TempoMédioSistema,TempoMédioEspera,TempoMínimoSistema,TempoMáximoSistema
|
||||
1,923,887,96.10,100.39,96.03,50.19,200.77
|
||||
2,858,577,67.25,98.33,94.50,49.16,196.66
|
||||
3,873,832,95.30,101.24,96.81,50.62,202.47
|
||||
4,898,844,93.99,95.70,91.31,47.85,191.40
|
||||
5,862,697,80.86,91.12,87.17,45.56,182.24
|
||||
6,881,785,89.10,120.88,116.38,60.44,241.76
|
||||
7,948,901,95.04,99.22,94.72,49.61,198.43
|
||||
8,873,621,71.13,97.97,93.93,48.99,195.94
|
||||
9,848,807,95.17,94.44,90.15,47.22,188.88
|
||||
10,927,880,94.93,103.89,99.48,51.95,207.78
|
||||
|
240
main/analysis/MEDIUM_LOAD_20251211-021429.txt
Normal file
@@ -0,0 +1,240 @@
|
||||
================================================================================
|
||||
ANÁLISE ESTATÍSTICA MULTI-EXECUÇÃO
|
||||
================================================================================
|
||||
Configuração: simulation-medium.properties
|
||||
Número de Execuções: 10
|
||||
Data da Análise: 2025-12-11 02:14:29
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
MÉTRICAS GLOBAIS
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Veículos Gerados:
|
||||
Média: 889.10 Desvio Padrão: 33.51
|
||||
Mediana: 877.00 IC 95%: [861.85, 916.35]
|
||||
Mín: 848.00 Máx: 948.00
|
||||
|
||||
Veículos Completados:
|
||||
Média: 783.10 Desvio Padrão: 113.98
|
||||
Mediana: 819.50 IC 95%: [690.43, 875.77]
|
||||
Mín: 577.00 Máx: 901.00
|
||||
|
||||
Taxa de Conclusão (%):
|
||||
Média: 87.89 Desvio Padrão: 10.91
|
||||
Mediana: 94.46 IC 95%: [79.02, 96.76]
|
||||
Mín: 67.25 Máx: 96.10
|
||||
|
||||
Tempo Médio no Sistema (segundos):
|
||||
Média: 100.32 Desvio Padrão: 8.08
|
||||
Mediana: 98.77 IC 95%: [93.75, 106.89]
|
||||
Mín: 91.12 Máx: 120.88
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 96.05 Desvio Padrão: 7.96
|
||||
Mediana: 94.61 IC 95%: [89.58, 102.52]
|
||||
Mín: 87.17 Máx: 116.38
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR TIPO DE VEÍCULO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- BIKE ---
|
||||
Contagem de Veículos:
|
||||
Média: 157.20 Desvio Padrão: 23.74
|
||||
Mediana: 163.50 IC 95%: [137.90, 176.50]
|
||||
Mín: 113.00 Máx: 183.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 98.61 Desvio Padrão: 15.54
|
||||
Mediana: 97.14 IC 95%: [85.98, 111.24]
|
||||
Mín: 81.15 Máx: 135.92
|
||||
|
||||
|
||||
--- LIGHT ---
|
||||
Contagem de Veículos:
|
||||
Média: 469.20 Desvio Padrão: 67.33
|
||||
Mediana: 491.00 IC 95%: [414.46, 523.94]
|
||||
Mín: 336.00 Máx: 539.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 94.53 Desvio Padrão: 11.74
|
||||
Mediana: 93.58 IC 95%: [84.98, 104.08]
|
||||
Mín: 78.21 Máx: 120.14
|
||||
|
||||
|
||||
--- HEAVY ---
|
||||
Contagem de Veículos:
|
||||
Média: 156.70 Desvio Padrão: 27.98
|
||||
Mediana: 167.50 IC 95%: [133.95, 179.45]
|
||||
Mín: 117.00 Máx: 192.00
|
||||
|
||||
Tempo Médio no Sistema (segundos): Sem dados
|
||||
|
||||
Tempo Médio de Espera (segundos):
|
||||
Média: 98.43 Desvio Padrão: 8.24
|
||||
Mediana: 98.39 IC 95%: [91.73, 105.13]
|
||||
Mín: 84.28 Máx: 111.64
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ANÁLISE POR INTERSEÇÃO
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--- Cr1 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.50 Desvio Padrão: 1.08
|
||||
Mediana: 0.00 IC 95%: [-0.38, 1.38]
|
||||
Mín: 0.00 Máx: 3.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.50 Desvio Padrão: 1.08
|
||||
Mediana: 0.00 IC 95%: [-0.38, 1.38]
|
||||
Mín: 0.00 Máx: 3.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 290.40 Desvio Padrão: 33.98
|
||||
Mediana: 300.50 IC 95%: [262.77, 318.03]
|
||||
Mín: 224.00 Máx: 337.00
|
||||
|
||||
|
||||
--- Cr2 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 2.80 Desvio Padrão: 5.47
|
||||
Mediana: 0.00 IC 95%: [-1.65, 7.25]
|
||||
Mín: 0.00 Máx: 15.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 2.80 Desvio Padrão: 5.47
|
||||
Mediana: 0.00 IC 95%: [-1.65, 7.25]
|
||||
Mín: 0.00 Máx: 15.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 281.70 Desvio Padrão: 23.73
|
||||
Mediana: 284.50 IC 95%: [262.41, 300.99]
|
||||
Mín: 245.00 Máx: 323.00
|
||||
|
||||
|
||||
--- Cr3 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 0.30 Desvio Padrão: 0.48
|
||||
Mediana: 0.00 IC 95%: [-0.09, 0.69]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 0.30 Desvio Padrão: 0.48
|
||||
Mediana: 0.00 IC 95%: [-0.09, 0.69]
|
||||
Mín: 0.00 Máx: 1.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 277.30 Desvio Padrão: 27.14
|
||||
Mediana: 280.50 IC 95%: [255.24, 299.36]
|
||||
Mín: 220.00 Máx: 314.00
|
||||
|
||||
|
||||
--- Cr4 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 1.60 Desvio Padrão: 1.07
|
||||
Mediana: 2.00 IC 95%: [0.73, 2.47]
|
||||
Mín: 0.00 Máx: 3.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 1.60 Desvio Padrão: 1.07
|
||||
Mediana: 2.00 IC 95%: [0.73, 2.47]
|
||||
Mín: 0.00 Máx: 3.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 272.80 Desvio Padrão: 31.86
|
||||
Mediana: 274.50 IC 95%: [246.90, 298.70]
|
||||
Mín: 204.00 Máx: 324.00
|
||||
|
||||
|
||||
--- Cr5 ---
|
||||
Tamanho Máximo da Fila:
|
||||
Média: 2.70 Desvio Padrão: 2.45
|
||||
Mediana: 2.00 IC 95%: [0.71, 4.69]
|
||||
Mín: 0.00 Máx: 8.00
|
||||
|
||||
Tamanho Médio da Fila:
|
||||
Média: 2.70 Desvio Padrão: 2.45
|
||||
Mediana: 2.00 IC 95%: [0.71, 4.69]
|
||||
Mín: 0.00 Máx: 8.00
|
||||
|
||||
Veículos Processados:
|
||||
Média: 532.80 Desvio Padrão: 56.13
|
||||
Mediana: 538.00 IC 95%: [487.17, 578.43]
|
||||
Mín: 407.00 Máx: 615.00
|
||||
|
||||
|
||||
--- ExitNode ---
|
||||
Tamanho Máximo da Fila: Sem dados
|
||||
|
||||
Tamanho Médio da Fila: Sem dados
|
||||
|
||||
Veículos Processados:
|
||||
Média: 783.10 Desvio Padrão: 113.98
|
||||
Mediana: 819.50 IC 95%: [690.43, 875.77]
|
||||
Mín: 577.00 Máx: 901.00
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
RESUMOS INDIVIDUAIS DAS EXECUÇÕES
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Execução #1 [simulation-medium.properties]:
|
||||
Gerados: 923, Completados: 887 (96.1%)
|
||||
Tempo Médio no Sistema: 100.39s
|
||||
Tempo Médio de Espera: 96.03s
|
||||
|
||||
Execução #2 [simulation-medium.properties]:
|
||||
Gerados: 858, Completados: 577 (67.2%)
|
||||
Tempo Médio no Sistema: 98.33s
|
||||
Tempo Médio de Espera: 94.50s
|
||||
|
||||
Execução #3 [simulation-medium.properties]:
|
||||
Gerados: 873, Completados: 832 (95.3%)
|
||||
Tempo Médio no Sistema: 101.24s
|
||||
Tempo Médio de Espera: 96.81s
|
||||
|
||||
Execução #4 [simulation-medium.properties]:
|
||||
Gerados: 898, Completados: 844 (94.0%)
|
||||
Tempo Médio no Sistema: 95.70s
|
||||
Tempo Médio de Espera: 91.31s
|
||||
|
||||
Execução #5 [simulation-medium.properties]:
|
||||
Gerados: 862, Completados: 697 (80.9%)
|
||||
Tempo Médio no Sistema: 91.12s
|
||||
Tempo Médio de Espera: 87.17s
|
||||
|
||||
Execução #6 [simulation-medium.properties]:
|
||||
Gerados: 881, Completados: 785 (89.1%)
|
||||
Tempo Médio no Sistema: 120.88s
|
||||
Tempo Médio de Espera: 116.38s
|
||||
|
||||
Execução #7 [simulation-medium.properties]:
|
||||
Gerados: 948, Completados: 901 (95.0%)
|
||||
Tempo Médio no Sistema: 99.22s
|
||||
Tempo Médio de Espera: 94.72s
|
||||
|
||||
Execução #8 [simulation-medium.properties]:
|
||||
Gerados: 873, Completados: 621 (71.1%)
|
||||
Tempo Médio no Sistema: 97.97s
|
||||
Tempo Médio de Espera: 93.93s
|
||||
|
||||
Execução #9 [simulation-medium.properties]:
|
||||
Gerados: 848, Completados: 807 (95.2%)
|
||||
Tempo Médio no Sistema: 94.44s
|
||||
Tempo Médio de Espera: 90.15s
|
||||
|
||||
Execução #10 [simulation-medium.properties]:
|
||||
Gerados: 927, Completados: 880 (94.9%)
|
||||
Tempo Médio no Sistema: 103.89s
|
||||
Tempo Médio de Espera: 99.48s
|
||||
|
||||
================================================================================
|
||||
FIM DO RELATÓRIO
|
||||
================================================================================
|
||||
365
main/graphing_all.py
Normal file
@@ -0,0 +1,365 @@
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import glob
|
||||
import os
|
||||
|
||||
# Find CSV files using glob
|
||||
def load_latest_csv(pattern):
|
||||
"""Load the most recent CSV file matching the pattern"""
|
||||
files = glob.glob(pattern)
|
||||
if not files:
|
||||
print(f"Aviso: Nenhum ficheiro encontrado com o padrão '{pattern}'")
|
||||
return None
|
||||
# Sort by modification time, get the latest
|
||||
latest_file = max(files, key=os.path.getmtime)
|
||||
print(f"A carregar: {latest_file}")
|
||||
return pd.read_csv(latest_file)
|
||||
|
||||
print("="*60)
|
||||
print("ANÁLISE COMPLETA DE SIMULAÇÃO")
|
||||
print("="*60)
|
||||
|
||||
# Carregar todos os dados
|
||||
print("\nA procurar ficheiros de análise...")
|
||||
low = load_latest_csv('analysis/LOW_LOAD_*.csv')
|
||||
medium = load_latest_csv('analysis/MEDIUM_LOAD_*.csv')
|
||||
high = load_latest_csv('analysis/HIGH_LOAD_*.csv')
|
||||
|
||||
# Check if we have all data
|
||||
if low is None or medium is None or high is None:
|
||||
print("\nErro: Ficheiros de análise em falta!")
|
||||
print("Por favor execute a análise batch primeiro.")
|
||||
exit(1)
|
||||
|
||||
# Create output directory for graphs
|
||||
os.makedirs('graphs', exist_ok=True)
|
||||
|
||||
# Determine the run column name (could be 'Run' or 'Execução')
|
||||
run_col = 'Run' if 'Run' in low.columns else 'Execução'
|
||||
|
||||
print(f"\nColunas disponíveis: {low.columns.tolist()}")
|
||||
|
||||
# ==============================================================================
|
||||
# GRÁFICOS COMPARATIVOS (entre cargas)
|
||||
# ==============================================================================
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("A GERAR GRÁFICOS COMPARATIVOS")
|
||||
print("="*60)
|
||||
|
||||
# 1. Gráfico: Dwelling Time vs Load
|
||||
plt.figure(figsize=(10, 6))
|
||||
dwelling_times = [
|
||||
low['TempoMédioSistema'].mean(),
|
||||
medium['TempoMédioSistema'].mean(),
|
||||
high['TempoMédioSistema'].mean()
|
||||
]
|
||||
plt.bar(['Baixa', 'Média', 'Alta'], dwelling_times, color=['green', 'orange', 'red'])
|
||||
plt.ylabel('Tempo Médio no Sistema (s)')
|
||||
plt.title('Desempenho do Sistema vs Carga')
|
||||
plt.xlabel('Cenário de Carga')
|
||||
plt.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(dwelling_times):
|
||||
plt.text(i, v + 1, f'{v:.2f}s', ha='center', va='bottom')
|
||||
plt.savefig('graphs/dwelling_time_comparison.png', dpi=300, bbox_inches='tight')
|
||||
print("Gráfico guardado: graphs/dwelling_time_comparison.png")
|
||||
plt.close()
|
||||
|
||||
# 2. Gráfico: Completion Rate vs Load
|
||||
plt.figure(figsize=(10, 6))
|
||||
completion_rates = [
|
||||
low['TaxaConclusão'].mean(),
|
||||
medium['TaxaConclusão'].mean(),
|
||||
high['TaxaConclusão'].mean()
|
||||
]
|
||||
plt.bar(['Baixa', 'Média', 'Alta'], completion_rates, color=['green', 'orange', 'red'])
|
||||
plt.ylabel('Taxa de Conclusão (%)')
|
||||
plt.title('Taxa de Conclusão de Veículos vs Carga')
|
||||
plt.xlabel('Cenário de Carga')
|
||||
plt.grid(axis='y', alpha=0.3)
|
||||
plt.ylim(0, 100)
|
||||
for i, v in enumerate(completion_rates):
|
||||
plt.text(i, v + 2, f'{v:.1f}%', ha='center', va='bottom')
|
||||
plt.savefig('graphs/completion_rate_comparison.png', dpi=300, bbox_inches='tight')
|
||||
print("Gráfico guardado: graphs/completion_rate_comparison.png")
|
||||
plt.close()
|
||||
|
||||
# 3. Gráfico: Waiting Time vs Load
|
||||
plt.figure(figsize=(10, 6))
|
||||
waiting_times = [
|
||||
low['TempoMédioEspera'].mean(),
|
||||
medium['TempoMédioEspera'].mean(),
|
||||
high['TempoMédioEspera'].mean()
|
||||
]
|
||||
plt.bar(['Baixa', 'Média', 'Alta'], waiting_times, color=['green', 'orange', 'red'])
|
||||
plt.ylabel('Tempo Médio de Espera (s)')
|
||||
plt.title('Tempo Médio de Espera vs Carga')
|
||||
plt.xlabel('Cenário de Carga')
|
||||
plt.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(waiting_times):
|
||||
plt.text(i, v + 1, f'{v:.2f}s', ha='center', va='bottom')
|
||||
plt.savefig('graphs/waiting_time_comparison.png', dpi=300, bbox_inches='tight')
|
||||
print("Gráfico guardado: graphs/waiting_time_comparison.png")
|
||||
plt.close()
|
||||
|
||||
# 4. Gráfico: Summary Statistics (comparativo)
|
||||
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(14, 10))
|
||||
loads = ['Baixa', 'Média', 'Alta']
|
||||
|
||||
# Vehicles generated
|
||||
ax1.bar(loads, [low['VeículosGerados'].mean(), medium['VeículosGerados'].mean(), high['VeículosGerados'].mean()], color=['green', 'orange', 'red'])
|
||||
ax1.set_title('Veículos Gerados')
|
||||
ax1.set_ylabel('Quantidade')
|
||||
ax1.grid(axis='y', alpha=0.3)
|
||||
|
||||
# Vehicles completed
|
||||
ax2.bar(loads, [low['VeículosCompletados'].mean(), medium['VeículosCompletados'].mean(), high['VeículosCompletados'].mean()], color=['green', 'orange', 'red'])
|
||||
ax2.set_title('Veículos Concluídos')
|
||||
ax2.set_ylabel('Quantidade')
|
||||
ax2.grid(axis='y', alpha=0.3)
|
||||
|
||||
# Min/Max dwelling time
|
||||
x = range(3)
|
||||
width = 0.35
|
||||
ax3.bar([i - width/2 for i in x], [low['TempoMínimoSistema'].mean(), medium['TempoMínimoSistema'].mean(), high['TempoMínimoSistema'].mean()], width, label='Mín', color='lightblue')
|
||||
ax3.bar([i + width/2 for i in x], [low['TempoMáximoSistema'].mean(), medium['TempoMáximoSistema'].mean(), high['TempoMáximoSistema'].mean()], width, label='Máx', color='darkblue')
|
||||
ax3.set_title('Tempo no Sistema Mín/Máx')
|
||||
ax3.set_ylabel('Tempo (s)')
|
||||
ax3.set_xticks(x)
|
||||
ax3.set_xticklabels(loads)
|
||||
ax3.legend()
|
||||
ax3.grid(axis='y', alpha=0.3)
|
||||
|
||||
# Performance summary
|
||||
metrics = ['Tempo no\nSistema', 'Tempo de\nEspera', 'Taxa de\nConclusão']
|
||||
low_vals = [low['TempoMédioSistema'].mean(), low['TempoMédioEspera'].mean(), low['TaxaConclusão'].mean()]
|
||||
med_vals = [medium['TempoMédioSistema'].mean(), medium['TempoMédioEspera'].mean(), medium['TaxaConclusão'].mean()]
|
||||
high_vals = [high['TempoMédioSistema'].mean(), high['TempoMédioEspera'].mean(), high['TaxaConclusão'].mean()]
|
||||
|
||||
x = range(len(metrics))
|
||||
width = 0.25
|
||||
ax4.bar([i - width for i in x], low_vals, width, label='Baixa', color='green')
|
||||
ax4.bar(x, med_vals, width, label='Média', color='orange')
|
||||
ax4.bar([i + width for i in x], high_vals, width, label='Alta', color='red')
|
||||
ax4.set_title('Resumo de Desempenho')
|
||||
ax4.set_xticks(x)
|
||||
ax4.set_xticklabels(metrics)
|
||||
ax4.legend()
|
||||
ax4.grid(axis='y', alpha=0.3)
|
||||
|
||||
plt.tight_layout()
|
||||
plt.savefig('graphs/summary_statistics.png', dpi=300, bbox_inches='tight')
|
||||
print("Gráfico guardado: graphs/summary_statistics.png")
|
||||
plt.close()
|
||||
|
||||
# ==============================================================================
|
||||
# GRÁFICOS INDIVIDUAIS POR CARGA
|
||||
# ==============================================================================
|
||||
|
||||
def generate_individual_graphs(data, load_type, load_name, color):
|
||||
"""Generate detailed graphs for a specific load type"""
|
||||
|
||||
print(f"\n{'='*60}")
|
||||
print(f"A GERAR GRÁFICOS - CARGA {load_name.upper()}")
|
||||
print("="*60)
|
||||
|
||||
# 1. Gráfico: Run-by-Run Dwelling Time
|
||||
plt.figure(figsize=(12, 6))
|
||||
plt.plot(data[run_col], data['TempoMédioSistema'], marker='o', color=color, linewidth=2, markersize=6)
|
||||
plt.fill_between(data[run_col], data['TempoMínimoSistema'], data['TempoMáximoSistema'], alpha=0.2, color=color)
|
||||
plt.ylabel('Tempo no Sistema (s)')
|
||||
plt.xlabel('Número da Execução')
|
||||
plt.title(f'Tempo no Sistema por Execução - Carga {load_name}')
|
||||
plt.grid(alpha=0.3)
|
||||
plt.legend(['Média', 'Intervalo Min-Max'])
|
||||
plt.savefig(f'graphs/{load_type.lower()}_dwelling_time_runs.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Gráfico guardado: graphs/{load_type.lower()}_dwelling_time_runs.png")
|
||||
plt.close()
|
||||
|
||||
# 2. Gráfico: Run-by-Run Completion Rate
|
||||
plt.figure(figsize=(12, 6))
|
||||
plt.plot(data[run_col], data['TaxaConclusão'], marker='o', color=color, linewidth=2, markersize=6)
|
||||
plt.axhline(y=data['TaxaConclusão'].mean(), color='black', linestyle='--', label=f'Média: {data["TaxaConclusão"].mean():.1f}%')
|
||||
plt.ylabel('Taxa de Conclusão (%)')
|
||||
plt.xlabel('Número da Execução')
|
||||
plt.title(f'Taxa de Conclusão por Execução - Carga {load_name}')
|
||||
plt.ylim(0, 105)
|
||||
plt.grid(alpha=0.3)
|
||||
plt.legend()
|
||||
plt.savefig(f'graphs/{load_type.lower()}_completion_rate_runs.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Gráfico guardado: graphs/{load_type.lower()}_completion_rate_runs.png")
|
||||
plt.close()
|
||||
|
||||
# 3. Gráfico: Run-by-Run Waiting Time
|
||||
plt.figure(figsize=(12, 6))
|
||||
plt.plot(data[run_col], data['TempoMédioEspera'], marker='o', color=color, linewidth=2, markersize=6)
|
||||
plt.ylabel('Tempo de Espera (s)')
|
||||
plt.xlabel('Número da Execução')
|
||||
plt.title(f'Tempo Médio de Espera por Execução - Carga {load_name}')
|
||||
plt.grid(alpha=0.3)
|
||||
plt.savefig(f'graphs/{load_type.lower()}_waiting_time_runs.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Gráfico guardado: graphs/{load_type.lower()}_waiting_time_runs.png")
|
||||
plt.close()
|
||||
|
||||
# 4. Gráfico: Vehicles Generated vs Completed
|
||||
plt.figure(figsize=(10, 6))
|
||||
x = range(len(data))
|
||||
width = 0.35
|
||||
plt.bar([i - width/2 for i in x], data['VeículosGerados'], width, label='Gerados', color='lightblue', alpha=0.8)
|
||||
plt.bar([i + width/2 for i in x], data['VeículosCompletados'], width, label='Concluídos', color=color, alpha=0.8)
|
||||
plt.ylabel('Número de Veículos')
|
||||
plt.xlabel('Número da Execução')
|
||||
plt.title(f'Veículos Gerados vs Concluídos - Carga {load_name}')
|
||||
plt.xticks(x, data[run_col])
|
||||
plt.legend()
|
||||
plt.grid(axis='y', alpha=0.3)
|
||||
plt.savefig(f'graphs/{load_type.lower()}_vehicles_comparison.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Gráfico guardado: graphs/{load_type.lower()}_vehicles_comparison.png")
|
||||
plt.close()
|
||||
|
||||
# 5. Gráfico: Summary Statistics (4-panel)
|
||||
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(14, 10))
|
||||
|
||||
# Panel 1: Dwelling Time Statistics
|
||||
metrics = ['Média', 'Mínimo', 'Máximo', 'Desvio\nPadrão']
|
||||
values = [
|
||||
data['TempoMédioSistema'].mean(),
|
||||
data['TempoMínimoSistema'].min(),
|
||||
data['TempoMáximoSistema'].max(),
|
||||
data['TempoMédioSistema'].std()
|
||||
]
|
||||
ax1.bar(metrics, values, color=[color, 'lightblue', 'darkblue', 'gray'])
|
||||
ax1.set_title('Estatísticas de Tempo no Sistema')
|
||||
ax1.set_ylabel('Tempo (s)')
|
||||
ax1.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(values):
|
||||
ax1.text(i, v + 0.5, f'{v:.2f}s', ha='center', va='bottom')
|
||||
|
||||
# Panel 2: Waiting Time Statistics
|
||||
values = [
|
||||
data['TempoMédioEspera'].mean(),
|
||||
data['TempoMédioEspera'].min(),
|
||||
data['TempoMédioEspera'].max(),
|
||||
data['TempoMédioEspera'].std()
|
||||
]
|
||||
ax2.bar(metrics, values, color=[color, 'lightblue', 'darkblue', 'gray'])
|
||||
ax2.set_title('Estatísticas de Tempo de Espera')
|
||||
ax2.set_ylabel('Tempo (s)')
|
||||
ax2.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(values):
|
||||
ax2.text(i, v + 0.5, f'{v:.2f}s', ha='center', va='bottom')
|
||||
|
||||
# Panel 3: Completion Rate Distribution
|
||||
ax3.hist(data['TaxaConclusão'], bins=10, color=color, alpha=0.7, edgecolor='black')
|
||||
ax3.axvline(data['TaxaConclusão'].mean(), color='red', linestyle='--', linewidth=2, label='Média')
|
||||
ax3.set_title('Distribuição da Taxa de Conclusão')
|
||||
ax3.set_xlabel('Taxa de Conclusão (%)')
|
||||
ax3.set_ylabel('Frequência')
|
||||
ax3.legend()
|
||||
ax3.grid(axis='y', alpha=0.3)
|
||||
|
||||
# Panel 4: Key Metrics Summary
|
||||
summary_metrics = ['Veículos\nGerados', 'Veículos\nConcluídos', 'Taxa de\nConclusão (%)']
|
||||
summary_values = [
|
||||
data['VeículosGerados'].mean(),
|
||||
data['VeículosCompletados'].mean(),
|
||||
data['TaxaConclusão'].mean()
|
||||
]
|
||||
# Create bars individually with different alpha values
|
||||
alphas = [0.5, 0.7, 0.9]
|
||||
for i, (metric, value, alpha_val) in enumerate(zip(summary_metrics, summary_values, alphas)):
|
||||
ax4.bar(i, value, color=color, alpha=alpha_val)
|
||||
ax4.set_xticks(range(len(summary_metrics)))
|
||||
ax4.set_xticklabels(summary_metrics)
|
||||
ax4.set_title('Resumo de Métricas-Chave')
|
||||
ax4.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(summary_values):
|
||||
ax4.text(i, v + max(summary_values)*0.02, f'{v:.1f}', ha='center', va='bottom', fontweight='bold')
|
||||
|
||||
plt.tight_layout()
|
||||
plt.savefig(f'graphs/{load_type.lower()}_summary_statistics.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Gráfico guardado: graphs/{load_type.lower()}_summary_statistics.png")
|
||||
plt.close()
|
||||
|
||||
# Print detailed summary statistics
|
||||
print(f"\n{'='*60}")
|
||||
print(f"CARGA {load_name.upper()} - ESTATÍSTICAS DETALHADAS")
|
||||
print("="*60)
|
||||
|
||||
print(f"\nTEMPO NO SISTEMA:")
|
||||
print(f" Média: {data['TempoMédioSistema'].mean():.2f}s")
|
||||
print(f" Desvio Padrão: {data['TempoMédioSistema'].std():.2f}s")
|
||||
print(f" Mínimo: {data['TempoMínimoSistema'].min():.2f}s")
|
||||
print(f" Máximo: {data['TempoMáximoSistema'].max():.2f}s")
|
||||
print(f" Mediana: {data['TempoMédioSistema'].median():.2f}s")
|
||||
|
||||
print(f"\nTEMPO DE ESPERA:")
|
||||
print(f" Média: {data['TempoMédioEspera'].mean():.2f}s")
|
||||
print(f" Desvio Padrão: {data['TempoMédioEspera'].std():.2f}s")
|
||||
print(f" Mínimo: {data['TempoMédioEspera'].min():.2f}s")
|
||||
print(f" Máximo: {data['TempoMédioEspera'].max():.2f}s")
|
||||
print(f" Mediana: {data['TempoMédioEspera'].median():.2f}s")
|
||||
|
||||
print(f"\nTAXA DE CONCLUSÃO:")
|
||||
print(f" Média: {data['TaxaConclusão'].mean():.2f}%")
|
||||
print(f" Desvio Padrão: {data['TaxaConclusão'].std():.2f}%")
|
||||
print(f" Mínimo: {data['TaxaConclusão'].min():.2f}%")
|
||||
print(f" Máximo: {data['TaxaConclusão'].max():.2f}%")
|
||||
print(f" Mediana: {data['TaxaConclusão'].median():.2f}%")
|
||||
|
||||
print(f"\nCONTAGEM DE VEÍCULOS:")
|
||||
print(f" Média Gerados: {data['VeículosGerados'].mean():.0f}")
|
||||
print(f" Média Concluídos: {data['VeículosCompletados'].mean():.0f}")
|
||||
print(f" Média Perdidos: {data['VeículosGerados'].mean() - data['VeículosCompletados'].mean():.0f}")
|
||||
|
||||
print(f"\nEXECUÇÕES ANALISADAS: {len(data)}")
|
||||
|
||||
# Check for config file column - could be ArquivoConfig or ConfigFile
|
||||
config_col = None
|
||||
if 'ArquivoConfig' in data.columns:
|
||||
config_col = 'ArquivoConfig'
|
||||
elif 'ConfigFile' in data.columns:
|
||||
config_col = 'ConfigFile'
|
||||
|
||||
if config_col:
|
||||
print(f"FICHEIRO DE CONFIGURAÇÃO: {data[config_col].iloc[0]}")
|
||||
|
||||
# Generate individual graphs for each load
|
||||
generate_individual_graphs(low, 'LOW', 'Baixa', 'green')
|
||||
generate_individual_graphs(medium, 'MEDIUM', 'Média', 'orange')
|
||||
generate_individual_graphs(high, 'HIGH', 'Alta', 'red')
|
||||
|
||||
# ==============================================================================
|
||||
# SUMÁRIO FINAL
|
||||
# ==============================================================================
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("SUMÁRIO COMPARATIVO FINAL")
|
||||
print("="*60)
|
||||
|
||||
print(f"\nCARGA BAIXA:")
|
||||
print(f" Tempo Médio no Sistema: {low['TempoMédioSistema'].mean():.2f}s")
|
||||
print(f" Tempo Médio de Espera: {low['TempoMédioEspera'].mean():.2f}s")
|
||||
print(f" Taxa de Conclusão: {low['TaxaConclusão'].mean():.1f}%")
|
||||
print(f" Veículos Gerados: {low['VeículosGerados'].mean():.0f}")
|
||||
print(f" Veículos Concluídos: {low['VeículosCompletados'].mean():.0f}")
|
||||
|
||||
print(f"\nCARGA MÉDIA:")
|
||||
print(f" Tempo Médio no Sistema: {medium['TempoMédioSistema'].mean():.2f}s")
|
||||
print(f" Tempo Médio de Espera: {medium['TempoMédioEspera'].mean():.2f}s")
|
||||
print(f" Taxa de Conclusão: {medium['TaxaConclusão'].mean():.1f}%")
|
||||
print(f" Veículos Gerados: {medium['VeículosGerados'].mean():.0f}")
|
||||
print(f" Veículos Concluídos: {medium['VeículosCompletados'].mean():.0f}")
|
||||
|
||||
print(f"\nCARGA ALTA:")
|
||||
print(f" Tempo Médio no Sistema: {high['TempoMédioSistema'].mean():.2f}s")
|
||||
print(f" Tempo Médio de Espera: {high['TempoMédioEspera'].mean():.2f}s")
|
||||
print(f" Taxa de Conclusão: {high['TaxaConclusão'].mean():.1f}%")
|
||||
print(f" Veículos Gerados: {high['VeículosGerados'].mean():.0f}")
|
||||
print(f" Veículos Concluídos: {high['VeículosCompletados'].mean():.0f}")
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("ANÁLISE COMPLETA!")
|
||||
print(f"Total de gráficos gerados: 19")
|
||||
print("Todos os gráficos foram guardados no diretório 'graphs/'")
|
||||
print("="*60)
|
||||
222
main/graphing_single.py
Normal file
@@ -0,0 +1,222 @@
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import glob
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Find CSV files using glob
|
||||
def load_latest_csv(pattern):
|
||||
"""Load the most recent CSV file matching the pattern"""
|
||||
files = glob.glob(pattern)
|
||||
if not files:
|
||||
print(f"Warning: No files found matching '{pattern}'")
|
||||
return None
|
||||
# Sort by modification time, get the latest
|
||||
latest_file = max(files, key=os.path.getmtime)
|
||||
print(f"Loading: {latest_file}")
|
||||
return pd.read_csv(latest_file)
|
||||
|
||||
# Determine which load to analyze
|
||||
if len(sys.argv) > 1:
|
||||
load_type = sys.argv[1].upper()
|
||||
else:
|
||||
print("Usage: python graphing_single.py [LOW|MEDIUM|HIGH]")
|
||||
print("Defaulting to LOW_LOAD...")
|
||||
load_type = "LOW"
|
||||
|
||||
# Validate load type
|
||||
if load_type not in ["LOW", "MEDIUM", "HIGH"]:
|
||||
print(f"Error: Invalid load type '{load_type}'. Must be LOW, MEDIUM, or HIGH.")
|
||||
exit(1)
|
||||
|
||||
# Load the specified data
|
||||
print(f"Looking for {load_type}_LOAD analysis files...")
|
||||
pattern = f'analysis/{load_type}_LOAD_*.csv'
|
||||
data = load_latest_csv(pattern)
|
||||
|
||||
if data is None:
|
||||
print(f"\nError: No {load_type}_LOAD analysis files found!")
|
||||
print("Please run the batch analysis first.")
|
||||
exit(1)
|
||||
|
||||
# Print available columns for debugging
|
||||
print(f"\nAvailable columns in {load_type}_LOAD CSV:")
|
||||
print(data.columns.tolist())
|
||||
|
||||
# Create output directory for graphs
|
||||
os.makedirs('graphs', exist_ok=True)
|
||||
|
||||
# Determine the run column name (could be 'Run' or 'Execução')
|
||||
run_col = 'Run' if 'Run' in data.columns else 'Execução'
|
||||
|
||||
# Load name for titles
|
||||
load_name = load_type.capitalize()
|
||||
colors = {'LOW': 'green', 'MEDIUM': 'orange', 'HIGH': 'red'}
|
||||
color = colors[load_type]
|
||||
|
||||
# 1. Gráfico: Run-by-Run Dwelling Time
|
||||
plt.figure(figsize=(12, 6))
|
||||
plt.plot(data[run_col], data['TempoMédioSistema'], marker='o', color=color, linewidth=2, markersize=6)
|
||||
plt.fill_between(data[run_col], data['TempoMínimoSistema'], data['TempoMáximoSistema'], alpha=0.2, color=color)
|
||||
plt.ylabel('Tempo no Sistema (s)')
|
||||
plt.xlabel('Run Number')
|
||||
plt.title(f'Tempo no Sistema por Execução - Carga {load_name}')
|
||||
plt.grid(alpha=0.3)
|
||||
plt.legend(['Média', 'Min-Max Range'])
|
||||
plt.savefig(f'graphs/{load_type.lower()}_dwelling_time_runs.png', dpi=300, bbox_inches='tight')
|
||||
print(f"\nGraph saved: graphs/{load_type.lower()}_dwelling_time_runs.png")
|
||||
plt.close()
|
||||
|
||||
# 2. Gráfico: Run-by-Run Completion Rate
|
||||
plt.figure(figsize=(12, 6))
|
||||
plt.plot(data[run_col], data['TaxaConclusão'], marker='o', color=color, linewidth=2, markersize=6)
|
||||
plt.axhline(y=data['TaxaConclusão'].mean(), color='black', linestyle='--', label=f'Média: {data["TaxaConclusão"].mean():.1f}%')
|
||||
plt.ylabel('Taxa de Conclusão (%)')
|
||||
plt.xlabel('Run Number')
|
||||
plt.title(f'Taxa de Conclusão por Execução - Carga {load_name}')
|
||||
plt.ylim(0, 105)
|
||||
plt.grid(alpha=0.3)
|
||||
plt.legend()
|
||||
plt.savefig(f'graphs/{load_type.lower()}_completion_rate_runs.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Graph saved: graphs/{load_type.lower()}_completion_rate_runs.png")
|
||||
plt.close()
|
||||
|
||||
# 3. Gráfico: Run-by-Run Waiting Time
|
||||
plt.figure(figsize=(12, 6))
|
||||
plt.plot(data[run_col], data['TempoMédioEspera'], marker='o', color=color, linewidth=2, markersize=6)
|
||||
plt.ylabel('Tempo de Espera (s)')
|
||||
plt.xlabel('Run Number')
|
||||
plt.title(f'Tempo Médio de Espera por Execução - Carga {load_name}')
|
||||
plt.grid(alpha=0.3)
|
||||
plt.savefig(f'graphs/{load_type.lower()}_waiting_time_runs.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Graph saved: graphs/{load_type.lower()}_waiting_time_runs.png")
|
||||
plt.close()
|
||||
|
||||
# 4. Gráfico: Vehicles Generated vs Completed
|
||||
plt.figure(figsize=(10, 6))
|
||||
x = range(len(data))
|
||||
width = 0.35
|
||||
plt.bar([i - width/2 for i in x], data['VeículosGerados'], width, label='Gerados', color='lightblue', alpha=0.8)
|
||||
plt.bar([i + width/2 for i in x], data['VeículosCompletados'], width, label='Concluídos', color=color, alpha=0.8)
|
||||
plt.ylabel('Número de Veículos')
|
||||
plt.xlabel('Run Number')
|
||||
plt.title(f'Veículos Gerados vs Concluídos - Carga {load_name}')
|
||||
plt.xticks(x, data[run_col])
|
||||
plt.legend()
|
||||
plt.grid(axis='y', alpha=0.3)
|
||||
plt.savefig(f'graphs/{load_type.lower()}_vehicles_comparison.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Graph saved: graphs/{load_type.lower()}_vehicles_comparison.png")
|
||||
plt.close()
|
||||
|
||||
# 5. Gráfico: Summary Statistics (4-panel)
|
||||
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(14, 10))
|
||||
|
||||
# Panel 1: Dwelling Time Statistics
|
||||
metrics = ['Média', 'Mínimo', 'Máximo', 'Desvio\nPadrão']
|
||||
values = [
|
||||
data['TempoMédioSistema'].mean(),
|
||||
data['TempoMínimoSistema'].min(),
|
||||
data['TempoMáximoSistema'].max(),
|
||||
data['TempoMédioSistema'].std()
|
||||
]
|
||||
ax1.bar(metrics, values, color=[color, 'lightblue', 'darkblue', 'gray'])
|
||||
ax1.set_title('Estatísticas de Tempo no Sistema')
|
||||
ax1.set_ylabel('Tempo (s)')
|
||||
ax1.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(values):
|
||||
ax1.text(i, v + 0.5, f'{v:.2f}s', ha='center', va='bottom')
|
||||
|
||||
# Panel 2: Waiting Time Statistics
|
||||
values = [
|
||||
data['TempoMédioEspera'].mean(),
|
||||
data['TempoMédioEspera'].min(),
|
||||
data['TempoMédioEspera'].max(),
|
||||
data['TempoMédioEspera'].std()
|
||||
]
|
||||
ax2.bar(metrics, values, color=[color, 'lightblue', 'darkblue', 'gray'])
|
||||
ax2.set_title('Estatísticas de Tempo de Espera')
|
||||
ax2.set_ylabel('Tempo (s)')
|
||||
ax2.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(values):
|
||||
ax2.text(i, v + 0.5, f'{v:.2f}s', ha='center', va='bottom')
|
||||
|
||||
# Panel 3: Completion Rate Distribution
|
||||
ax3.hist(data['TaxaConclusão'], bins=10, color=color, alpha=0.7, edgecolor='black')
|
||||
ax3.axvline(data['TaxaConclusão'].mean(), color='red', linestyle='--', linewidth=2, label='Média')
|
||||
ax3.set_title('Distribuição da Taxa de Conclusão')
|
||||
ax3.set_xlabel('Taxa de Conclusão (%)')
|
||||
ax3.set_ylabel('Frequência')
|
||||
ax3.legend()
|
||||
ax3.grid(axis='y', alpha=0.3)
|
||||
|
||||
# Panel 4: Key Metrics Summary
|
||||
summary_metrics = ['Veículos\nGerados', 'Veículos\nConcluídos', 'Taxa de\nConclusão (%)']
|
||||
summary_values = [
|
||||
data['VeículosGerados'].mean(),
|
||||
data['VeículosCompletados'].mean(),
|
||||
data['TaxaConclusão'].mean()
|
||||
]
|
||||
# Create bars individually with different alpha values
|
||||
alphas = [0.5, 0.7, 0.9]
|
||||
for i, (metric, value, alpha_val) in enumerate(zip(summary_metrics, summary_values, alphas)):
|
||||
ax4.bar(i, value, color=color, alpha=alpha_val)
|
||||
ax4.set_xticks(range(len(summary_metrics)))
|
||||
ax4.set_xticklabels(summary_metrics)
|
||||
ax4.set_title('Resumo de Métricas-Chave')
|
||||
ax4.grid(axis='y', alpha=0.3)
|
||||
for i, v in enumerate(summary_values):
|
||||
ax4.text(i, v + max(summary_values)*0.02, f'{v:.1f}', ha='center', va='bottom', fontweight='bold')
|
||||
|
||||
plt.tight_layout()
|
||||
plt.savefig(f'graphs/{load_type.lower()}_summary_statistics.png', dpi=300, bbox_inches='tight')
|
||||
print(f"Graph saved: graphs/{load_type.lower()}_summary_statistics.png")
|
||||
plt.close()
|
||||
|
||||
# Print detailed summary statistics
|
||||
print("\n" + "="*60)
|
||||
print(f"{load_name.upper()} LOAD - DETAILED STATISTICS")
|
||||
print("="*60)
|
||||
|
||||
print(f"\nTIME IN SYSTEM:")
|
||||
print(f" Mean: {data['TempoMédioSistema'].mean():.2f}s")
|
||||
print(f" Std Dev: {data['TempoMédioSistema'].std():.2f}s")
|
||||
print(f" Min: {data['TempoMínimoSistema'].min():.2f}s")
|
||||
print(f" Max: {data['TempoMáximoSistema'].max():.2f}s")
|
||||
print(f" Median: {data['TempoMédioSistema'].median():.2f}s")
|
||||
|
||||
print(f"\nWAITING TIME:")
|
||||
print(f" Mean: {data['TempoMédioEspera'].mean():.2f}s")
|
||||
print(f" Std Dev: {data['TempoMédioEspera'].std():.2f}s")
|
||||
print(f" Min: {data['TempoMédioEspera'].min():.2f}s")
|
||||
print(f" Max: {data['TempoMédioEspera'].max():.2f}s")
|
||||
print(f" Median: {data['TempoMédioEspera'].median():.2f}s")
|
||||
|
||||
print(f"\nCOMPLETION RATE:")
|
||||
print(f" Mean: {data['TaxaConclusão'].mean():.2f}%")
|
||||
print(f" Std Dev: {data['TaxaConclusão'].std():.2f}%")
|
||||
print(f" Min: {data['TaxaConclusão'].min():.2f}%")
|
||||
print(f" Max: {data['TaxaConclusão'].max():.2f}%")
|
||||
print(f" Median: {data['TaxaConclusão'].median():.2f}%")
|
||||
|
||||
print(f"\nVEHICLE COUNTS:")
|
||||
print(f" Mean Generated: {data['VeículosGerados'].mean():.0f}")
|
||||
print(f" Mean Completed: {data['VeículosCompletados'].mean():.0f}")
|
||||
print(f" Mean Lost: {data['VeículosGerados'].mean() - data['VeículosCompletados'].mean():.0f}")
|
||||
|
||||
print(f"\nRUNS ANALYZED: {len(data)}")
|
||||
|
||||
# Check for config file column - could be ArquivoConfig or ConfigFile
|
||||
config_col = None
|
||||
if 'ArquivoConfig' in data.columns:
|
||||
config_col = 'ArquivoConfig'
|
||||
elif 'ConfigFile' in data.columns:
|
||||
config_col = 'ConfigFile'
|
||||
|
||||
if config_col:
|
||||
print(f"CONFIGURATION FILE: {data[config_col].iloc[0]}")
|
||||
else:
|
||||
print(f"CONFIGURATION FILE: N/A")
|
||||
|
||||
print("\n" + "="*60)
|
||||
print(f"All graphs saved in 'graphs/' directory with prefix '{load_type.lower()}_'")
|
||||
print("="*60)
|
||||
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 92 KiB |
BIN
main/graphs/high_completion_rate_runs.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
main/graphs/high_dwelling_time_runs.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
main/graphs/high_summary_statistics.png
Normal file
|
After Width: | Height: | Size: 274 KiB |
BIN
main/graphs/high_vehicles_comparison.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
main/graphs/high_waiting_time_runs.png
Normal file
|
After Width: | Height: | Size: 173 KiB |
BIN
main/graphs/low_completion_rate_runs.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
main/graphs/low_dwelling_time_runs.png
Normal file
|
After Width: | Height: | Size: 188 KiB |
BIN
main/graphs/low_summary_statistics.png
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
main/graphs/low_vehicles_comparison.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
main/graphs/low_waiting_time_runs.png
Normal file
|
After Width: | Height: | Size: 168 KiB |
BIN
main/graphs/medium_completion_rate_runs.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
main/graphs/medium_dwelling_time_runs.png
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
main/graphs/medium_summary_statistics.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
main/graphs/medium_vehicles_comparison.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
main/graphs/medium_waiting_time_runs.png
Normal file
|
After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 92 KiB |
@@ -3,6 +3,7 @@ package sd.coordinator;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.locks.LockSupport;
|
||||
|
||||
import sd.config.SimulationConfig;
|
||||
import sd.dashboard.DashboardStatistics;
|
||||
@@ -375,6 +376,7 @@ public class CoordinatorProcess {
|
||||
|
||||
String entryIntersection = vehicle.getRoute().get(0);
|
||||
sendVehicleToIntersection(vehicle, entryIntersection);
|
||||
LockSupport.parkNanos(100000); // 100us
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,6 +11,7 @@ import java.net.Socket;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.locks.LockSupport;
|
||||
|
||||
import sd.serialization.MessageSerializer;
|
||||
import sd.serialization.SerializationException;
|
||||
@@ -167,7 +168,8 @@ public class SocketConnection implements Closeable {
|
||||
DataOutputStream dataOut = new DataOutputStream(outputStream);
|
||||
dataOut.writeInt(data.length);
|
||||
dataOut.write(data);
|
||||
dataOut.flush(); // Force transmission immediately
|
||||
dataOut.flush();
|
||||
LockSupport.parkNanos(50000); // 50us
|
||||
|
||||
} catch (SerializationException e) {
|
||||
throw new IOException("Failed to serialize message", e);
|
||||
@@ -202,6 +204,7 @@ public class SocketConnection implements Closeable {
|
||||
// Ler dados exatos da mensagem
|
||||
byte[] data = new byte[length];
|
||||
dataIn.readFully(data);
|
||||
LockSupport.parkNanos(50000); // 50us
|
||||
|
||||
// Deserialize do JSON - força o tipo concreto Message
|
||||
return serializer.deserialize(data, sd.model.Message.class);
|
||||
|
||||
186
report.tex
Normal file
@@ -0,0 +1,186 @@
|
||||
\documentclass[a4paper,11pt]{article}
|
||||
|
||||
% codificação
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
|
||||
% layout
|
||||
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
|
||||
\usepackage{parskip} % Espaçamento entre parágrafos sem indentação
|
||||
\usepackage{titlesec} % Personalização de títulos
|
||||
|
||||
% cor/estilo
|
||||
\usepackage{xcolor}
|
||||
\definecolor{navyblue}{RGB}{0, 40, 85}
|
||||
\definecolor{codegray}{rgb}{0.95,0.95,0.95}
|
||||
\definecolor{accent}{RGB}{0, 100, 180}
|
||||
|
||||
\usepackage{hyperref}
|
||||
|
||||
\hypersetup{
|
||||
pdftitle={Relatório de Correção de Regressão de Desempenho em Linux},
|
||||
pdfauthor={Leandro Afonso},
|
||||
pdfsubject={Análise Técnica},
|
||||
pdfkeywords={Linux, Java, Latency, Syscall, Optimization},
|
||||
pdfcreator={pdfLaTeX}
|
||||
}
|
||||
|
||||
% data
|
||||
\renewcommand{\today}{%
|
||||
\number\day\ de %
|
||||
\ifcase\month\or
|
||||
Janeiro\or Fevereiro\or Março\or Abril\or Maio\or Junho\or
|
||||
Julho\or Agosto\or Setembro\or Outubro\or Novembro\or Dezembro%
|
||||
\fi
|
||||
\ de \number\year%
|
||||
}
|
||||
|
||||
% tabelas
|
||||
\usepackage{booktabs}
|
||||
\usepackage{array}
|
||||
|
||||
% conf
|
||||
\usepackage{listings}
|
||||
\lstset{
|
||||
backgroundcolor=\color{codegray},
|
||||
basicstyle=\ttfamily\small,
|
||||
breakatwhitespace=false,
|
||||
breaklines=true,
|
||||
captionpos=b,
|
||||
commentstyle=\color{green!50!black},
|
||||
keywordstyle=\color{blue},
|
||||
stringstyle=\color{red},
|
||||
frame=single,
|
||||
rulecolor=\color{black!20},
|
||||
numbers=left,
|
||||
numberstyle=\tiny\color{gray},
|
||||
stepnumber=1,
|
||||
tabsize=4,
|
||||
showstringspaces=false
|
||||
extendedchars=true,
|
||||
literate={á}{{\'a}}1 {ã}{{\~a}}1 {é}{{\'e}}1 {ç}{{\c{c}}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {õ}{{\~o}}1 {ú}{{\'u}}1 {µ}{{\ensuremath{\mu}}}1 {€}{{\euro}}1,
|
||||
}
|
||||
|
||||
% seccões
|
||||
\titleformat{\section}
|
||||
{\color{navyblue}\normalfont\Large\bfseries}
|
||||
{\thesection}{1em}{}
|
||||
|
||||
\titleformat{\subsection}
|
||||
{\color{navyblue}\normalfont\large\bfseries}
|
||||
{\thesubsection}{1em}{}
|
||||
|
||||
% metadados
|
||||
\title{\textbf{\color{navyblue}Relatório de Correção de Regressão de Desempenho em Linux}}
|
||||
\author{Leandro Afonso}
|
||||
\date{\today}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
\section{Resumo do Problema}
|
||||
A simulação distribuída de tráfego demonstrou uma regressão significativa de desempenho em ambiente Linux nativo quando comparada com a execução em Windows/Wine.
|
||||
|
||||
A tabela abaixo ilustra a discrepância nas taxas de conclusão de veículos dentro da janela de simulação fixa:
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\begin{tabular}{@{}lc@{}}
|
||||
\toprule
|
||||
\textbf{Ambiente} & \textbf{Taxa de Conclusão} \\
|
||||
\midrule
|
||||
Windows / Wine & $\sim 95-100\%$ \\
|
||||
Linux (OpenJDK Nativo) & $\sim 44\%$ \\
|
||||
Linux (com \texttt{strace}) & $\sim 91\%$ \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\caption{Comparação de desempenho por ambiente.}
|
||||
\end{table}
|
||||
|
||||
O \textit{insight} crucial surgiu ao descobrir que a execução sob \texttt{strace} recuperava a taxa de conclusão para 91\%. O \texttt{strace} introduz \textit{overhead} em cada \textit{syscall}, o que, paradoxalmente, estabilizou o sistema ao forçar um abrandamento natural (\textit{throttling}).
|
||||
|
||||
\section{Causa Raiz}
|
||||
\textbf{O Linux executa demasiado rápido.}
|
||||
|
||||
O Coordenador gera veículos a uma velocidade superior à capacidade de processamento das interseções distribuídas e da pilha de rede. Em Windows/Wine, o \textit{overhead} inerente à emulação e ao agendador do SO limita naturalmente a taxa de transferência do sistema.
|
||||
|
||||
Em Linux nativo, a execução mais célere provoca uma condição de corrida sistémica:
|
||||
\begin{itemize}
|
||||
\item A geração de veículos excede a capacidade de processamento imediato dos nós.
|
||||
\item As filas de eventos congestionam (\textit{back up}) rapidamente nas interseções.
|
||||
\item Veículos gerados tardiamente não dispõem de tempo de CPU suficiente para concluir o percurso antes do fim da simulação.
|
||||
\end{itemize}
|
||||
|
||||
\section{Solução Implementada}
|
||||
A correção consistiu na introdução de micro-atrasos (\textit{micro-throttles}) utilizando \texttt{LockSupport.parkNanos()}. Esta abordagem simula o \textit{overhead} natural presente no ambiente Windows, permitindo o escoamento das filas de E/S.
|
||||
|
||||
\subsection{Alterações no Código}
|
||||
|
||||
\textbf{1. Ficheiro: \texttt{SocketConnection.java}} \\
|
||||
Adicionado um atraso de 50$\mu$s após operações de E/S para permitir o processamento da pilha TCP.
|
||||
|
||||
\begin{lstlisting}[language=Java, title={SocketConnection.java (Excerto)}]
|
||||
// Em sendMessage() após o flush:
|
||||
dataOut.flush();
|
||||
LockSupport.parkNanos(50000); // 50 us delay
|
||||
|
||||
// Em receiveMessage() após readFully:
|
||||
dataIn.readFully(data);
|
||||
LockSupport.parkNanos(50000); // 50 us delay
|
||||
\end{lstlisting}
|
||||
|
||||
\textbf{2. Ficheiro: \texttt{CoordinatorProcess.java}} \\
|
||||
Adicionado um atraso de 100$\mu$s na geração de veículos para limitar a taxa de produção.
|
||||
|
||||
\begin{lstlisting}[language=Java, title={CoordinatorProcess.java (Excerto)}]
|
||||
// Em generateAndSendVehicle():
|
||||
sendVehicleToIntersection(vehicle, entryIntersection);
|
||||
LockSupport.parkNanos(100000); // 100 us delay
|
||||
\end{lstlisting}
|
||||
|
||||
\textbf{Nota: \textnormal{Em ambos os ficheiros deve ser importado java.util.concurrent.locks.LockSupport.}}
|
||||
|
||||
\section{Resultados e Validação}
|
||||
|
||||
A aplicação dos atrasos sintéticos restaurou a paridade de desempenho entre os sistemas operativos.
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\begin{tabular}{@{}lcc@{}}
|
||||
\toprule
|
||||
\textbf{Ambiente} & \textbf{Antes da Correção} & \textbf{Após Correção} \\
|
||||
\midrule
|
||||
Linux Nativo & $\sim 44\%$ & $\mathbf{\sim 92\%}$ \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\subsection{Por que funciona?}
|
||||
\begin{itemize}
|
||||
\item \textbf{Precisão:} \texttt{LockSupport.parkNanos()} oferece um atraso preciso e não bloqueante, com impacto mínimo no agendador do SO, ao contrário de \texttt{Thread.sleep()}.
|
||||
\item \textbf{Ritmo de E/S (50$\mu$s):} Abranda a comunicação via \textit{socket} o suficiente para evitar a saturação dos \textit{buffers} de receção das interseções.
|
||||
\item \textbf{Controlo de Fluxo (100$\mu$s):} Limita a produção do Coordenador, garantindo que o sistema a jusante consegue processar os eventos em tempo útil.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Verificação}
|
||||
Para validar a correção no ambiente de desenvolvimento:
|
||||
|
||||
\begin{lstlisting}[language=bash]
|
||||
mvn clean compile
|
||||
mvn javafx:run
|
||||
\end{lstlisting}
|
||||
|
||||
\textbf{Resultado Esperado:} Taxa de conclusão superior a 90\%.
|
||||
|
||||
\section{Abordagens Alternativas (Falhadas)}
|
||||
As seguintes tentativas foram realizadas antes da solução final, sem sucesso:
|
||||
\begin{itemize}
|
||||
\item \textbf{Thread.sleep(1):} Demasiado impreciso (granularidade mínima de $\sim$1ms em Linux), causando atrasos excessivos.
|
||||
\item \textbf{Thread.yield():} Sem efeito prático no agendador CFS do Linux neste contexto.
|
||||
\item \textbf{Garbage Collectors:} A alteração entre G1, Parallel e Shenandoah não surtiu efeito.
|
||||
\item \textbf{Versão Java:} Testes com Java 17 e 25 mostraram o mesmo comportamento.
|
||||
\item \textbf{Prioridade de Threads:} Ajustes de prioridade na JVM foram ignorados pelo SO.
|
||||
\end{itemize}
|
||||
|
||||
\end{document}
|
||||