Estoy tratando de resolver un problema APSP (All-Pair Shortest Path) en un gráfico ponderado. Este gráfico es en realidad una cuadrícula de 1, 2 o 3 dimensiones, y los pesos en cada borde representan la distancia entre sus dos vértices. Lo que quiero tener es la distancia del gráfico geodésico (el camino más corto a través del gráfico), para cada par de vértices.
Quiero un método basado en difusión, porque es más rápido que un Dijkstra o un algoritmo Floyd-Warshall. Estoy tratando de lograr esto usando la ecuación de calor: Al final, mi aplicación necesita un núcleo de la forma con la distancia geodésica del gráfico.
Espero que, dado que se supone que la solución es la función verde para la difusión :
entonces puedo usar directamente esa solución (con algunos ajustes para eliminar el factor en frente) como mi núcleo, y el parámetro se ajustará ajustando .t
Todavía no he podido hacer algo que funcione y me encantaría recibir ayuda. He intentado muchas cosas hasta ahora, y surgen múltiples problemas. Es difícil y largo explicarlos todos en una pregunta, así que primero explicaré lo que creo que es el comienzo de un buen enfoque y luego haré algunas preguntas generales.
De la misma manera que Crane et al. Lo hacen en el primer paso del algoritmo Geodesic in Heat, con un paso hacia atrás de Euler, puedo resolver el sistema lineal: con el paso de difusión, L la matriz laplaciana, y u_0 un Dirac en uno de los vértices. t
Resolver la ecuación (1) en realidad da un núcleo de la forma , que no se desea. Por lo tanto, tengo que hacer K subiteraciones a tiempo y resolver K veces: que da .( I d - t u = M - 1 . . . M - 1 u 0
A medida que K aumenta, se supone que el núcleo converge a un cuadrado .
Ahora aquí vienen las preguntas:
¿Debo usar un gráfico laplaciano o un laplaciano de diferencias finitas? AFAIU, un gráfico laplaciano está normalizado para tener 1 en la diagonal, mientras que un laplaciano FE tiene el grado en la diagonal y se multiplica por
¿Cómo incrustar los pesos del gráfico en el Laplaciano, de modo que la distancia que obtengo en la solución es la distancia geodésica del gráfico? Quiero ser capaz de predecir cuál será el rango de valores de en la solución, con respecto a la gama de los pesos y los parámetros , , y el número de puntos en una dirección (tamaño total del dominio: ).
¿Qué condiciones de contorno debo usar en el Laplaciano? Siento que no debería imponer los valores de la función (Dirichlet) en el límite, porque eso significaría imponer la distancia más alta. O debería ? Intenté las condiciones homogéneas de Neumann y las condiciones homogéneas de Dircihlet, pero en ambos casos obtengo cierta distorsión cerca de los límites de la parábola (que verifico calculando el registro de la solución , y restando el mínimo).
¿Debo usar una ecuación de difusión en su lugar? : , ya que la difusión es espacialmente dependiente ?
Referencias