Ir para o conteúdo

Configuração da Otimização

Antes de iniciar a otimização no Aimsun, você precisa configurar os parâmetros e a métrica de avaliação na plataforma web do OptFlow.

Login na Plataforma

Para começar a usar o OptFlow, você precisa acessar a plataforma web e fazer login com suas credenciais.

  1. Abra seu navegador e acesse https://optflow.fratar.com.br.
  2. Insira seu nome de usuário e senha nos campos apropriados.
  3. Clique no botão de login.

Tela de Login

Após o login, você será direcionado para a interface principal onde poderá configurar e gerenciar seus estudos de otimização.

Aba "Otimização"

A aba "Otimização" é onde você define os parâmetros fundamentais que guiarão o processo de otimização do OptFlow.

Aba Otimização

Aqui estão os parâmetros que você precisa configurar:

Parâmetros Gerais

  • n_iter: Define o número total de iterações que o algoritmo de otimização executará. Cada iteração corresponde a uma simulação completa no Aimsun. Um número maior de iterações permite uma exploração mais aprofundada do espaço de soluções, mas aumenta o tempo de processamento.
  • seed: É um valor numérico usado para inicializar o gerador de números aleatórios. Usar a mesma seed garante que os resultados da otimização sejam reproduzíveis. Alterar a seed levará a resultados diferentes, pois a sequência de números aleatórios (e, consequentemente, as amostras de parâmetros testadas) será distinta.
  • Direção de Otimização: Especifica se o objetivo da otimização é minimizar ou maximizar o valor da Fórmula de Desempenho (que será definida na próxima aba). Por exemplo, se a fórmula representa o tempo de atraso total, você escolheria "Minimizar". Se representa o fluxo total, escolheria "Maximizar".

Limites das Variáveis e Variação Máxima Absoluta

Nesta seção, você define os limites e as regras de variação para os principais parâmetros semafóricos que o OptFlow pode ajustar:

  • cycle (Ciclo):
    • Limites: Define o intervalo (valor mínimo e máximo) dentro do qual o tempo de ciclo semafórico pode variar durante a otimização.
    • Variação Máxima: Restringe o quanto o ciclo pode se desviar do valor inicial definido no Aimsun. Se definido como 0, o tempo de ciclo permanecerá fixo durante a otimização.
    • Passo: Determina o incremento mínimo (granularidade) para as variações do ciclo dentro dos limites definidos.
    • Permitir Meio Ciclo: Uma opção avançada que permite ao otimizador considerar a metade do valor do ciclo para interseções individuais, mesmo que um ciclo global seja definido. Isso pode ser útil em cenários específicos onde a flexibilidade por interseção é desejada.
  • offset (Defasagem):
    • Limites: Define o intervalo (valor mínimo e máximo) para a variação da defasagem (offset) entre os planos semafóricos das interseções.
    • Variação Máxima: Restringe o quanto a defasagem pode se desviar do valor inicial. Se 0, a defasagem não será otimizada.
    • Passo: Determina o incremento mínimo para as variações da defasagem.
  • phase_duration (Tempo de Verde):
    • Limites: Define o intervalo (valor mínimo e máximo) para a variação do tempo de verde de cada grupo semafórico individualmente.
    • Variação Máxima: Restringe o quanto o tempo de verde pode se desviar do valor inicial. Se 0, o tempo de verde daquele grupo não será otimizado.
    • Passo: Determina o incremento mínimo para as variações do tempo de verde.

Limites das Variáveis

Parâmetros Específicos do Algoritmo (Sampler)

  • Sampler: Seleciona o algoritmo (ou estratégia de amostragem) que o OptFlow utilizará para explorar o espaço de soluções e encontrar os melhores parâmetros semafóricos. Cada sampler tem características, vantagens e desvantagens distintas:

    • TPE (Tree-structured Parzen Estimator): Um algoritmo Bayesiano eficiente que modela a distribuição de probabilidade dos parâmetros.
    • OptFlow (Otimização Bayesiana Baseada em Processo Gaussiano): Outro algoritmo Bayesiano que utiliza processos gaussianos para modelar a função objetivo.
    • CMAES (Covariance Matrix Adaptation Evolution Strategy): Uma estratégia evolutiva robusta, eficaz em problemas complexos.
    • HEBO (Heterogeneous Efficient Bayesian Optimization): Otimizado para problemas com muitas variáveis ou ruído.
    • Random: Simplesmente testa configurações aleatórias dentro dos limites definidos. Útil como linha de base ou para exploração inicial.
    • Hill Climbing: Uma meta-heurística que busca melhorias locais a partir de uma solução inicial.
    • Simulated Annealing: Uma meta-heurística inspirada no processo de recozimento de metais, capaz de escapar de ótimos locais.
    • Sequencial: Um modo especial que permite combinar diferentes samplers e regras de otimização em intervalos específicos de iterações (anteriormente chamado Fratar). Por exemplo, você pode usar um sampler exploratório nas primeiras iterações e um sampler mais focado em explotação nas iterações finais, ou fixar/liberar a otimização de certos parâmetros (ciclo, offset, verde) em diferentes fases.

    Nota

    A escolha do sampler pode impactar significativamente a qualidade dos resultados e o tempo de convergência. Consulte a seção Teoria para uma análise mais aprofundada de cada algoritmo. Cada sampler pode ter parâmetros internos adicionais que podem ser ajustados para otimizar seu desempenho.

