Compreendendo as Elasticidades em um Ajuste OD¶
Os pesos nos processos de Ajuste OD Estático e Dinâmico controlam quão importante é o papel de cada um dos componentes da função objetivo no processo iterativo. Para o termo OD, o peso é definido através 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.
Esses componentes medem a Bondade de Ajuste (GoF):
- \(γ_{1}rac12(G-hat{G})^2\) refere-se à diferença entre a matriz OD ajustada atual e a matriz OD base, onde:
- \(γ_{1}\): fator de peso em relação à demanda de tráfego (matrizes OD)
- \(G\): matriz OD ajustada
- \(hat{G}\): matriz OD base
- \(γ_{2}rac12(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 um intervalo entre 0 e 1
- \(V(G)\): volumes ajustados atualizados após cada iteração
- \(hat{V}\): medições observadas obtidas do Conjunto de Dados Real
- \(γ_{3}rac12(P-hat{P})^2\) refere-se à diferença entre a distribuição de comprimento da viagem ajustada atual e a base resultante da primeira iteração (disponível apenas no Ajuste OD Estático)
- \(γ_{3}\): fator de peso para a distribuição de comprimento da viagem
- \(P\): comprimento da viagem atualizado para viagens OD divididas por células de 1 km calculadas em cada iteração
- \(hat{P}\): comprimento da viagem para viagens OD divididas por células de 1 km na primeira iteração
A Figura 1 mostra que, tanto nas abas de Ajuste OD Dinâmico (janela à esquerda) quanto Estático (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 da viagem (\(e_{3}\)) pode ser definida apenas no Ajuste OD Estático por Classe de Usuário. Uma vez definidas, tanto as elasticidades de Demanda quanto de Comprimento da Viagem são traduzidas em pesos (\(γ_{1}\)) e (\(γ_{3}\)) usando a seguinte fórmula: \(γ_{a}= rac{1}{e_{a}}-1\)
Os \(γ_{1}\), \(γ_{2}\), \(γ_{3}\) são os fatores de peso que refletem a incerteza das informações contidas na matriz OD base, contagens observadas e TLD observados, respectivamente.
O valor para o peso \(γ_{2}\) é obtido do Conjunto de Dados Real se este incluir um valor por medição nomeado Confiabilidade. Este valor é considerado no processo de ajuste como um peso para a diferença entre os dados observados e os atribuídos. Quanto maior a Confiabilidade, maior é a importância desse termo de erro na função objetivo geral. A confiabilidade pode assumir valores entre 0 e 1.
Em detalhes:
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, multiplica o peso pelo valor na coluna de confiabilidade.
- Função de Peso (apenas no Ajuste OD Estático): multiplica o peso pelo valor obtido a partir da avaliação da Função de Peso.
- Cobertura do Detector (apenas Detectores e Estações de Detecção): O número de faixas da seção coberta pelo detector/estação / número de faixas (da mesma forma para conversões). Multiplica o peso por esse valor. Sempre aplicado. Não sei por que é aplicado dessa forma. Talvez para favorecer detectores que têm cobertura total da seção.
Portanto, o peso pode resultar do seguinte cálculo:
\(weight = 1.0 * Reliability * WeightFunction * DetectorCoverage\)
Enquanto as elasticidades são medidas de quão firmemente ancorada a matriz ajustada está em relação à matriz anterior, outras condições podem restringir o valor ajustado, como os Limites de Demanda, que são especificados através de uma matriz de restrições por célula e por Classe de Usuário.
Se a matriz OD anterior para uma classe de usuário estiver bem estabelecida e souber-se que é precisa, então uma elasticidade de demanda próxima de zero seria apropriada, pois a estrutura da matriz OD inicial é preservada. Por outro lado, se a matriz anterior é menos precisa - talvez derivada de um modelo mais antigo ou onde se soube que houve mudanças de uso da terra subsequentes - então a matriz seria esperada a mudar de maneira mais significativa no cenário de ajuste. Portanto, um valor de elasticidade de 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 de comprimento da viagem. No entanto, na maioria dos casos, o resultado dessa diferença \((P-hat{P})^2\) acaba ficando com 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 valores muito baixos.
Os valores de elasticidade não podem ser predefinidos, uma vez que 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 do detector, etc. Subsequentemente, os valores definidos em um projeto podem não alcançar 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, em seguida, ajustar cada valor de elasticidade.
A seguir, você pode encontrar exemplos testando uma variedade de valores para elasticidades que podem ajudá-lo a entender 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 pode reproduzir as contagens observadas (RDS). Portanto, se o peso para as contagens for sempre 1, então os valores de elasticidade devem variar entre 0.5-1, caso contrário, fazemos a suposição de que confiamos mais na matriz inicial do que no RDS.
Elasticidade da Demanda¶
Os valores de elasticidade para a demanda controlam quanto os valores na matriz ajustada podem variar no procedimento de ajuste.
Pode ser entendido como a força da reação 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 um peso alto para o termo OD na função objetivo, portanto, a divergência da demanda base é pequena. Quando a elasticidade é 1, o fator de peso é 0 (referente à equação), o que significa que o termo OD não é considerado na função objetivo. Remover esse termo dá flexibilidade ao algoritmo para buscar em um espaço mais amplo de soluções, em vez de restringir a divergência. O valor da elasticidade 1 pode ser selecionado nos casos em que a qualidade da matriz OD base não for boa.
Isso significa que, quanto mais próximo de 0, mais forte é essa reação a qualquer desvio da demanda original, enquanto quanto mais próximo de 1, mais fraca é. No caso extremo em que é 0, não há reação a uma mudança na demanda original.
Exemplo¶
Em uma rede de amostra, mantendo todos os outros parâmetros de entrada fixos, testamos os seguintes 6 valores de elasticidade da demanda:
\(e_{1}\) = {0.01, 0.1, 0.5, 0.75, 0.9, 1.0}
Para traduzir essas elasticidades em um peso (\(γ_{1}\)) usado na função objetivo, aplicamos a fórmula: \(γ_{1}= rac{1}{e_{1}}-1\).
\(γ_{1}\)= {99, 9, 1, 4, 0.111, 0}
O resultado da atribuição estática antes do ajuste:
O que esperamos entender a partir deste experimento é que, ao usar uma elasticidade próxima de 0 (peso alto), restringimos o ajuste das viagens OD da matriz base. Portanto, 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 da 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 na matriz OD base para mover as viagens OD de modo que a validação melhore. Neste caso, a Distribuição de Comprimento da Viagem mudará significativamente à medida que as viagens
Após a execução desses experimentos, o Ajuste OD apresentou os seguintes resultados:
Aba de Validação¶
Definindo pequenos valores de elasticidade da demanda (ou seja, 0.01), a validação entre volumes ajustados e de referência não melhorou à medida que as viagens OD não foram modificadas suficientemente, enquanto ao definir a elasticidade da demanda próxima de 1 (ou seja, 0.9), a validação R2 e Slope melhorou.
Aba de Viagens¶
Definindo pequenos valores 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 base.
Aba de Comprimento da Viagem¶
Quando a elasticidade da demanda é definida próxima de 0, a Distribuição de Comprimento da Viagem não muda, pois as viagens permanecem quase as mesmas.
A conclusão é que quanto mais próximo de 1 o valor da elasticidade da demanda é definido, mais liberdade é dada às células na matriz base para ajustar, de modo que melhora os critérios de validação (R2, Slope).
Novamente, esses são apenas exemplos onde os valores de elasticidade testados foram escolhidos aleatoriamente, portanto, não tome esses valores de elasticidade como os valores padrão para o seu projeto.
Elasticidade da Distribuição de Comprimento da Viagem¶
A Elasticidade da Distribuição de Comprimento da Viagem é definida apenas no Experimento de Ajuste OD Estático.
O mesmo conceito de elasticidade como na elasticidade da demanda também está disponível para a Distribuição de Comprimento da Viagem. No entanto, neste caso, em vez de comparar as demandas de referência e ajustadas, a comparação é entre os intervalos da distribuição original de comprimento da viagem calculada após a primeira iteração e os intervalos da iteração final. Onde os intervalos são as viagens OD agregadas em células de intervalos de 1 km (0-1, 1-2, 2-3...13-14).
Em uma rede de amostra, mantendo todos os outros parâmetros de entrada fixos, testamos os seguintes 6 valores de elasticidade da distribuição de comprimento da viagem:
\(e_{1}\) = {0.000001, 0.00001, 0.01, 0.75}
Para traduzir essas elasticidades em um peso (\(γ_{3}\)) usado na função objetivo, aplicamos a fórmula: \(γ_{3}= rac{1}{e_{3}}-1\).
\(γ_{1}\)= {999999, 99999, 99, 4}
Veja a comparação do resultado da primeira iteração (em azul) e o resultado final do ajuste OD estático (em vermelho):
Novamente, esses são apenas exemplos onde os valores de elasticidade testados foram escolhidos aleatoriamente, portanto, não tome esses valores de elasticidade como os valores padrão para o seu projeto.
Limites de Demanda¶
A Matriz de Máxima Deformidade pode ser usada como um limite para restringir a variação das novas viagens OD quando calculadas após cada iteração. O valor do limite de demanda por célula OD funciona como uma ferramenta de segurança que visa proteger o processo de ajuste de se afastar muito da matriz OD base de referência.
Exemplo:
Para um único par OD que vai de A para B:
- A matriz OD base tem 100 viagens
- O Detector mediu em média 10 veículos passando
- A Matriz de Máxima Deformidade é definida como 50%, o que significa que a matriz OD ajustada pode assumir valores de 50 a 150 viagens.
Após 1 iteração: 83 viagens -> OK Após 2 iterações: 64 viagens -> OK Após 3 iterações: 35 viagens -> ajustadas para 50 viagens Após 4 iterações: 45 viagens -> ajustadas para 50 viagens ... Após N iterações: 22 viagens -> ajustadas para 50 viagens
Os Limites de Demanda são um conceito completamente diferente das Elasticidades da Demanda.
Limites de Demanda: Aceito qualquer mudança dentro do intervalo definido. Que mudança? Até o algoritmo de otimização usando contagens. Não me importo se muda mais ou menos.
Elasticidade: Posso aceitar qualquer mudança. Que mudança? Até o algoritmo de otimização usando contagens MAS penalizando se você se afastar da demanda OD base.
Quando os limites de demanda estão definidos como Congelados, isso é aplicado para limitar os pares OD. Os limites de demanda são aplicados na última etapa do ajuste em cada iteração. Portanto, o valor muda, mas depois as restrições são aplicadas. Assim, em caso de ODs congelados, seus valores serão retornados ao valor OD inicial (após cada etapa de descida de gradiente).