작업 흐름 간소화: miniwebtool 검색.
추가
함께 보기
온스를 mL로 변환기L-System 프랙탈 생성기미로 생성기스피로그래프 생성기
홈페이지 > 수학 관련 도구 > 고급 수학 연산 도구 > 외판원 문제 솔버 (TSP)
 

외판원 문제 솔버 (TSP)

모든 도시를 정확히 한 번씩 방문하고 출발지로 돌아오는 가장 짧은 경로를 찾습니다. 소규모 데이터는 Held-Karp 동적 계획법(DP)을 통해 정확한 해를 구하고, 대규모 데이터는 최근접 이웃(Nearest-Neighbor) 및 2-opt 휴리스틱을 사용합니다. 좌표 또는 거리 행렬 입력을 지원하며 애니메이션이 포함된 SVG 경로를 생성합니다.

외판원 문제 솔버 (TSP)
좌표 형식: A, 10, 20 또는 10 20. 행렬 형식: 0 10 15 20 — 한 줄에 한 행씩, 정사각, 비음수 값. 최대 40개 도시.
쉼표 또는 공백으로 구분된 라벨을 행렬 행 순서대로 입력하세요. 생략 시 기본값 A, B, C...가 사용됩니다.

Embed 외판원 문제 솔버 (TSP) Widget

외판원 문제 솔버 (TSP) 정보

외판원 문제 솔버는 고전적인 외판원 문제(Traveling Salesman Problem, TSP)를 위한 실용적이고 교육적인 계산기입니다. 외판원 문제란 여러 도시와 각 도시 사이의 거리가 주어졌을 때, 모든 도시를 정확히 한 번씩 방문하고 다시 출발지로 돌아오는 최단 경로를 찾는 문제입니다. 이 솔버는 평면 좌표 또는 사용자 정의 거리 행렬을 입력받아 문제 크기에 따라 자동으로 최적의 알고리즘을 선택하며, 결과 경로를 애니메이션 SVG 지도로 렌더링합니다.

외판원 문제란 무엇인가요?

형식적으로, 정점 집합 V = {1, 2, ..., n}과 간선 가중치 d(i, j)를 가진 완전 가중 그래프 G = (V, E)가 주어졌을 때, TSP는 다음을 최소화하는 정점의 순열 π를 찾습니다:

최소화: Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

마지막 항은 루프를 닫는 역할을 합니다. TSP는 조합 최적화 분야에서 가장 오래되고 많이 연구된 문제 중 하나로, 일반적인 경우 NP-난해(NP-hard)에 속합니다. 이는 모든 사례를 다항 시간 내에 해결하는 알고리즘이 없음을 의미합니다. 그럼에도 불구하고 차량 경로 최적화, PCB 드릴링, DNA 시퀀싱, 창고 피킹 경로, 천체 관측 일정, 우편 배달 등 수많은 실무 분야에서 활용됩니다.

이 솔버의 작동 원리

Held–Karp 동적 프로그래밍 (정확한 해)

소규모 사례(최대 12개 도시)의 경우, 솔버는 1962년 Richard Bellman과 Michael Held 및 Richard Karp가 각각 독립적으로 발표한 Held–Karp 알고리즘을 사용하여 증명 가능한 최적 경로를 계산합니다. 핵심 점화식은 다음과 같습니다 (여기서 C(S, j)는 부분 집합 S를 방문하고 정점 1에서 정점 j로 가는 최단 경로임):

C(S, j) = mink ∈ S \ {j} [ C(S \ {j}, k) + d(k, j) ]

최적 경로 비용은 minj [C({1,...,n}, j) + d(j, 1)]이 됩니다. Held–Karp는 O(2n · n²)의 시간 복잡도와 O(2n · n)의 메모리를 사용합니다. 이는 브루트 포스 방식인 n!보다는 훨씬 개선된 것이지만 여전히 지수적입니다. 약 20개 도시를 넘어가면 메모리 사용량이 감당할 수 없을 정도로 커집니다.

Nearest-Neighbor + 2-opt (휴리스틱)