Comparação de Samplers ### Salvando as Configurações de Otimização

Após definir todos os parâmetros desejados na aba "Otimização", clique no botão "Salvar Configurações" para armazenar suas escolhas. Essas configurações serão usadas quando você iniciar o processo de otimização a partir do Aimsun.

Aba "Performance" (Fórmula de Desempenho)

A aba "Performance" é crucial, pois é aqui que você define a métrica que o OptFlow usará para avaliar quão boa é uma determinada configuração semafórica. O algoritmo de otimização tentará encontrar os parâmetros que minimizem ou maximizem o valor desta fórmula, conforme definido na "Direção de Otimização".

Aba Performance

Definindo a Fórmula

Você tem duas opções principais para definir a fórmula:

  1. Usar um Template: O OptFlow oferece uma seleção de fórmulas de desempenho pré-definidas ("Template de Fórmula") que cobrem objetivos comuns (ex: minimizar atraso, maximizar fluxo).
    • Selecione um template na lista suspensa.
    • Clique em "Aplicar Template". A fórmula correspondente será carregada no campo "Fórmula de Desempenho".
  2. Criar sua Própria Fórmula: Você pode escrever uma fórmula personalizada usando os indicadores de desempenho disponíveis e a sintaxe matemática padrão do Python.

Sintaxe da Fórmula

As fórmulas de desempenho seguem as regras padrão de expressões matemáticas do Python:

  • Operações Básicas:
    • Adição: + (ex: "Tempo de Viagem" + "Tempo de Atraso")
    • Subtração: - (ex: "Fluxo" - "Veículos Fora")
    • Multiplicação: * (ex: "Tempo de Viagem" * "Fluxo")
    • Divisão: / (ex: "Fluxo" / "Contagem de Entrada")
  • Potências e Raízes:
    • Potência: ** (ex: "Tempo de Atraso" ** 2 para atraso ao quadrado)
    • Raiz Quadrada: ** 0.5 (ex: "Tempo de Atraso" ** 0.5)
  • Indicadores:
    • Os nomes dos indicadores de desempenho (obtidos da simulação Aimsun) devem sempre estar entre aspas duplas (").
    • Exemplos: "Tempo de Atraso", "Fluxo", "Velocidade Média", "Número de Paradas".

Indicadores Disponíveis

A interface exibe uma lista de todos os "Indicadores Disponíveis" que podem ser usados em sua fórmula. Estes são os dados que o Aimsun gera a cada simulação.

  • Adicionar à Fórmula:
    • Dê um clique duplo no nome do indicador na lista para adicioná-lo automaticamente ao final da fórmula atual.
    • Arraste e solte o nome do indicador da lista para a posição desejada dentro do campo da fórmula.

Editor de Fórmula e Indicadores

Validando e Salvando a Fórmula

  • Validar Fórmula: Antes de salvar, é altamente recomendável clicar no botão "Validar Fórmula". O sistema verificará a sintaxe da sua expressão e informará se há erros (ex: nomes de indicadores incorretos, parênteses desbalanceados).
  • Salvar Fórmula: Após validar e confirmar sua fórmula, clique em "Salvar Fórmula" para armazená-la. Esta será a fórmula utilizada pelo otimizador.

Conselho sobre Ordens de Grandeza

Se sua fórmula combina indicadores com ordens de grandeza muito diferentes (ex: tempo de atraso em segundos e fluxo em veículos por hora), a otimização pode tender a priorizar o indicador com valores numericamente maiores. Para evitar isso, considere normalizar os indicadores antes de combiná-los. Uma técnica comum é dividir cada indicador pelo seu valor máximo esperado ou por um valor de referência, para que todos fiquem em uma escala semelhante (ex: entre 0 e 1). Exemplo (conceitual): ( "Tempo de Atraso" / 100 ) + ( "Fluxo" / 2000 )