Ir para o conteúdo

Monitoramento em Tempo Real

O OptFlow oferece uma interface de monitoramento completa que permite acompanhar o progresso da otimização em tempo real, visualizar resultados parciais e controlar o processo de otimização.

Dashboard de Monitoramento

Painel de Status

O painel principal exibe o estado atual da otimização:

Status da Otimização

Status Descrição Ação Disponível
🔵 idle Sem otimização ativa Iniciar
🟢 running Otimização em execução Pausar, Parar
⏸️ paused Pausada pelo usuário Retomar, Parar
🟡 stopping Parando... Aguardar
stopped Parada pelo usuário Iniciar nova
completed Concluída com sucesso Ver resultados
🟠 degraded Conexão com Aimsun perdida Reconectar
🔴 error Erro durante execução Ver detalhes

Indicadores de Progresso

┌─────────────────────────────────────────────────────────────────┐
│                     Progresso da Otimização                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Iteração:     42 / 100                                         │
│  Progresso:    ████████████████░░░░░░░░░░░░░░  42%              │
│                                                                 │
│  Tempo Decorrido:    01:23:45                                   │
│  Tempo Estimado:     02:00:00                                   │
│                                                                 │
│  Status: 🟢 Executando simulação...                             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Controles de Otimização

Iniciar Otimização

Antes de iniciar, configure:

  1. Cliente Aimsun: Selecione o computador conectado
  2. Cenário: Escolha o cenário do Aimsun
  3. Experimento/Replicação: Defina a base da simulação
  4. Iterações: Número de avaliações
  5. Filtro de Demanda: Opcional (ver Filtro de Demanda)

Botões de Controle

  • ▶️ Iniciar: Começa uma nova otimização ou retoma uma existente
  • ⏸️ Pausar: Pausa após o trial atual (não perde progresso)
  • ⏹️ Parar: Para a otimização e aplica a melhor solução
  • ➕ Adicionar Iterações: Aumenta o número total de iterações

Histórico de Trials

O histórico mostra cada configuração testada:

┌──────────────────────────────────────────────────────────────────┐
│                        Histórico de Trials                       │
├──────┬────────────┬──────────────┬─────────┬────────────────────┤
│ Trial│ Performance│ Viabilidade  │ Melhor? │ Tempo              │
├──────┼────────────┼──────────────┼─────────┼────────────────────┤
│  42  │   32.5     │ ✅ Viável    │   ⭐    │ 02:34              │
│  41  │   35.2     │ ✅ Viável    │         │ 02:32              │
│  40  │   38.1     │ ❌ Inviável  │         │ 02:30              │
│  39  │   33.8     │ ✅ Viável    │         │ 02:28              │
│  ...                                                             │
└──────────────────────────────────────────────────────────────────┘

Detalhes do Trial

Clique em um trial para ver detalhes:

  • Parâmetros: Valores de ciclo, offset, fases testados
  • Indicadores: Todos os performance indicators coletados
  • Constraints: Status de cada restrição
  • Cenário: Configuração semafórica completa

Gráficos de Convergência

Gráfico de Performance

Visualiza a evolução da função objetivo ao longo das iterações:

Performance
45  │●
    │  ●
40  │    ●  ●
    │      ●  ●
35  │            ●    ●
    │              ●    ●  ●
30  │                        ●  ●──●──●
    └───────────────────────────────────► Iteração
        10   20   30   40   50   60   70

Visualização Multi-Objetivo

Para otimização multi-objetivo, visualize a Fronteira de Pareto:

Objetivo 2 (Maximizar)
    │     ●
2200│       ●
    │         ●  ● ← Fronteira de Pareto
2100│           ●
    │  ○  ○       ●
2000│    ○  ○  ○
    │  ○    ○  ○ ← Soluções dominadas
1900│
    └────────────────────────────────► Objetivo 1 (Minimizar)
       25    30    35    40    45

Eventos WebSocket

O OptFlow transmite eventos em tempo real via WebSocket:

Tipos de Eventos

Evento Descrição
iteration_complete Uma iteração terminou
progress Atualização de progresso
paused Otimização pausada
resumed Otimização retomada
completed Otimização concluída
error Erro durante execução
simulation_progress Progresso da simulação Aimsun
simulation_results Resultados da simulação chegaram
degraded Conexão com Aimsun perdida

