Estou tentando resolver um problema de APSP (caminho mais curto de todos os pares) em um gráfico ponderado. Na verdade, este gráfico é uma grade dimensional de 1, 2 ou 3, e os pesos em cada aresta representam a distância entre seus dois vértices. O que eu quero ter é a distância do gráfico geodésico (caminho mais curto através do gráfico), para cada par de vértices.
Eu quero um método baseado em difusão, porque é mais rápido que um algoritmo Dijkstra ou Floyd-Warshall. Estou tentando conseguir isso usando a equação do calor:
Minha esperança é que, como a solução deveria ser a função verde de difusão :
então eu posso usar diretamente essa solução (com alguns ajustes para me livrar do fator à frente) como meu kernel, e o parâmetro será ajustado ajustando .
Ainda não consegui fazer algo que funcione e gostaria de alguma ajuda. Eu tentei muitas coisas até agora e existem vários problemas que surgem. É difícil e demorado explicar todos eles em uma pergunta; portanto, explicarei primeiro o que considero o início de uma boa abordagem e, depois, faça algumas perguntas gerais.
Da mesma forma que é feito na primeira etapa do algoritmo Geodésico no Calor, por Crane et al., Com uma etapa de Euler para trás, eu posso resolver o sistema linear: com t o passo de difusão, matriz laplaciana e Dirac em um dos vértices.
A resolução da equação (1) na verdade fornece um kernel da forma , o que não é desejado. Portanto, eu tenho que fazer K subiterações no tempo e resolver K vezes: que fornece .( I d - t u = M - 1 . . . M - 1 u 0
À medida que K aumenta, o kernel deve convergir para um quadrado .
Agora, aqui estão as perguntas:
Devo usar um gráfico Laplaciano ou uma diferença finita Laplaciano? AFAIU, um gráfico laplaciano é normalizado para ter 1 na diagonal, enquanto um FE laplaciano tem o grau na diagonal e é multiplicado por
Como incorporar os pesos dos gráficos no Laplaciano, para que a distância que recebo na solução seja a distância geodésica do gráfico? Quero poder prever qual será o intervalo de valores de na solução, em relação ao intervalo de pesos e aos parâmetros , e o número de pontos em uma direção (tamanho total do domínio: ).
Quais condições de contorno devo usar no Laplaciano? Sinto que não devo impor os valores da função (Dirichlet) na fronteira, porque isso significaria impor a maior distância. Ou devo? Tentei condições homogêneas de Neumann e condições homogêneas de Dircihlet, mas em ambos os casos, recebo alguma distorção perto dos limites da parábola (que verifico calculando o log da solução e subtrair o mínimo).
Devo usar uma equação de difusão? : , pois a difusão depende espacialmente ?
Referências :