두 노드 사이의 k 최단 경로 찾기


9

가중 된 digraph 와 가중 함수 d (u, v)가 주어지면 보통 Dijkstra 알고리즘을 사용하여 최단 경로를 얻을 수 있습니다. 내가 관심있는 것은 2 ^ {nd}- 최단 경로, 3 ^ {rd}- 최단 등 을 얻는 방법 입니다.G=V,Ed(u,v)2nd3rd

질문 :

가중치 그래프에서 두 노드 사이의 i 번째로 가장 짧은 경로를 얻는 효율적인 알고리즘이 있습니까?

가중치 그래프에서 두 노드 사이의 k 최단 경로를 얻는 효율적인 알고리즘이 있습니까?

두 번째 질문 에 대한 답을 k 가 첫 번째 질문에 대한 답을 호출하는 것보다 더 효율적으로 수행 할 수 있는지 궁금하지만 두 질문 중 하나에 대한 답은 괜찮습니다 .


2
"k 최단 경로"에 대한 Google 검색은이 문제에 대한 알고리즘을 설명하는 여러 참조를 나타냅니다. 이 주제에 관한 Wikipedia 기사도 있습니다. en.wikipedia.org/wiki/K_shortest_path_routing
DW

@DW 간단한 요약으로 답변을 하시겠습니까?
Raphael

답변:


5

에서 최단 경로 문제 , 우리가 찾고자 최소 총 길이 주어진 정점 쌍을 연결하는 경로입니다. Eppstein [1]은 digraph에서 한 쌍의 꼭짓점 사이 의 최단 경로 (허용주기) 를 찾기 위해 시간에 실행되는 알고리즘을 가지고 있습니다. 이 논문의 기술을 사용하면 동일한 시간 범위 내에서 주어진 임계 값보다 짧은 모든 경로를 찾을 수도 있습니다. 주제에 대한 광범위한 문헌이 있으며, Eppstein 논문에는 많은 참고 문헌과 토론이 포함되어 있습니다.kkO(m+nlogn+k)k

사이클을 허용하지 않으면 Hershberger 등의 알고리즘을 볼 수 있습니다. [2].


[1] Eppstein, David. "k 최단 경로 찾기." 컴퓨팅 28.2 (1998) : SIAM Journal : 652-673. [ CiteSeerX ]

[2] 성선 존 마 Maxel 및 수 바시 수리. "가장 짧은 간단한 경로 찾기 : 새로운 알고리즘과 그 구현." 알고리즘에 대한 ACM 거래 (TALG) 3.4 (2007) : 45. [ CiteSeerX ]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.