더 큰 사례의 경우 솔버는 2단계 휴리스틱을 사용합니다. 먼저 Nearest-Neighbor 알고리즘이 각 시작 정점에서 가장 가까운 미방문 도시를 탐욕적으로 선택하여 빠른 경로를 구축합니다. 솔버는 여러 시작 정점을 시도하여 가장 좋은 경로를 유지합니다. 그 후 2-opt 국소 탐색을 통해 두 개의 간선을 반복적으로 제거하고 결과 경로를 다른 방식으로 재연결하여 경로를 개선합니다:

변경 전: ... a — b ... c — d ... 2-opt 교체 후: ... a — c ... b — d ... 만약 d(a,c) + d(b,d) < d(a,b) + d(c,d) → 교체 승인, b..c 구간 경로 반전

기하학적으로 2-opt는 경로 내의 모든 "교차"를 제거합니다. 교차하는 두 세그먼트는 항상 교차하지 않게 재연결하여 전체 길이를 단축할 수 있습니다. 알고리즘은 더 이상 개선할 수 없는 국소 최적 상태(이를 2-최적 경로라 함)에서 멈춥니다. 실제 유클리드 사례에서 2-opt는 수 밀리초 내에 실제 최적해의 2~5% 이내인 경로를 찾아냅니다.

입력 형식

좌표 모드 (x, y)

한 줄에 하나의 도시를 입력합니다. 각 줄은 라벨, x, y 형식이며 라벨은 선택 사항입니다. 솔버는 유클리드 거리를 자동으로 계산하고 실제 위치에 도시를 시각화합니다.

A, 10, 20 B, 40, 70 C, 75, 30 Seoul: 126.97, 37.56 10 20 ← 자동 라벨링 C1

거리 행렬 모드

비음수 거리로 구성된 n × n 정사각 행렬을 입력합니다. 각 행은 한 줄씩 입력하며 값은 공백이나 쉼표로 구분합니다. 행렬은 대칭일 수도, 비대칭일 수도 있습니다. 비대칭 행렬은 일방통행로, 가용성에 따른 항공권 가격, 바람의 영향을 받는 이동 등을 모델링할 때 쓰입니다. '행렬 라벨' 필드에서 라벨을 별도로 제공할 수 있습니다.

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

알고리즘 비교

알고리즘 시간 복잡도 메모리 결과 품질 실용적 크기
브루트 포스 O(n!) O(n) 최적 n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) 최적 n ≤ 20
Nearest-Neighbor O(n²) O(n) 최적해보다 ~25% 나쁨 n ≤ 수천 개
NN + 2-opt O(n² · passes) O(n) 최적해보다 ~2–5% 나쁨 n ≤ 수백 개

솔버 사용 방법

  1. 입력 모드 선택: 도시가 유효한 (x, y) 위치를 가지면 '좌표'를, 비용이 비유클리드적이거나 비대칭이면 '거리 행렬'을 선택합니다.
  2. 데이터 입력: 한 줄에 한 도시 또는 한 행씩 입력합니다. 폼 위의 빠른 예제 버튼을 클릭하여 유효한 예시를 채워볼 수 있습니다.
  3. 알고리즘 선택: '자동'으로 두는 것이 좋습니다. 사례가 충분히 작으면 Held-Karp를, 그렇지 않으면 NN + 2-opt를 사용합니다. 비교를 위해 특정 알고리즘을 강제할 수도 있습니다.
  4. 폐쇄형 또는 개방형 선택: 폐쇄형 경로는 출발지로 다시 돌아오는 전통적인 TSP입니다. 개방형 경로는 외판원이 다른 도시에서 끝나는 관련 문제인 '해밀턴 경로' 문제를 해결합니다.
  5. 해결 클릭: 결과 페이지에는 총 경로 길이, 경로 애니메이션 SVG('애니메이션 재생'으로 다시 볼 수 있음), 전체 방문 순서, 간선별 상세 분석, 경로가 강조된 거리 행렬이 표시됩니다.

작업 예시

직사각형과 꼭대기로 구성된 5개 도시 A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5)를 가정해 봅시다. 솔버 결과:

실세계 적용 사례

자주 묻는 질문

외판원 문제란 무엇인가요?

외판원 문제(Traveling Salesman Problem, TSP)는 모든 도시를 정확히 한 번 방문하고 다시 출발 도시로 돌아오는 최단 경로를 찾는 문제입니다. 조합 최적화의 대표적인 난제이며 일반적인 경우 NP-난해입니다.

