작업 흐름 간소화: miniwebtool 검색.
추가
관련 도구
해밀턴 경로 검사기 (Hamiltonian Path Checker)카르노 맵 (K-Map) 솔버선형 계획법 솔버네트워크 플로우 계산기 (최대 유량)안정된 결혼 문제 해결기
홈페이지 > 수학 관련 도구 > 고급 수학 연산 도구 > 외판원 문제 솔버 (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 조회평균 계산기분수 계산기내 행운의 숫자는?애너그램 생성기근무 시간 계산기복리 계산기상대 표준 편차 계산기10진수를 16진수로 변환16진수에서 10진수로 변환기중복 줄 제거랜덤 이름 생성기👙 브라 사이즈 계산기무작위 토너먼트 대진표 생성기소인수분해 계산기🎮 게임 감도 변환기피트 인치 센티미터 변환기방어율 계산기토크 변환기 (Nm, ft-lb, kgf-cm)월경주기 계산기분수 백분율 변환기16진수 변환기OPS 계산기공백 제거이미지 분할기테셀레이션 생성기kg에서 파운드로 변환기파운드→킬로그램 변환기수면 계산기음력 양력 변환기CAGR 계산기연봉 인상 계산기랜덤 생일 생성기💧 이슬점 계산기콜라츠 추측 계산기몫과 나머지 계산기사랑 궁합 계산기줄 바꿈 제거무작위 초능력 생성기랜덤 토론 주제 생성기cm에서 피트와 인치로 변환기야구 장타율 계산기로마-숫자-변환기주사위 굴리기벤치 프레스 계산기러닝 페이스 계산기무작위 문자열 생성기혈당 변환기기울기 및 경사 계산기속도 계산기즉시 연금 계산기난수 선택기비디오 이미지 추출기최대 공약수 계산기분수에서 소수로 계산기비율 및 백분율 계산기키 백분위수 계산기WAR 계산기잘고 텍스트 생성기변화율 계산기주식 평균 계산기랜덤 영어 단어 생성기볼링 점수 계산기자동차 대출 계산기📅 날짜 계산기임신 날짜 계산기랜덤 그룹 생성기연비 계산기형량 감경 계산기요일 계산기소수 검사기태양, 달 & 상승궁 계산기 🌞🌙✨퍼센트 감소 계산기⏱️ 시간 계산기랜덤 식사 생성기백분율 증가 계산기모스 부호 생성기MAC-주소-조회FPS 변환기랜덤 동물 생성기시저 암호 도구🌬️ 체감 온도 계산기출산 예정일 계산기최소공배수 계산기ANC-계산기원형 면적 계산기속도 변환기암호화폐 레버리지 계산기MAC 주소 생성기두 날짜 사이 일수 계산기스도쿠 생성기 및 풀이기단어 찾기 퍼즐 생성기산점도 작성기피타고라스 정리 계산기금리 계산기퇴직금 계산기호 길이 계산기기대 수명 계산기연중 일수 계산기 - 오늘은 올해의 몇 번째 날인가요적분 계산기피보나치 되돌림 계산기YouTube 채널 통계확률 계산기시험 점수 계산기작은 텍스트 생성기 ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾초과 근무 수당 계산기바코드 생성기Hex-계산기배당 수익률 계산기순이익 계산기퍼센트에서 PPM으로 변환기야구 배팅 계산기중앙값 절대 편차 계산기자동차 감가상각 계산기자전거 기어비 계산기일할 계산 월세 계산기계단 계산기📈 꺾은선 그래프 만들기슬리더링크 퍼즐 생성기주식 손익 계산기중앙값 계산기백분율 할인 계산기이름 번호 계산기TDEE 계산기급여 변환 계산기반지 사이즈 변환기번호 정렬십진수에서 이진수로 변환기타원 둘레 계산기배당금 재투자 계산기이진수를 십진수로 변환인치에서 센티미터으로 변환기임대 수익률 계산기임신 체중 증가 계산기길이 변환기이닝당 적중률(WHIP) 계산기빗변 계산기세제 사용량 계산기자동차 리스 계산기센티미터에서 인치로 변환기문화별 나이 계산기빈 줄 제거시간 지속 계산기카페인 반감기 트래커크레아티닌 청소율 계산기1RM (1회 최대 반복) 계산기원형 계산기ppm에서 퍼센트 변환기한 달에 일점 기울기 형태 계산기백분율 성장 계산기반올림 계산기병렬 저항 계산기곡률 계산기거꾸로-텍스트-생성기비트-계산기오디오 추출기켈리 기준 계산기이진 계산기나의 띠는 무엇인가요?볼트 토크 계산기예쁜 글씨 생성기공학용 계산기🖱️ 클릭 카운터랜덤 국가 생성기시그마 표기법 계산기 (합산)카페인 과다복용 계산기동영상 병합목표 심박수 계산기윤년은 언제입니까16진수에서 이진법 변환기GFR 계산기Z 점수 계산기성적 계산기최종 성적 계산기HEX에서 CMYK로 변환기나이 계산기랜덤 고양이 강아지 이름 생성기HTML에서 텍스트 변환기YouTube 댓글 추첨기타일 계산기⬛ 화면 비율 계산기🎰 가챠 천장 계산기산술 평균 계산기체지방률 계산기IP 서브넷 계산기아기 성장 백분위수 계산기염색약 혼합 계산기칵테일 ABV 계산기화성 별자리 계산기페이스북 사용자 ID 조회FIP 계산기걸음 수 거리 계산기리만 합 계산기진법 변환기타이어 크기 계산기임신 주수 계산기정기 예금 계산기태양 위치 계산기반전 텍스트출석률 계산기AP 점수 계산기ACT 점수 계산기SAT 점수 계산기백분율 CGPA 변환기CGPA 백분율 변환기쉬운 채점기 (EZ Grader)자녀 양육비 계산기아기 우유 섭취량 계산기기저귀 사이즈 계산기아기 이름 생성기아기 눈 색깔 예측기어린이 BMI 백분위수 계산기자녀 키 예측기hCG 배가 시간 계산기시험관 출산 예정일 계산기착상 계산기중국식 성별 예측기ISO 8601 날짜 포맷터율리우스일 변환기낮잠 계산기Moon Phase CalculatorSunrise & Sunset Calculator세계 시계날짜 로마 숫자 변환기은퇴 카운트다운금주 계산기반 생일 계산기기념일 계산기주차 계산기팁 분배 계산기이메일 마케팅 ROI 계산기리드당 비용 계산기운전자본 계산기공헌이익 계산기FIFO / LIFO 계산기안전 재고 계산기재주문점 계산기경제적 주문량(EOQ) 계산기감가상각 계산기수공예 가격 계산기도매가격 계산기Shopify 수익 계산기Amazon FBA 계산기eBay 수수료 계산기Etsy 수수료 계산기Stripe 수수료 계산기PayPal 수수료 계산기베팅 배당률 변환기십일조 계산기자카트 계산기UK 인지세 계산기HRA 공제 계산기그래튜이티 계산기NPS 계산기EPF 계산기PPF 계산기RD 계산기SWP 계산기그로스업 계산기대출 비교 계산기신용 사용률 계산기CD 사다리 계산기T-Bill 미국 단기 국채 계산기I Bond 계산기529 대학 저축 계산기HSA 계산기인보이스 생성기출장 일비 계산기주행거리 환급 계산기임대료 인상 계산기임대료 부담 계산기차량 실구매가 계산기자동차 구매 가능 금액 계산기오토바이 대출 계산기캠핑카 대출 계산기보트 대출 계산기토지 대출 계산기건설 대출 계산기이자 전용 모기지 계산기벌룬 대출 계산기모기지 포인트 계산기PMI 계산기격주 모기지 상환금 계산기ARM 모기지 계산기VA 대출 계산기실수령액 급여 계산기AI SQL 쿼리 생성기AI 정규식 생성기AI 데이터 시각화 도구 (CSV 붙여넣기)AI 텍스트 톤 분석기AI 이력서 분석기AI 단위 변환기 (자연어)AI 사과 편지 작성기AI 정중한 핑계 생성기AI 여행 일정 생성기AI 독서 목록 생성기AI 운동 계획 생성기AI 식단 생성기AI 선물 아이디어 생성기AI 레시피 생성기 (재료로 만들기)장학금 ROI 계산기대학 비용 계산기언어 유창성까지 학습 시간 계산기어휘 퀴즈 생성기코넬 노트 생성기학습 곡선 계산기플래시카드 간격 반복 스케줄러페인트 색상 혼합 계산기타일 줄눈 계산기식기세척기 적재 최적화 도구인쇄 비용 계산기가스 대 전기 비용 비교기프트 카드 팁 계산기이사 박스 수량 계산기스토리지 유닛 크기 계산기캡슐 옷장 계산기벨트 길이 계산기유압 실린더 힘 계산기도르래 시스템 계산기기어비 계산기 (기계)비열 계산기열팽창 계산기열전달 계산기베르누이 방정식 계산기레이놀즈 수 계산기조석 시간 계산기별 가시성 계산기매듭 묶기 참고 도구침낭 온도 등급 가이드텐트 풋프린트 크기 계산기백패킹 식량 무게 계산기네이스미스 하이킹 페이스 계산기자수 실 길이 계산기레진 캐스팅 부피 계산기비즈 패턴 계산기도자기 점토 수축률 계산기오리가미 종이 크기 계산기퀼트 바인딩 계산기십자수 실 계산기뜨개질 패턴 계산기뜨개질 바늘 크기 변환기코바늘 사이즈 변환기말 건초 계산기반려동물 항공 운송 케이지 크기 찾기파충류 사육장 UVB 계산기새장 크기 계산기수족관 히터 와트 계산기고양이 화장실 개수 계산기헤드라이트 조사 거리 계산기엔진 압축비 계산기타이어 트레드 마모 계산기트레일러 텅 웨이트 계산기차량 무게 배분 계산기여행 경비 분담 계산기정지 거리 계산기산재 보상 계산기유산 자산 분배 계산기상표 분류 찾기특허 출원 비용 계산기판매세 넥서스 체커소멸시효 계산기Airbnb 가격 최적화 도구룸메이트 월세 분배 계산기Section 8 임대료 계산기BRRRR 방법 계산기현금 대비 현금 수익률 계산기1031 교환 계산기자산 성장 시각화 도구점심 비용 계산기헬스장 vs 홈트레이닝 비용 계산기커피 비용 계산기재택근무 절약 계산기부업 ROI 계산기구독 비용 추적기SaaS 가격 계산기프리랜서 프로젝트 가격 계산기훈제 우드 페어링 가이드발효 시간 계산기마리네이드 시간 계산기식이 제한 레시피 필터향신료 대체재 찾기표준 잔 계산기와인 페어링 추천기클라이밍 등급 변환기낚시 매듭 강도 계산기요가 포즈 홀드 타이머수영 SWOLF 계산기레이스 기록 예측 계산기복싱 펀치 파워 계산기럭비 점수 계산기크리켓 런레이트 계산기Soccer xG 기대 득점 계산기테니스 점수 기록기Wells 점수 계산기 (DVT/PE)글래스고 혼수 척도 계산기아프가 점수 계산기FFMI 계산기쿠퍼 12분 달리기 계산기1마일 걷기 테스트 (록포트) 계산기제지방량 근력 계산기탄수화물 인슐린 비율 계산기인슐린 감수성 계수 계산기히브리력 변환기히즈리력 변환기얼마나 전 계산기얼마나 남았나요 계산기날짜 패턴 생성기중간 날짜 계산기날짜에 영업일 추가영업일 계산기단어 빈도 분석기문장 길이 분산 분석기헤밍웨이 스타일 가독성 편집기발음 IPA 변환기비즈네르 암호 도구아트바시 암호 도구ROT13 인코더 디코더EXIF 데이터 뷰어 및 제거 도구피그 라틴 번역기백크로님 생성기두문자어 생성기팬그램 검사기리포그램 체커이미지 SVG 트레이서이미지 ASCII 아트 변환기JSON 스키마 생성기TypeScript 플레이그라운드Less to CSS 컴파일러SCSS CSS 컴파일러SVG React JSX 변환기쿼리 문자열 빌더URL 파서UUID 검증기 및 디코더HTTP 상태 코드 참조cURL 명령어 빌더시에르핀스키 삼각형 생성기3D 곡면 플로터극방정식 플로터줄리아 집합 생성기만델브로 집합 탐색기L-System 프랙탈 생성기들로네 삼각분할 생성기보로노이 다이어그램 생성기스피로그래프 생성기식스 시그마 공정 능력 계산기YouTube 썸네일 다운로더유튜브 수익 추정기무작위 RPG 캐릭터 생성기