중국인 우편배달부 문제 계산기
모든 간선을 적어도 한 번 지나 출발점으로 돌아오는 가장 짧은 경로의 길이를 냅니다. 홀수 차수 정점을 짝지어 최단경로만큼 덧그리는 과정을 보이고, 만든 순회 경로가 실제로 모든 간선을 덮는지까지 검산합니다.
줄마다 「정점 정점 길이」 — 지금 7개. 길이를 빼면 1로 봅니다
모든 길을 지나 제자리로 오는 최소 거리
27
간선 길이 합 23 + 덧그리는 길이 4
| 정점 | 차수 | 홀짝 |
|---|---|---|
| A | 2 | 짝수 |
| B | 3 | 홀수 |
| C | 4 | 짝수 |
| D | 3 | 홀수 |
| E | 2 | 짝수 |
실제로 만들어 본 순회 경로 (히어홀처)
A → B → C → D → B → C → E → D → C → A
= 23 + 4 = 27홀수 차수 정점끼리 짝지어 그 사이 «최단경로»만큼을 덧그리면 모든 차수가 짝수가 되어 오일러 회로가 생깁니다. 위의 순회 경로는 그 다중그래프에서 실제로 만들어 본 것이고, 길이가 답과 같은지·모든 간선을 덮는지를 검산으로 보였습니다.
사용 방법
- 1간선을 줄마다 「정점 정점 길이」로 넣습니다.
- 2차수 표에서 홀수인 정점을 확인합니다. 반드시 짝수 개입니다.
- 3어떤 쌍을 어떤 경로로 덧그렸는지 봅니다.
- 4만든 순회 경로의 길이가 답과 같은지로 검산합니다.
자주 묻는 질문
모든 간선(길)을 적어도 한 번 지나 출발점으로 돌아오는 가장 짧은 경로를 찾는 문제입니다. 우체부가 담당 구역의 모든 길을 지나야 하는 상황에서 이름이 붙었고, 제설차 경로·검침 경로·도로 점검 경로가 같은 문제입니다.
외판원은 모든 「지점」을 한 번씩 들르는 문제이고, 우편배달부는 모든 「길」을 지나는 문제입니다. 그리고 결정적으로 우편배달부는 다항시간에 풀립니다. 최단경로를 구해 두고 홀수 차수 정점의 최소 매칭만 찾으면 되기 때문입니다.
모든 간선을 정확히 한 번씩 지나 제자리로 오는 오일러 회로는 모든 정점의 차수가 짝수일 때만 있기 때문입니다. 어떤 정점에 들어갔으면 나와야 하므로 붙은 간선이 짝을 이루어야 합니다. 그래서 홀수인 정점만 골라 간선을 덧그려 짝수로 만드는 것이 이 문제의 전부입니다.
그런 일은 일어나지 않습니다. 모든 차수의 합이 간선 수의 두 배라 짝수이므로, 홀수인 정점이 홀수 개일 수 없습니다. 그래서 짝짓기가 언제나 가능하고 이 문제는 항상 답이 있습니다(그래프가 한 덩어리이기만 하면).
간선 길이의 합이 그대로 답입니다. 덧그릴 것이 없고 오일러 회로가 이미 있습니다. 이 경계를 먼저 확인하는 것이 좋습니다.
두 홀수 정점을 짝지어 그 사이를 이을 때 가장 싸게 잇는 방법이 최단경로이기 때문입니다. 그래서 모든 정점 쌍의 최단거리를 플로이드–워셜로 구해 두고 그 위에서 매칭만 찾으면 됩니다. 직통 간선이 있어도 우회가 짧으면 우회를 씁니다.
이 계산기는 12개까지 다룹니다. 짝짓는 방법이 (2k−1)!!가지라 12개면 10,395가지를 전수로 셉니다. 그보다 많으면 블로섬 알고리즘 같은 다항시간 매칭이 필요합니다. 실제 우편 구역에서 홀수 교차로가 그보다 많은 일은 드뭅니다.
전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.
알아두면 좋은 점
- 방향이 있는 간선(일방통행)은 다루지 않습니다. 그 경우는 최소비용흐름으로 풀어야 합니다.
- 그래프가 끊겨 있으면 답이 없습니다. 한 덩어리여야 합니다.
- 자기 자신으로 가는 고리는 다루지 않습니다.
- 홀수 차수 정점은 12개까지 전수 탐색합니다.
- 만든 순회 경로가 모든 간선을 덮는지, 길이가 답과 같은지를 함께 검산해 보입니다.
- 같은 최소 길이를 내는 순회 경로가 여럿일 수 있습니다. 그중 하나를 보여 줍니다.
- 정점 40개·간선 200개까지 다룹니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.