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.
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:
- Cliente Aimsun: Selecione o computador conectado
- Cenário: Escolha o cenário do Aimsun
- Experimento/Replicação: Defina a base da simulação
- Iterações: Número de avaliações
- 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:
- Selecione o estudo na lista
- Clique em "Continuar"
- 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
- Acompanhe a convergência: Se a performance não melhora após muitas iterações, revise os parâmetros
- Verifique viabilidade: Se muitos trials são inviáveis, relaxe as constraints
- Monitore o tempo: Simulações muito longas? Use filtro de demanda
- Salve frequentemente: O OptFlow salva automaticamente, mas verifique os checkpoints
- 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
- Execução: Como iniciar uma otimização
- Multi-Objetivo: Visualize a Fronteira de Pareto
- Constraints: Monitore o status de viabilidade
