중화사전망 - 자전 검색 - 직관적인 이해: 단일 소스에서 최단 경로 얻기 -Dijkstra 알고리즘
직관적인 이해: 단일 소스에서 최단 경로 얻기 -Dijkstra 알고리즘
Dijkstra 알고리즘은 두 개의 집합 (최단 경로의 정점이 발견됨) 과 (최단 경로의 정점을 찾을 수 없음) 을 유지 관리하고, 컬렉션에서 경로 거리가 가장 작은 점을 반복적으로 제거하고, 컬렉션이 비어 있을 때까지 각 정점에서 소스 점까지의 최단 경로를 새로 이동한 점으로 업데이트합니다. 예를 들어 Dijkstra 알고리즘의 과정을 간단히 설명하겠습니다.
정점 a 가 알고리즘의 시작점이 아닌 다음 그림을 가지고 있다고 가정합니다.
먼저 두 세트의 합과 각 정점에서 소스 점까지의 거리를 초기화해야 합니다. A 에 직접 인접하지 않은 경우 결과는 양의 무한대로 설정됩니다.
단계 1: 컬렉션에서 가장 작은 점을 선택합니다. 여기서 정점 F 를 선택하면 컬렉션의 합이 다음과 같이 변경됩니다. 가장 최근의 중간 정점에서 소스 점 A 까지의 가장 짧은 거리를 다시 계산합니다.
Step 2:: 컬렉션에서 가장 작은 점을 선택합니다. 여기서 정점 e 를 선택하면 컬렉션의 합이 다음과 같이 변경됩니다. 가장 최근 재계산을 기준으로 정점에서 소스 점 a 까지의 가장 짧은 거리를 계산합니다.
세 번째 단계: 컬렉션에서 가장 작은 점을 선택합니다. 여기서 정점 C 를 선택하면 컬렉션의 합이 변경됩니다. 즉, 가장 최근 재계산된 정점에서 소스 점 A 까지의 가장 짧은 거리를 기준으로 합니다.
네 번째 단계: 컬렉션에서 가장 작은 점을 선택합니다. 여기서 정점 D 를 선택하면 컬렉션의 합이 다음과 같이 변경됩니다. 그리고 가장 최근 재계산된 정점에서 소스 점 A 까지의 가장 짧은 거리를 기준으로 합니다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 예술명언)
5 단계: 컬렉션에서 가장 작은 점을 골라서 정점 B 를 고르고, 컬렉션의 합은 다음과 같이 변경됩니다. 가장 최근의 재계산을 기준으로 정점에서 소스 점 A 까지의 가장 짧은 거리를 계산합니다.
6 단계: 컬렉션에서 가장 작은 점을 선택합니다. 여기서 정점 G 를 선택하면 컬렉션의 합계가 다음과 같이 변경됩니다. 컬렉션이 비어 있기 때문에 알고리즘이 반복을 중지하고 결과를 출력합니다.
다음은 Dijkstra 알고리즘 계산 프로세스에 대한 간단한 설명입니다.