Pular para o conteúdo

Entendendo as Elasticidades em um Ajuste OD

Os pesos nos processos de Ajuste OD Estático e Dinâmico controlam a importância que cada um dos componentes da função objetivo desempenha no processo iterativo. Para o termo OD, o peso é definido por meio do valor de elasticidade definido pelo usuário. O objetivo do processo de ajuste é minimizar a seguinte função objetivo após cada iteração.


elasticities_ui

Esses componentes medem a Qualidade do Ajuste (GoF):

  • \(γ_{1}\frac12(G-\hat{G})^2\) refere-se à diferença entre a matriz OD ajustada atual e a matriz OD semente, onde:
    • \(γ_{1}\): fator de peso em relação à demanda de tráfego (matrizes OD)
    • \(G\): matriz OD ajustada
    • \(\hat{G}\): matriz OD semente
  • \(γ_{2}\frac12(V(G)-\hat{V})^2\) refere-se à diferença entre os volumes ajustados atuais e as medições observadas, onde:
    • \(γ_{2}\): fator de peso para as medições observadas com uma faixa entre 0 e 1
    • \(V(G)\): volumes ajustados atualizados após cada iteração
    • \(\hat{V}\): medições observadas lidas do Real Data Set
  • \(γ_{3}\frac12(P-\hat{P})^2\) refere-se à diferença entre a distribuição atual ajustada de comprimento de viagem e a distribuição base de comprimento de viagem resultante da primeira iteração (disponível apenas no ajuste estático de OD)
    • \(γ_{3}\): fator de peso para a distribuição de comprimento trp
    • \(P\): comprimento de viagem atualizado para viagens OD divididas por células de 1 km calculado em cada iteração
    • \(\hat{P}\): extensão da viagem para viagens OD divididas em células de 1 km na primeira iteração

A Figura 1 mostra que, nas abas de experimento de ajuste OD Dynamic (janela à esquerda) e Static (janela à direita), o usuário pode definir a elasticidade da demanda (\(e_{1}\)) por Classe de Usuário. A elasticidade da distribuição de comprimento das viagens (\(e_{3}\)) pode ser definido somente em ajuste estático de OD por Classe de Usuário. Uma vez definido, tanto as elasticidades de Demanda quanto de Distribuição de Comprimento de Viagem são traduzidas em pesos (\(γ_{1}\)) e (\(γ_{3}\)) usando a seguinte fórmula: \(γ_{a}= \frac{1}{e_{a}}-1\)


elasticities_ui

Isso \(γ_{1}\), \(γ_{2}\), \(γ_{3}\) são os fatores de ponderação que refletem a incerteza das informações contidas na matriz OD semente, nas contagens observadas e na TLD observada, respectivamente.

O valor para o peso \(γ_{2}\) é considerada pelo Real Data Set se ele incluir um valor por medição chamado Reliability. Esse valor é considerado no processo de ajuste como um peso para a diferença entre os dados observados e atribuídos. Quanto maior a Reliability, maior a importância desse termo de erro para a função objetivo global. A confiabilidade pode assumir valores entre 0 e 1.

Em detalhe:

Por padrão, o valor do peso \(γ_{2}\) é definido como 1.0. No entanto, o peso depende das seguintes condições:

  • Confiabilidade: se o RDS tiver uma coluna de confiabilidade, ele multiplica o peso pelo valor na coluna de confiabilidade.
  • Função de Peso (somente em Ajuste OD Estático): multiplica o peso pelo valor obtido ao avaliar a Weight Function.
  • Cobertura de Detecção (somente Detectores e Estações de Detecção): O número de faixas da seção cobertas pelo detector/estação / número de faixas (de forma semelhante para movimentos de conversão). Ele multiplica o peso por esse valor.

Assim, o peso pode resultar do seguinte cálculo:

\(weight = 1.0 * Reliability * WeightFunction * DetectorCoverage\)

Embora as elasticidades sejam medidas de quão firmemente a matriz ajustada está ancorada à matriz anterior, outras condições podem então restringir o valor ajustado, como a Limites de demanda, que é especificada por meio de uma matriz de restrições por célula e por User Class.

Se a matriz OD prévia para uma classe de usuário estiver bem estabelecida e for conhecida como precisa, então uma elasticidade da demanda próxima de zero seria adequada, pois a estrutura da matriz OD inicial é preservada. Por outro lado, se a matriz prévia for menos precisa – talvez derivada de um modelo mais antigo ou quando se sabia que houve mudanças subsequentes no uso do solo – então seria esperado que a matriz mudasse de forma mais significativa no cenário de ajuste. Portanto, um valor de elasticidade da demanda (\(e_{1}\)) mais próximo de 1 seria apropriado.

