최단 경로

Onni·2022년 3월 10일
0
post-thumbnail

📌 최단 경로 문제

  • 최단 경로 알고리즘은 가장 짧은 경로를 찾는 알고리즘을 의미함
  • 다양한 문제 상황
    • 한 지점에서 다른 한 지점까지의 최단 경로
    • 한 지점에서 다른 모든 지점까지의 최단 경로
    • 모든 지점에서 다른 모든 지점까지의 최단 경로
  • 각 지점은 그래프에서 노드로 표현
  • 지점 간 연결된 도로는 그래프에서 간선으로 표현

📌 다익스트라 최단 경로 알고리즘 개요

  • 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산한다
  • 다익스트라 최단 경로 알고리즘은 음의 간선이 없을 때 정상적으로 동작한다
  • 현실 세계의 도로(간선)은 음의 간선으로 표현되지 않습니다
  • 다익스트라 최단 경로 알고리즘은 그리디 알고리즘으로 분류된다
  • 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정을 반복한다

다익스트라 동작과정

[초기 상태] 그래프를 준비하고 출발 노드를 설정한다

  1. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드인 1번 노드를 처리한다

  2. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드인 4번 노드를 처리한다

  3. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드인 2번 노드를 처리한다

  4. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드인 5번 노드를 처리한다

  5. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드인 3번 노드를 처리한다

  1. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드인 6번 노드를 처리한다

✅ 다익스트라 알고리즘의 특징

  • 그리디 알고리즘: 매 상황에서 방문하지 않은 가장 비용이 적은 노드를 선택해 임의의 과정을 반복한다
  • 단계를 거치며 한 번 처리된 노드의 최단 거리는 고정되어 더 이상 바뀌지 않는다
  • 한 단계당 하나의 노드에 대한 최단 거리를 확실히 찾는 것으로 이해할 수 있다
  • 다익스트라 알고리즘을 수행한 뒤에 테이블에 각 노드까지의 최단 거리 정보가 저장된다

Reference

profile
꿈꿈

0개의 댓글