현재 유 방향 그래프에서 최단 경로를 연구하고 있습니다. dijkstra 또는 bellman-ford와 같이 네트워크에서 가장 짧은 경로를 찾기위한 효율적인 알고리즘이 많이 있습니다. 그러나 그래프가 동적이라면 어떻게 될까요? 동적이라고 말하면 프로그램을 실행하는 동안 정점을 삽입하거나 제거 할 수 있습니다. 새 그래프에서 가장 짧은 경로 알고리즘을 다시 실행할 필요없이 가장자리 e를 삽입 한 후 꼭지점 에서 다른 모든 꼭지점 u 로 최단 경로를 업데이트하는 효율적인 알고리즘을 찾으려고 합니다. 어떻게해야합니까? 미리 감사드립니다.
- 참고 : 알고리즘의 첫 번째 반복 후에 변경을 수행 할 수 있습니다.
- 참고 [2] : 두 노드가 제공되며, 소스 및 마에 대상한다. 이 노드들 사이의 최단 경로를 찾아야합니다. 그래프가 갱신 된 경우 I 만 갱신을 갖고 π ( S , t ) 사이의 최단 경로, S 및 t .
- 참고 [3] : 저는 엣지 삽입 케이스에만 관심이 있습니다.
공식적인 정의 : 그래프 주어 집니다. 정의 갱신 동작 ) 에지의 삽입 등을 1 전자 에 E 또는 2)의 단 가장자리 삭제 E 에서 E . 목표는 업데이트 작업 후 가장 짧은 경로의 모든 쌍의 비용을 효율적으로 찾는 것입니다. 효율적으로, 우리는 각 업데이트 작업 후에 Bellman-Ford 알고리즘과 같은 All-Pairs-Shortest-Path 알고리즘을 실행하는 것보다 적어도 더 나은 것을 의미합니다.
편집 : 아래에 문제의 단순화 된 버전이 있습니다.
단방향 모서리와 두 개의 중요한 정점 s 와 t 로 구성된 가중치 그래프 가 제공 됩니다. 후보 양방향 에지 의 세트 C 도 제공된다. s 에서 t 까지 의 거리를 최소화하려면 모서리 ( u , v ) ∈ C 를 만들어야합니다 .