Dijkstra의 알고리즘은 컴퓨터 과학에서 사용되는 인기있는 방법입니다. 그래프에서 노드 사이의 짧은 경로를 찾을 수 있습니다. 그것은 네트워크 라우팅, 맵 탐색 및 다양한 최적화 문제에서 널리 적용됩니다. 이 문서는 Dijkstra의 알고리즘을 사용하여 계산을 수행하는 방법을 단계별 개요를 제공합니다.

Algorithm에 대한 이해

노드를 가장 작은 텐트의 거리로 선택하여 알고리즘을 사용하며, 그 주변 노드에 거리를 업데이트합니다. 이 노드가 가장 짧은 경로가 발견되거나 모든 노드가 처리될 때까지 계속됩니다.

단계별 계산 과정

노드 A, B, C, D, E와 그래프를 가지고 있으며, 다음의 무게를 다룬 가장자리가 있습니다.

  • A에서 B까지: 4
  • C에 A: 2
  • B에서 C: 1
  • B에서 D: 5
  • C에서 D: 8
  • C에서 E: 10
  • D에서 E: 2

노드 A부터 시작하면, 거리 초기화: A = 0, 다른 사람 = 무한성. 보이지 않는 모든 노드를 표시하십시오.

폭력 1

노드 A (거리 0)를 선택합니다. 이웃 노드 B 및 C를 업데이트하십시오.

B까지의 거리: 4 (A + 4), C에: 2 (A + 2). 방문으로 표시 A.

폭력 2

노드 C (거리 2)를 선택하십시오. 이웃 D 및 E를 업데이트하십시오.

D까지의 거리: 10 (C + 8), E에: 12 (C + 10). C를 방문으로 표시하십시오.

폭력 3

노드 B (거리 4)를 선택하십시오. 이웃 D 업데이트:

D까지의 거리: 9 (B + 5), 이전 10보다 적은. D의 거리 9. 마크 B 방문으로 업데이트.

폭력 4

노드 D (거리 9)를 선택하십시오. 이웃 E를 업데이트하십시오.

E까지의 거리: 11 (D + 2). E의 거리를 업데이트 11. 마크 D 방문으로.

폭력 5

Remaining 노드 E는 11의 거리에 있습니다. Mark E는 방문했습니다. A에서 E까지의 가장 짧은 경로는 노드 C, B, D 및 E를 통해 총 거리 11로 갑니다.