Da mesma forma, o usuário deve definir os valores na elasticidade da distribuição do comprimento das viagens. No entanto, na maioria dos casos, o resultado dessa diferença \((P-\hat{P})^2\) acaba chegando a valores muito baixos, pois se refere a uma diferença entre duas porcentagens. Para influenciar o processo de ajuste OD, os valores de elasticidade devem ser muito baixos.

Os valores de elasticidade não podem ser predefinidos, pois os vetores e parâmetros na função objetivo dependem de muitos indicadores, como o tamanho da rede, o tipo de rede (urbana, interurbana, mista), o número de ODs, o tamanho da demanda de tráfego, o número de detectores, a confiabilidade dos dados, a magnitude dos dados dos detectores etc. Consequentemente, os valores definidos em um projeto podem não atingir o mesmo resultado em outro projeto. Nossa recomendação é começar com alguns valores e executar vários testes para entender o impacto de cada elasticidade no processo e, então, ajustar finamente cada valor de elasticidade.

A seguir, você encontrará exemplos que testam uma faixa de valores para elasticidades que podem ajudar a compreender o impacto das elasticidades no processo de ajuste. Observe que alguns desses valores não são realistas, mas foram definidos para mostrar os limites do processo de ajuste. Por exemplo:

  • Quando a elasticidade é definida como 0,01, então o peso é igual a 99 para o termo OD, o que significa que há uma enorme confiança na matriz OD inicial
  • Quando o peso é igual a 1 para o termo de contagem, confiamos muito menos nas contagens observadas

Precisamos considerar valores para os pesos (ou seja, elasticidade) no termo OD em relação a quão bem a matriz inicial consegue reproduzir as contagens observadas (RDS). Portanto, se o peso das contagens for sempre 1, os valores de elasticidade devem variar entre 0,5 e 1; caso contrário, assumimos que confiamos mais na matriz inicial do que nas RDS.

Elasticidade da Demanda

Os valores de elasticidade da demanda controlam quanto os valores na matriz ajustada podem variar no procedimento de ajuste.

Pode ser entendida como a intensidade da força reativa que se opõe às mudanças da demanda em relação à demanda de referência.

Um valor de elasticidade mais próximo de zero resulta em alto peso para o termo OD na função objetivo; portanto, o desvio em relação à demanda inicial é pequeno. Quando a elasticidade é 1, o fator de ponderação é 0 (referência à equação), o que significa que o termo OD não é considerado na função objetivo. Remover esse termo dá flexibilidade ao algoritmo para pesquisar em um espaço mais amplo de soluções, em vez de restringir o desvio. O valor de elasticidade 1 pode ser selecionado nos casos em que a qualidade da matriz OD inicial não é boa.

Isso significa, quanto mais próximo de 0, mais forte é essa reação a qualquer desvio em relação à demanda original; quanto mais próximo de 1, mais fraca ela é. No caso limite em que ele é 0, não há reação a uma alteração em relação à demanda original. 

Exemplo

Em uma rede de exemplo, mantendo todos os demais parâmetros de entrada fixos, testamos os seguintes 6 valores de elasticidades da demanda:

\(e_{1}\) = {0.01, 0.1, 0.5, 0.75, 0.9, 1.0}

Para traduzir essas elasticidades em um peso (\(γ_{1}\)) usada na função objetivo, aplicamos a fórmula: \(γ_{1}= \frac{1}{e_{1}}-1\)

\(γ_{1}\)= {99, 9, 1, 4, 0.111, 0}

O resultado da alocação estática antes do ajuste:


base de Alocação Estática

O que esperamos entender com este experimento é que, ao usar uma elasticidade próxima de 0 (peso alto), restringimos o ajuste das viagens OD da matriz semente. Assim, o processo não permite que as células mudem significativamente ao longo das iterações para modificar (ajustar) a demanda e, portanto, melhorar a validação. Como consequência dessa restrição, espera-se que a Distribuição de Comprimento de Viagem não mude ao comparar o resultado final do ajuste com o resultado da primeira iteração do ajuste. Em contraste, ao usar uma elasticidade da demanda próxima de 1 (peso baixo), damos liberdade às células da matriz OD semente para mover as viagens OD de modo que a validação melhore. Nesse caso, a Distribuição de Comprimento de Viagem mudará significativamente à medida que as viagens

Após executar esses experimentos, o Ajuste OD apresentou os seguintes resultados:

Aba Validação

