그래프를 활용하여 최단 경로를 구할 수는 없을까? 최단경로 알고리즘은 크게 3가지가 존재한다. 이번 시간에는 다익스트라만 다루도록 하겠다. 다익스트라란? 음의 가중치가 없는 그래프의 한 정점에서 모든 정점까지의 최단거리를 각각 구하는 알고리즘이다. 정점 사이에는 가중치가 존재한다. 최단경로의 특징 정점 x까지 최단거리로 가기 위해서는 그 직전까지도 최단거리로 가야 한다. 위의 그림을 보면 1 - 6 - 2 - 3 - 8 - 7 순으로 이동한다. 최단경로의 특징을 이용하면 1~8까지 이동할 때에도 최단 경로로 이동한다. 그래서 최단경로 트리를 어떻게 만들 것인가? T(i) = i까지 도달하는 최단거리 -> 파란색 숫자 순서를 그림을 이용하여 천천히 설명하겠다. 보라 색원은 이미 탐색을 완료했다는 의미이다...
그래프란 다음과 같은 모습을 가지고 있다. 즉 그래프는 각각의 정점이 간선으로 연결되어있는 모습이다. 그래프는 왜 중요한가? 현실 세계의 많은 것들을 그래프로 나타낼 수 있다. - 즉 그래프와 관련된 문제가 매우 많다. 그래프와 관련된 수학적 정리가 매우 많다. - 그래프 이론이라는 분야가 따로 있다. 그래프에 관한 중요한 수학적 지식 간선의 개수는 정점의 제곱보다 작거나 같다. -> 항상 참 각 정점의 차수의 합은 간선의 개수의 2배와 같다. -> 항상 참 - 차수는 각 정점에 연결되어 있는 간선의 수 차수의 합을 구할 때, 각 간선을 두 번씩 세기 때문이다. 그래프의 구현 : 인접 행렬 정점의 연결 관계를 2차원 배열에 0,1로 표현한다. 장점: 연결 여부를 O(1)에 알 수 있다. 단점: 인접한 정..