Held–Karp 알고리즘이란 무엇인가요?

Held–Karp는 TSP를 정확하게 해결하는 동적 프로그래밍 알고리즘으로 시간 복잡도는 O(2n · n²)입니다. 브루트 포스보다 빠르지만 여전히 기하급수적이라 대략 20개 도시 이하일 때 주로 쓰입니다. 본 솔버는 12개 이하일 때 이 방식을 사용합니다.

2-opt란 무엇이며 왜 사용되나요?

2-opt는 두 개의 간선을 끊고 다르게 연결하여 경로를 개선하는 휴리스틱입니다. 계산이 빠르고 최적해에 근접한 결과를 내놓기 때문에 대규모 TSP에서 가장 널리 사용되는 표준 기법입니다.

언제 좌표 모드를 사용하고 언제 거리 행렬 모드를 사용하나요?

지도상의 점이나 회로 기판 구멍처럼 직선 거리가 중요한 경우 좌표를 사용하세요. 항공권 가격, 교통량이 포함된 시간, 일방통행 등 기하학적으로 설명되지 않는 비용이 있다면 거리 행렬을 사용하세요.

2-opt 솔루션이 항상 최적인가요?

아니요, 2-opt는 국소 최적해를 찾습니다. 결과가 최적에 매우 가깝긴 하지만 완벽한 최단 경로를 보장하지는 않습니다. 보장된 최적해가 필요하면 소규모 사례에서 Held-Karp를 선택하십시오.

이 도구는 비대칭 거리 행렬을 지원하나요?

네. 비대칭 행렬을 지원하며 Held-Karp와 2-opt 모두 비대칭 비용을 정확하게 계산합니다. 이는 일방통행로나 기류의 영향을 받는 항공편 등 실무적인 경로 문제에 유용합니다.

더 읽어보기

이 콘텐츠, 페이지 또는 도구를 다음과 같이 인용하세요:

"외판원 문제 솔버 (TSP)" - https://MiniWebtool.com/ko/외판원-문제-솔버-tsp/에서 MiniWebtool 인용, https://MiniWebtool.com/

miniwebtool 팀 제작. 업데이트: 2026년 4월 21일

또한 저희의 AI 수학 해결사 GPT를 사용하여 자연어 질문과 답변으로 수학 문제를 해결할 수 있습니다.

고급 수학 연산 도구:

주요 도구:

