1. 개요
2. 이산수학에서
경우의 수 문제중 유형화된 문제중 하나이다. 일반적으로 여러개의 점들 중에서 어떤점부터 다른 한 점까지의 최단 경로를 묻는 문제로 나온다. 아래의 기하학적 최단거리와 구별하기 위해 '점을 거쳐야 하는 규칙'을 추가한다.
2.1. 풀이
이 문제를 푸는 방법은 3가지로 나눌 수 있다.
2.1.1. 1,1,1법칙(노가다)
가장 귀찮지만 가장 생각은 안 하고 문제를 풀 수 있는 방법이다. 또한 후술할 법칙과는 달리 문제가 바뀌어도 풀이법에 크게 변화가 없는, 범용성이 뛰어나다.
1,1,1 법칙은 다음과 같다.
1,1,1 법칙은 다음과 같다.
(0,1)
| (1,1)
| (도착)
|
(출발)
| (1,0)
| (2,0)
|
이렇게 생긴 지도에서 최단거리의 개수는 다음과 같다.
(0,1)-(1)
| (1,1)-(2)
| (도착)-(3)
|
(출발)-(1)
| (1,0)-(1)
| (2,0)-(1)
|
이렇게, 출발이 있는 행과 열의 포인트들에 1이라고 쓰고 어느 한 점의 최단거리의 개수를 그 점으로 갈 수 있는 점들의 최단거리의 개수의 합으로 하는 것 이다.
지도가 작은 경우, 혹은 장애물이 많은 경우 이 방법이 후술할 방법보다 유용할 수 도 있다. 하지만 대부분의 경우 실수할 확률도 높고 좋지 않은 풀이기 때문에 아래 방법도 알아두자.
지도가 작은 경우, 혹은 장애물이 많은 경우 이 방법이 후술할 방법보다 유용할 수 도 있다. 하지만 대부분의 경우 실수할 확률도 높고 좋지 않은 풀이기 때문에 아래 방법도 알아두자.
2.1.2. 동자순열을 이용한 풀이
(0,2)
| (1,2)
| (2,2)
| (도착)
|
(0,1)
| (1,1)
| (2,1)
| (3,1)
|
(출발)
| (1,0)
| (2,0)
| (3,0)
|
위처럼 생긴 지도에서 최단거리의 길이는 5이다. 또한 모든 최단거리는 오른쪽 3번, 위쪽 2번으로 구성되어 있음을 알 수 있다. 다시말해, 오른쪽 3번, 위쪽 2번을 배열해서 만든 배열은 모두 최단거리라는 것 이다. 따라서 동자순열의 원리에 따라 위 예시의 최단경로의 개수는 [math(frac{5!}{3!2!})]과 같다.
이 풀이를 이용한 해법은 일반적으로 다음과 같이 정리할 수 있다.
이 풀이를 이용한 해법은 일반적으로 다음과 같이 정리할 수 있다.
[math(N{sf x}M)]크기의 지도에서 최단경로의 개수는 [math(frac{(N+M)!}{N!M!})]와 같다.
2.1.3. 조합을 이용한 풀이
조합을 이용한 풀이는 동자순열을 이용한 풀이와 맥락이 비슷하다. 다만 그 경우의 수를 구하는 방법이 조금 다를 뿐이다.
조합을 이용해 최단경로의 개수를 구하는 방법은 일반적으로 다음과 같다.
조합을 이용해 최단경로의 개수를 구하는 방법은 일반적으로 다음과 같다.
[math(N{sf x}M)]크기의 지도에서 최단경로의 개수는 [math(N+M choose M)]와 같다. ([math(p choose q)]은 조합이다.)
2.2. 크기
3. 기하학에서
3.1. 유클리드 기하학
3.2. 비유클리드 기하학
[1] 맨해튼 노름(Manhattan norm)이라고도 한다.