세이델 알고리즘

Seidel's algorithm

세이델의 알고리즘Raimund Seidel이 1992년에 간접적이고, 가중치가 없고, 연결된 그래프의 올페어-가장 짧은 경로 문제를 위해 고안한 알고리즘이다.[1]그것은(Vω 로그 ⁡ V)은 복잡성에 2.373{\displaystyle \omega<>2.373}은 지수 On×n{\displaystyle n\times의 스녀}의(nω){O(n^{\omega})\displaystyle}O의 문제 V{V\displaystyle}vertices,ω<>를 그래프{O(V^{\omega}\log V)\displaystyle}예정 시간을 해결하고 있다. matrix 곱하기각 꼭지점 쌍 사이의 거리만 찾으면 최악의 경우 동일한 시간 경계를 달성할 수 있다.알고리즘이 연결된 그래프에 대해 설계되어 있더라도 전체적으로 동일한 실행 시간을 가진 그래프의 각 연결된 구성요소에 개별적으로 적용할 수 있다.경로 계산에 대해 위에 주어진 예상 실행 시간에 예외가 있다: = 2 경우, 예상 실행 O ( 2 가 된다

구현 상세 내역

알고리즘의 핵심은 정점 쌍 사이의 최단 경로 길이를 계산하는 절차다.최악의 경우 V) }\ V번으로 수행할 수 있다.일단 길이 재계산한다의 경로ω 을의 예상 마감 시간은 O(Vω 로그 ⁡ V){O(V^{\omega}\log V)\displaystyle}은 라스 베이거스 알고리즘, ω 2{\displaystyle \omega>2}그리고 O(V 2로그 2⁡ V){O(V^{2}\log^{2}V)\displaystyle})2{\displaystyle \omega를 사용해 재건축할 수 있다.=2}.

최단 경로 길이 계산

아래의 Python 코드는 입력 그래프가 대각선에 0이 있는 n - 1 인접 A 로 주어진다고 가정한다. 항목이 포함된 행렬을 반환하는 APD 함수를 정의하여, i j 사이의 최단 경로의 길이입니다사용되는 매트릭스 클래스는 곱하기, 지수화 및 인덱싱 연산자(예: numpy.matrix)를 지원하는 매트릭스 클래스 구현일 수 있다.

반항하다 apd(A, n: 인트로):     """최단 경로 길이를 계산하십시오."""     만일 전부(A[i][j] 을 위해 i  범위(n) 을 위해 j  범위(n) 만일 i != j):         돌아오다 A     Z = A ** 2     B = 매트릭스([         [1 만일 i != j 그리고 (A[i][j] == 1 또는 Z[i][j] > 0) 다른 0 을 위해 j  범위(n)]     을 위해 i  범위(n)])     T = apd(B, n)     X = T*A     정도 = [합계를 내다(A[i][j] 을 위해 j  범위(n)) 을 위해 i  범위(n)]     D = 매트릭스([         [2 * T[i][j] 만일 X[i][j] >= T[i][j] * 정도[j] 다른 2 * T[i][j] - 1 을 위해 j  범위(n)]     을 위해 i  범위(n)])     돌아오다 D 

기본 케이스는 입력 인접 행렬이 전체 그래프를 설명하는지 여부를 테스트하며, 이 경우 모든 최단 경로에 길이 이(가) 있다

유한한 우주에서 온 가중치가 있는 그래프

유한 우주{… ,,+ 의 가중치를 갖는 비방향 및 지시 그래프의 알고리즘도 존재한다.지시 사례에 대해 가장 잘 알려진 알고리즘은 Zwick의 시간 O~( M /( - ) V + /( 4- ))}이다[2]이 알고리즘은 제곱 행렬 곱셈 대신 직사각형 행렬 곱셈을 사용한다.다중 제곱 행렬 곱셈을 통해 직사각형 곱셈을 달성하는 대신 사용 가능한 최고의 직사각형 행렬 곱셈 알고리즘을 사용하면 더 나은 상한을 얻을 수 있다.비방향 사례에 대해 가장 잘 알려진 알고리즘은 1999년 쇼산(Shoshan)과 Zwick(Zwick)의 시간 ~ )MV이다.[3]이 알고리즘의 원래 구현이 잘못돼 2016년 에이리나키스, 윌리엄슨, 수브라마니 등이 수정했다.[4]

메모들

  1. ^ Seidel, R. (1995). "On the All-Pairs-Shortest-Path Problem in Unweighted Undirected Graphs". Journal of Computer and System Sciences. 51 (3): 400–403. doi:10.1006/jcss.1995.1078.
  2. ^ Zwick, U. (1 November 1998). "All pairs shortest paths in weighted directed graphs-exact and almost exact algorithms". Proceedings 39th Annual Symposium on Foundations of Computer Science (Cat. No.98CB36280). pp. 310–319. doi:10.1109/SFCS.1998.743464. ISBN 0-8186-9172-7. S2CID 10096418 – via IEEE Xplore.
  3. ^ Shoshan, A.; Zwick, U. (15 February 1999). "All pairs shortest paths in undirected graphs with integer weights". 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039). pp. 605–614. doi:10.1109/SFFCS.1999.814635. ISBN 0-7695-0409-4. S2CID 2377466 – via IEEE Xplore.
  4. ^ Eirinakis, Pavlos; Williamson, Matthew; Subramani, K. (28 March 2016). "On the Shoshan-Zwick Algorithm for the All-Pairs Shortest Path Problem". arXiv:1603.08627 [cs.DS].