Estrutura de Evento (iteration_complete)

{
  "type": "iteration_complete",
  "session_id": "abc123",
  "iteration": 42,
  "total_iterations": 100,
  "progress_percent": 42.0,
  "current_performance": 32.5,
  "best_performance": 30.2,
  "best_iteration": 38,
  "performance_indicators": {
    "Delay Time": 32.5,
    "Flow": 2150,
    "Mean Speed": 28.4
  },
  "multi_objective": false
}

Evento Multi-Objetivo

{
  "type": "iteration_complete",
  "current_performance": [32.5, 2150],
  "best_performance": [30.2, 2200],
  "multi_objective": true,
  "objectives": [
    {"name": "Atraso", "formula": "\"Delay Time\"", "direction": "minimize"},
    {"name": "Fluxo", "formula": "\"Flow\"", "direction": "maximize"}
  ],
  "best_solution": {
    "performance": [30.2, 2200],
    "pareto_front": [...],
    "selection_method": "balanced_utopia_distance"
  }
}

Resultados da Otimização

Melhor Solução

Ao final (ou ao parar), a melhor solução é exibida:

┌─────────────────────────────────────────────────────────────────┐
│                      Melhor Solução Encontrada                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  📊 Performance:  30.2  (Delay Time)                            │
│  🏆 Encontrada no Trial: #38                                    │
│  ✅ Status: Viável                                              │
│                                                                 │
│  ┌─ Ganhos em relação ao Baseline ─────────────────────────────┐│
│  │  Delay Time:  45.2 → 30.2  (-33.2%)                        ││
│  │  Flow:        1850 → 2150  (+16.2%)                        ││
│  │  Mean Speed:  22.5 → 28.4  (+26.2%)                        ││
│  └─────────────────────────────────────────────────────────────┘│
│                                                                 │
│            [ Aplicar no Aimsun ]   [ Exportar Resultados ]      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Exportação de Dados

Os resultados podem ser exportados em diferentes formatos:

  • CSV: Histórico de trials com parâmetros e performance
  • JSON: Dados completos incluindo configurações
  • PDF: Relatório resumido (em desenvolvimento)

Estudos Salvos

Listar Estudos

Visualize estudos anteriores e seu status:

┌──────────────────────────────────────────────────────────────────┐
│                        Estudos de Otimização                     │
├──────────────────────────────────────────────────────────────────┤
│ Nome            │ Status    │ Trials │ Melhor   │ Atualizado    │
├─────────────────┼───────────┼────────┼──────────┼───────────────┤
│ Corredor Norte  │ completed │  100   │  28.3    │ 2 horas atrás │
│ Centro Expandido│ running   │  42/80 │  35.1    │ 5 min atrás   │
│ Av. Paulista    │ stopped   │  67    │  41.2    │ ontem         │
└──────────────────────────────────────────────────────────────────┘

Retomar Estudo

Para retomar um estudo anterior:

  1. Selecione o estudo na lista
  2. Clique em "Continuar"
  3. O OptFlow carrega o estado e continua de onde parou

Sessões Compatíveis

O OptFlow identifica estudos compatíveis que podem ser retomados:

  • Mesmo cenário (scenario_id)
  • Mesmos nós selecionados
  • Mesma estrutura de fases

Compatibilidade

Estudos são compatíveis se a estrutura da rede (nós e fases) não mudou desde a criação do estudo.

Boas Práticas de Monitoramento

  1. Acompanhe a convergência: Se a performance não melhora após muitas iterações, revise os parâmetros
  2. Verifique viabilidade: Se muitos trials são inviáveis, relaxe as constraints
  3. Monitore o tempo: Simulações muito longas? Use filtro de demanda
  4. Salve frequentemente: O OptFlow salva automaticamente, mas verifique os checkpoints
  5. Analise outliers: Trials com performance muito diferente podem indicar problemas

Notificações

Configure notificações para eventos importantes:

  • ✅ Otimização concluída
  • ❌ Erro durante execução
  • ⚠️ Conexão com Aimsun perdida
  • 🏆 Nova melhor solução encontrada

Próximos Passos