인스타그램 사용자 ID 조회분수 계산기애너그램 생성기방어율 계산기내 행운의 숫자는?랜덤 이름 생성기상대 표준 편차 계산기평균 계산기주사위 굴리기파운드→킬로그램 변환기🎮 게임 감도 변환기러닝 페이스 계산기시험관 출산 예정일 계산기공백 제거👙 브라 사이즈 계산기16진수에서 10진수로 변환기16진수 변환기kg에서 파운드로 변환기OPS 계산기무작위 토너먼트 대진표 생성기WAR 계산기10진수를 16진수로 변환무작위 초능력 생성기사랑 궁합 계산기피트 인치 센티미터 변환기소인수분해 계산기cm에서 피트와 인치로 변환기토크 변환기 (Nm, ft-lb, kgf-cm)이닝당 적중률(WHIP) 계산기로마 숫자 변환기요일 계산기긴 나눗셈 계산기벤치 프레스 계산기이미지 분할기랜덤 영어 단어 생성기💧 이슬점 계산기CAGR 계산기기대 수명 계산기수면 계산기랜덤 생일 생성기FIP 계산기랜덤 동물 생성기무작위 문자열 생성기YouTube 채널 통계줄 바꿈 제거명언 검색기 (영어)근무 시간 계산기무작위 날짜 생성기랜덤 그룹 생성기원형 면적 계산기FPS 변환기야구 배팅 계산기월경주기 계산기Watts to Amps Calculator분수 백분율 변환기분수에서 소수로 계산기소수 검사기ppm에서 퍼센트 변환기기울기 및 경사 계산기암호화폐 레버리지 계산기최대 공약수 계산기암페어에서 와트 계산기자전거 사이즈 계산기랜덤 토론 주제 생성기야구 장타율 계산기연비 계산기바코드 생성기연중 일수 계산기 - 오늘은 올해의 몇 번째 날인가요속도 변환기📅 날짜 계산기주차 계산기무작위 플레이 카드 생성기어린이 BMI 백분위수 계산기연봉 인상 계산기면적 계산기비례식 계산기잘고 텍스트 생성기mAh to Wh 변환기영업 마진 계산기센티미터에서 인치로 변환기비디오 이미지 추출기변화율 계산기혈당 변환기퍼센트에서 PPM으로 변환기작은 텍스트 생성기 ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾키 백분위수 계산기타이어 크기 계산기HEX 계산기랜덤 식사 생성기형량 감경 계산기복리 계산기인치에서 센티미터으로 변환기금리 계산기출루율 계산기중앙값 계산기두 날짜 사이 일수 계산기PSI에서 bar로 변환기출산 예정일 계산기⏱️ 시간 계산기태양, 달 & 상승궁 계산기 🌞🌙✨kVA 계산기시저 암호 도구임대 수익률 계산기확률 계산기자동차 대출 계산기모스 부호 생성기간헐적 단식 계산기임신 날짜 계산기출생 요일 계산기최대 심박수 계산기🎰 가챠 천장 계산기임신 체중 증가 계산기몫과 나머지 계산기랜덤 국가 생성기홈런 타율 계산기십자수 실 계산기kPa에서 psi로 변환기MAC 주소 조회반지 사이즈 변환기시간 지연 계산기태양 위치 계산기백분율 증가 계산기번호 정렬단어 찾기 퍼즐 생성기예쁜 글씨 생성기초과 근무 수당 계산기즉시 연금 계산기ANC 계산기mcg에서 mg로 변환기일할 계산 월세 계산기거꾸로 텍스트 생성기타원 둘레 계산기오디오 추출기십진수에서 이진수로 변환기피타고라스 정리 계산기16진수에서 이진법 변환기영업일 계산기마틴게일 전략 계산기페이스북 사용자 ID 조회YouTube 쇼츠 수익화 계산기콜라츠 추측 계산기TDEE 계산기스도쿠 생성기 및 풀이기이진수를 십진수로 변환최소공배수 계산기소수 분수 변환기속도 계산기🌬️ 체감 온도 계산기칵테일 ABV 계산기반전 텍스트역함수 계산기출석률 계산기반올림 계산기배당 수익률 계산기암산 트레이너영업 이익률 계산기정기 예금 계산기헌혈 시간 계산기동영상 병합⬛ 화면 비율 계산기백분율 성장 계산기이진 계산기자전거 기어비 계산기직각삼각형 계산기mg에서 mL 변환기공학용 계산기무작위 포커 핸드 생성기볼링 점수 계산기자녀 키 예측기음력 양력 변환기퍼센트 감소 계산기임대료 인상 계산기지붕 경사 계산기세제 사용량 계산기손절 및 익절 계산기빈 줄 제거자동차 감가상각 계산기빗변 계산기시간 지속 계산기HTML에서 텍스트 변환기가위바위보 생성기비율 및 백분율 계산기중복 줄 제거백분율 할인 계산기이름 번호 계산기호 길이 계산기1RM (1회 최대 반복) 계산기n항 계산기목표 심박수 계산기다중 분수 계산기3상 전력 계산기변동 계수 계산기취소선 텍스트 생성기문자열 길이 얻기GFR 계산기SAT 점수 계산기랜덤 물품 생성기이사 박스 수량 계산기백분위수 계산기스노보드 사이즈 계산기트위터(X) 동영상 변환기게이머태그 생성기팀 이름 생성기닉네임 생성기랩 이름 생성기밴드 이름 생성기판타지 이름 생성기포춘 쿠키 생성기그림 아이디어 생성기저널 프롬프트 생성기데일리 확언 생성기칭찬 생성기작업 멘트 생성기아재 개그 생성기랜덤 농담 생성기랜덤 사실 생성기트리비아 문제 생성기행맨 단어 생성기픽셔너리 단어 생성기제스처 게임 생성기아이스브레이커 질문 생성기네버 해브 아이 에버 생성기밸런스 게임 생성기랜덤 질문 생성기AI 꿈 해몽AI 감사 편지 생성기AI 결혼식 축사 생성기AI 보도자료 생성기AI 제품 설명 생성기AI 영상 스크립트 생성기AI 유튜브 제목 및 설명 생성기AI 인스타그램 캡션 생성기AI LinkedIn 헤드라인 및 소개 생성기AI 이력서 불릿 생성기AI 커버레터 생성기AI 랩 가사 생성기PDF 평면화 도구PDF 잠금 해제 (소유자 암호 제거)PDF 텍스트 추출기PDF 페이지 추출기PDF 단어 세기PDF 보호PDF에 페이지 번호 추가PDF 페이지 순서 변경PDF 페이지 삭제PDF 회전JPG를 PDF로 변환PDF를 JPG로 변환PDF 압축PDF 분할PDF 병합PT에서 PX로 변환기PX에서 REM 변환기톨라에서 그램 변환기인도 토지 단위 변환기AI 노래 가사 생성기AI 시 생성기AI 스토리 생성기AI 번역기AI 텍스트 요약기MPH에서 KMH 변환기노트-마일 변환기세제곱미터에서 세제곱피트세제곱피트에서 세제곱야드 변환기제곱피트에서 제곱미터 변환기제곱미터에서 제곱피트 변환기온스를 mL로 변환기mL를 온스로 변환기갤런에서 리터 변환기리터에서 갤런 변환기킬로그램 스톤 변환기스톤 킬로그램 변환기인치에서 밀리미터로 변환기밀리미터에서 인치로 변환기마일 킬로미터 변환기킬로미터-마일 변환기화씨-섭씨 변환기섭씨 화씨 변환기배낭 크기 계산기서핑보드 부피 계산기테니스 그립 사이즈 계산기헬멧 사이즈 계산기장갑 사이즈 계산기모자 사이즈 변환기스키 사이즈 계산기스피드런 스플릿 타이머스테이블포드 계산기다트 체크아웃 계산기볼링 이코노미 계산기타격 스트라이크 레이트 계산기네트 런 레이트 계산기K/D 비율 계산기Elo 레이팅 계산기심박수 회복 계산기하이킹 시간 계산기로잉 페이스 계산기달리기 연령 등급 계산기FTP 및 파워 존 계산기Beep 테스트 계산기ACFT 점수 계산기Wilks & DOTS 계산기휠 오프셋 계산기타이어 하중 지수 및 속도 등급 조회마일당 비용 계산기리스 바이아웃 계산기옥탄가 혼합 계산기2행정 오일 혼합 계산기엔진 배기량 계산기소파 문 통과 계산기장작 코드 계산기공기청정기 CADR 계산기제습기 크기 계산기천장 선풍기 크기 계산기커튼 크기 계산기러그 크기 계산기그림 거는 높이 계산기TV 설치 높이 계산기TV 크기 계산기연못 용적 및 라이너 계산기수영장 소금 계산기수영장 부피 계산기온수기 크기 계산기에폭시 레진 계산기난간동자 간격 계산기걸레받이 및 트림 계산기사이딩 계산기데크 스테인 계산기잔디 씨앗 계산기잔디 계산기아스팔트 계산기세제곱야드 계산기안테나 길이 계산기전선관 충전율 계산기직렬/병렬 커패시터 계산기유도 리액턴스 계산기방 조명 계산기럭스 루멘 계산기루멘 와트 변환기발전기 크기 계산기직렬 저항 계산기마찰 계산기경사면 계산기기계적 이득 계산기음속 계산기파동 속도 계산기부력 계산기종단 속도 계산기드브로이 파장 계산기광자 에너지 계산기E=mc² 계산기케플러 제3법칙 계산기탈출 속도 계산기만유인력 계산기비어 람베르트 법칙 계산기네른스트 방정식 계산기삼투압 계산기끓는점 오름 계산기어는점 내림 계산기백분율 조성 계산기노르말 농도 계산기몰랄농도 계산기pKa Ka 변환기헨더슨 하셀바흐 계산기이론 수율 계산기한계 반응물 계산기전자 배치 계산기인터랙티브 주기율표AI 수업 지도안 생성기AI 퀴즈 생성기인용 생성기 (APA/MLA/Chicago)AP 점수 계산기ACT 점수 계산기유튜브 수익 추정기무작위 RPG 캐릭터 생성기