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
fuente
Respuestas:
Laplaciano combinatorio? Depende de lo que esperes de tu solución. Algo razonable de esperar es que su solución debe ser independiente de la forma en que malla su superficie (o lo más independiente posible). Si lo desea, entonces claramente un gráfico combinatorio laplaciano no es lo que necesita, ya que el resultado sería completamente diferente si cambia la malla.
¿Discreto o continuo? Una posibilidad es considerar que su superficie no es discreta , es más bien un objeto continuo . La superficie se parametriza mediante un conjunto de variables discretas (puntos y valores de función en el vértice). Por ejemplo, un triángulo se define por:T
donde denotan los tres vértices del triángulo. Tenga en cuenta que el triángulo contiene una infinidad de puntos (¡es continuo!) Pero está completamente descrito por sus tres vértices. De manera similar, cuando se consideran funciones lineales por partes definidas por sus valores en los vértices, se consideran funciones continuas (son ) descritas por un vector discreto de sus valores en los vértices. Es el espacio de funciones el que es discreto, no la geometría .C 0p1,p2,p3 C0
Discretizando con FEMCon este punto de vista (FEM clásico), al proyectar la ecuación sobre la base de funciones lineales por partes (u otras si lo desea), puede construir una discretización FEM de su ecuación y resolverla. Consulte un libro de texto clásico sobre cómo hacerlo, por ejemplo [5] (también disponible en la página web de su autor como archivos pdf en inglés y francés), que explica completamente la derivación para el Laplaciano proyectado en funciones lineales por partes. Se debe tener cuidado: a menudo, los papeles de gráficos de computadora mezclan la discretización del operador (matriz de rigidez) con el "producto de puntos" de la base de función utilizada (matriz de masa), combinándolos en una matriz única (que ellos llaman " Laplaciano discreto "). Para comprender completamente lo que está sucediendo, deberá considerarlos por separado,
Teorema y topología de Varadhan:Algo que debe mencionarse sobre el "método de calor" [3] que usted cita: se basa en un teorema probado por Varadhan [1]. El artículo original de Varadhan demuestra el resultado utilizando una parametrización de la superficie y "retirando" todos los cálculos en el espacio de parámetros (utilizando la regla de la cadena). Como utiliza una parametrización, la prueba solo es válida para objetos que tienen una parametrización no degenerada. En particular, esto impone que el objeto considerado sea homeomorfo a un disco. Esta restricción en el teorema de Varadhan también se menciona en [2], página 400: "La fórmula de Varadhan funciona dentro del radio de inyectividad, lo que sucede cuando y se mueve al lugar de corte de x ... ocurren cambios dramáticos ... ocurren eventos extraños en puntos antipodales ". El 'locus cortado' es la zona donde pegaría un disco topológico para formar un objeto de topología arbitraria (o dicho de otro modo, si crece una 'célula Voronoi' desde un punto, aquí es donde el límite de la célula Voronoi se colisionará). Si quiere usar algo más que un disco topológico, entonces está solo (sin garantía matemática). Sin embargo, [3] informa algunos resultados empíricos que tienden a mostrar que lo que obtiene es razonable, por lo que para aplicaciones prácticas puede hacer el trabajo. Ahora, si desea probar los teoremas, debe saber que solo funcionarán para discos topológicos (a menos que encuentre una manera de extenderlos a casos más generales). Si quiere usar algo más que un disco topológico, entonces está solo (sin garantía matemática). Sin embargo, [3] informa algunos resultados empíricos que tienden a mostrar que lo que obtiene es razonable, por lo que para aplicaciones prácticas puede hacer el trabajo. Ahora, si desea probar los teoremas, debe saber que solo funcionarán para discos topológicos (a menos que encuentre una manera de extenderlos a casos más generales). Si quiere usar algo más que un disco topológico, entonces está solo (sin garantía matemática). Sin embargo, [3] informa algunos resultados empíricos que tienden a mostrar que lo que obtiene es razonable, por lo que para aplicaciones prácticas puede hacer el trabajo. Ahora, si desea probar los teoremas, debe saber que solo funcionarán para discos topológicos (a menos que encuentre una manera de extenderlos a casos más generales).
[1] Varadhan 1967, Procesos de difusión en un pequeño intervalo de tiempo, Comm. Matemática pura y aplicada, 20, 659-685
[2] Una vista panorámica de la geometría riemanniana, Marcel Berger, Springer, 2003
[3] Geodésicas en calor, K. Crane et.al, 2013
[5] https://global.oup.com/academic/product/numerical-analysis-and-optimization-9780199205219?cc=fr&lang=en&
fuente