Motivação
Outro dia, eu estava viajando pela cidade com transporte público e criei um problema gráfico interessante, modelando o problema de encontrar a conexão de menor tempo entre dois lugares.
Todos conhecemos o clássico "Problema do caminho mais curto": Dado um gráfico direcionado com comprimentos de e dois vértices , encontre o caminho mais curto entre e (ou seja, o caminho que minimiza o comprimento total da aresta). Assumindo comprimentos de borda não negativos, existem vários algoritmos e o problema é fácil.w e ∈ R + 0 ,s , t ∈ V s t
Este é um bom modelo para o caso em que estamos caminhando, por exemplo. Os vértices são encruzilhadas em nossa rede de estradas e cada aresta tem comprimento fixo - em metros, por exemplo. Outra possível interpretação dos pesos das é o tempo que leva para irmos de um de seus vértices para o outro. Essa é a interpretação que me interessa agora.
Problema
Agora quero modelar a seguinte situação. Quero viajar do ponto A ao ponto B em uma cidade através de transporte público e minimizar o tempo . A rede de transporte público pode ser facilmente modelada como um gráfico direcionado, como seria de esperar. A parte interessante são os pesos das arestas (o tempo do modelo) - o transporte público (ônibus, por exemplo) sai apenas em determinados intervalos, que são diferentes para cada parada (vértice no gráfico). Em outras palavras - os pesos das arestas não são constantes, eles mudam dependendo do tempo em que queremos usar a aresta.
Como modelar esta situação: Temos um gráfico direcionado e uma função de peso da aresta w : E × R + 0 → R + 0 que leva o tempo como argumento e retorna o tempo necessário para usar o método vantagem em nosso caminho. Por exemplo, se o barramento do vértice v para o vértice u sai em t = 10 e leva 5 vezes, chegamos ao vértice v em t = 8 , então é o peso da borda. Claramente, w ( v u , 10 ) = 5 .
É um pouco complicado definir o peso total do caminho, mas podemos fazê-lo recursivamente. Seja um caminho direcionado. Se k = 1 então w ( P ) = 0 . Caso contrário, w ( P ) = w ( P ′ ) + w ( v k - 1 v k , w ( P ′ ) ), onde é o subcaminho de P sem v k . Esta é uma definição natural correspondente à situação do mundo real.
Agora podemos estudar o problema sob várias suposições sobre a função . A suposição natural é w ( e , t ) ≤ w ( e , t + Δ ) + Δ para todos e ∈ E , Δ ≥ 0 , que modela "aguardando o tempo Δ ".
Se a função "se comportar bem", pode ser possível reduzir esse problema ao problema clássico de caminho mais curto. Mas poderíamos perguntar o que acontece quando as funções de peso ficam selvagens. E se deixarmos de lado a suposição de espera?
Questões
Minhas perguntas são as seguintes.
- Esse problema já foi perguntado antes? Parece meio natural.
- Existe alguma pesquisa sobre isso? Parece-me que existem vários subproblemas a serem solicitados e estudados - principalmente em relação às propriedades da função peso.
- Podemos reduzir esse problema (possivelmente sob algumas suposições) ao problema clássico de caminho mais curto?