Ao definir valores pequenos de elasticidade da demanda (ou seja: 0.01), a validação entre volumes ajustados e de referência não melhorou, pois as Viagens OD não foram modificadas o suficiente, enquanto ao definir a elasticidade da demanda próxima de 1 (ou seja: 0.9), o R2 e a Inclinação da validação melhoraram.


Cenário de Ajuste OD Estático - Principal

aba Viagens

Ao definir valores pequenos de elasticidade da demanda, as viagens OD não foram modificadas suficientemente, enquanto quando o valor de elasticidade da demanda foi definido próximo de 1, foi dada mais liberdade no processo de ajuste para modificar as viagens OD na matriz semente.


Cenário de Ajuste OD Estático - Principal

Aba Comprimento da viagem

Quando a elasticidade da demanda é definida próxima de 0, a Distribuição de Comprimento de Viagem não muda, pois as viagens permanecem quase iguais.


Cenário de Ajuste OD Estático - Principal

A conclusão é que, quanto mais próximo de 1 for definido o valor de elasticidade da demanda, mais liberdade é dada às células na matriz semente para se ajustar, de modo que melhore os critérios de validação (R2, Slope).

Novamente, estes são apenas exemplos em que os valores de elasticidade testados foram escolhidos aleatoriamente; portanto, não considere esses valores de elasticidade como os valores padrão para seu projeto.

Elasticidade da Distribuição de Comprimento de Viagem

A Elasticidade da Distribuição do Comprimento das Viagens é definida apenas no Experimento de Ajuste de OD Estático.

O mesmo conceito de elasticidade usado na elasticidade da demanda também está disponível para a Trip Length Distribution. No entanto, neste caso, em vez de comparar as demandas de referência e ajustada, a comparação é feita entre os bins da distribuição original de comprimento de viagem calculada após a primeira iteração e os bins da iteração final. Os bins são as viagens OD agregadas em células de faixas de 1 km (0-1, 1-2, 2-3...13-14).

Em uma rede de exemplo, mantendo todos os demais parâmetros de entrada fixos, testamos os seguintes 6 valores de elasticidades da distribuição de comprimento de viagem:

\(e_{1}\) = {0.000001, 0.00001, 0.01, 0.75}

Para traduzir essas elasticidades em um peso (\(γ_{3}\)) usada na função objetivo, aplicamos a fórmula: \(γ_{3}= \frac{1}{e_{3}}-1\)

\(γ_{1}\)= {999999, 99999, 99, 4}

Veja a comparação do resultado da primeira iteração (em azul) e do resultado final do ajuste OD estático (em vermelho):


Elasticidade da Distribuição de Comprimento de Viagem

Novamente, estes são apenas exemplos em que os valores de elasticidade testados foram escolhidos aleatoriamente; portanto, não considere esses valores de elasticidade como os valores padrão para seu projeto.

Limites de demanda

O Matriz de Desvio Máximo pode ser usado como um limite para restringir a variação das novas viagens OD quando calculadas após cada iteração. O valor de limite da demanda por célula OD funciona como uma ferramenta de segurança que visa proteger o processo de ajuste contra afastamentos excessivos da matriz OD semente de referência.

Exemplo:

Para um único par OD que vai de A para B:

  • A Matriz OD semente tem 100 viagens
  • O Detector mediu, em média, 10 veículos passando
  • A Max Deviation Matrix é definida como 50%, o que significa que a matriz OD ajustada pode assumir valores de 50 a 150 viagens.
    After 1 iteration: 83 trips -> OK
    After 2 iteration: 64 trips -> OK 
    After 3 iteration: 35 trips -> adjusted to 50 trips
    After 4 iteration: 45 trips -> adjusted to 50 trips
    ...
    After N iteration: 22 trips -> adjusted to 50 trips
    

Os Limites de Demanda são um conceito completamente diferente das Elasticidades da Demanda.

Limites de Demanda: Aceito qualquer alteração dentro do intervalo definido. Qual alteração? Fica a critério do algoritmo de otimização usando contagens. Não me importo se ele alterar mais ou menos.

Elasticidade: Posso aceitar qualquer alteração. Qual alteração? Fica a cargo do algoritmo de otimização usando contagens, MAS penalizando se você se desviar da demanda OD semente.

Quando os limites de demanda são definidos como Frozen, isso é aplicado para limitar os pares OD. Os limites de demanda são aplicados na última etapa do ajuste em cada iteração. Assim, o valor muda, mas então as restrições são aplicadas. Portanto, no caso de ODs congeladas, seu valor será redefinido para o valor OD inicial (após cada etapa de descida do gradiente).