쌍별 문제를 반복적으로 해결하는 것보다 모든 쌍 사이에서 k 개의 최단 경로를 더 빨리 찾을 수 있습니까?


9

나는 생산하고 싶다 k 최단 경로 (k그래프의 모든 쌍 사이에서 10보다 작을 것입니다. 그래프는 (실제로 지하철 노선도) :

  • 긍정적으로 가중
  • 방향이없는
  • 부족한
  • 약 100 노드

나의 현재 계획은 적용하는 것입니다 k각 쌍으로의 최단 경로 라우팅 ; 이제 더 효율적인 대안을 찾고 있습니다 (동적 프로그래밍 가능).


3
솔직히 100 개의 정점에 대해 45,000 쌍의 문제를 해결하는 것보다 더 효율적인 것이 필요하지 않은 것 같습니다.
David Richerby

답변:


6

우선, 컴퓨팅의 중요한 차이점 k-최단 경로는 경로가 단순해야하는지 여부입니다. 노드를 반복적으로 포함하지 않는 경우 경로를 simple 이라고 합니다 . 예를 들어 루프가있는 경로는 간단하지 않습니다. 링크 된 Wikipedia 페이지에서 기사가 반드시 간단한 경로는 아닙니다. 간단한 경로의 경우 반드시 간단한 경로가 아닌 경우보다 어려운 것 같습니다.

모든 쌍 k가장 짧은 간단한 경로 문제

이것은 꽤 젊은 연구 분야 인 것 같습니다. Agariv와 Ramachandran의 최근 논문은 ArXiv [1]에서 찾을 수 있습니다. 이전 작업 섹션에서는 문제의 이력에 대한 통찰력도 제공합니다.

모든 쌍 k최단 경로 문제

실제로 Eppsteins 알고리즘을 반복적으로 적용하는 것이 최선의 선택입니다 [2]. 문제의 단일 소스 버전에 대한 알고리즘의 반복 적용이 가장 빠른 접근이라는 일반적인 관찰은 1977 년 EL Lawler에 의해 이미 이루어졌다 [3]; Eppstein은이 하위 문제에 대해 가장 빠른 알고리즘을 제공합니다.

참고 문헌

[1] Agarwal, U. 및 Ramachandran, V. 찾기 k간단한 최단 경로 및주기. arXiv : 1512.02157 [cs.DS] https://arxiv.org/pdf/1512.02157.pdf

[2] Eppstein, D. k 최단 경로 찾기. SIAM Journal on Computing 28, 2 (1999), 652–673.

[3] Lawler, EL 그래프에서 k 개의 최단 경로 계산에 대한 의견. ACM의 커뮤니케이션, 20 (8) : 603–605, 1977.


감사합니다. 지하철지도를 사용하고 있기 때문에 간단한 경로가되어야합니다 (소프트웨어가 사람들을 앞뒤로 안내하는 것은 의미가 없습니다). 그래서 Yan의 알고리즘을 사용하는 것 같습니다 .
Franklin Yu

10,000 건의 사례를 하나씩 해결하는 것보다 10,000 건의 문제를 분명히 해결할 수 없다는 점이 흥미롭고 놀랍습니다.
gnasher729

제거 루프와 동등한 "경로"겉으로는이 때문에 "최단 경로"에 포함 된 루프와 경로의 개념은 직관적 & 특이한 것, 다른 하나는 이러한 효율적으로 간단한 경로 등 ... 구성 될 수 있는지 궁금해
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.