Đơn giản hóa quy trình làm việc của bạn: Tìm kiếm miniwebtool.
Thêm
Công cụ liên quan
Máy Tính Khoảng Cách Đường Tròn LớnCông cụ Giải Bản đồ Karnaugh (K-Map)Trình tạo Fractal L-SystemCông cụ Giải Quy hoạch Tuyến tínhMáy Tính Luồng Mạng (Luồng Cực Đại)Trình tạo SpirographTrình giải Bài toán Hôn nhân Ổn định
Trang chủ > Toán học > Phép toán toán học nâng cao > Trình Giải Bài Toán Người Du Hành (TSP)
 

Trình Giải Bài Toán Người Du Hành (TSP)

Tìm lộ trình ngắn nhất đi qua mọi thành phố đúng một lần và quay trở lại điểm xuất phát. Sử dụng quy hoạch động chính xác (Held-Karp) cho các trường hợp nhỏ và thuật toán tìm láng giềng gần nhất + heuristics 2-opt cho các trường hợp lớn hơn. Chấp nhận tọa độ hoặc ma trận khoảng cách và hiển thị lộ trình SVG hoạt họa.

Trình Giải Bài Toán Người Du Hành (TSP)
Dòng tọa độ: A, 10, 20 hoặc 10 20. Hàng ma trận: 0 10 15 20 — mỗi hàng một dòng, hình vuông, không âm. Tối đa 40 thành phố.
Nhãn cách nhau bằng dấu phẩy hoặc khoảng trắng, mỗi nhãn cho một hàng ma trận. Mặc định là A, B, C… nếu bỏ trống.

Embed Trình Giải Bài Toán Người Du Hành (TSP) Widget

Giới thiệu về Trình Giải Bài Toán Người Du Hành (TSP)

Trình Giải Bài Toán Người Du Hành (TSP) là một công cụ tính toán thực tế và mang tính giáo dục cho bài toán kinh điển Traveling Salesman Problem (TSP): cho một tập hợp các thành phố và khoảng cách giữa từng cặp, tìm lộ trình ngắn nhất có thể đi qua mọi thành phố đúng một lần và quay trở lại điểm bắt đầu. Trình giải này chấp nhận cả tọa độ mặt phẳng hoặc ma trận khoảng cách tùy chỉnh, tự động chọn thuật toán tốt nhất dựa trên quy mô bài toán và hiển thị lộ trình kết quả dưới dạng bản đồ SVG động.

Bài toán người du hành là gì?

Về mặt hình thức, cho một đồ thị đầy đủ có trọng số G = (V, E) với tập đỉnh V = {1, 2, ..., n} và trọng số cạnh d(i, j), TSP tìm kiếm một hoán vị π của các đỉnh sao cho tối thiểu hóa:

minimize Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

Số hạng cuối cùng khép kín vòng lặp. TSP là một trong những bài toán lâu đời nhất và được nghiên cứu nhiều nhất trong tối ưu hóa tổ hợp — nó là bài toán NP-khó trong trường hợp tổng quát, nghĩa là không có thuật toán nào đã biết có thể giải mọi trường hợp trong thời gian đa thức. Mặc dù vậy, nó xuất hiện trong vô số ứng dụng thực tế: định tuyến phương tiện, khoan bảng mạch PCB, giải trình tự DNA, lộ trình lấy hàng trong kho, lịch quan sát thiên văn và thậm chí là giao thư ở nông thôn.

Trình giải này hoạt động như thế nào

Quy hoạch động Held–Karp (Chính xác)

Đối với các trường hợp nhỏ (tối đa 12 thành phố), trình giải sẽ tính toán lộ trình tối ưu có thể chứng minh được bằng thuật toán Held–Karp, được công bố độc lập bởi Richard Bellman và Michael Held & Richard Karp vào năm 1962. Công thức truy hồi chính, trong đó C(S, j) là đường đi ngắn nhất từ đỉnh 1 đến đỉnh j đi qua đúng tập con S:

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

Chi phí lộ trình tối ưu sau đó là minj [C({1,...,n}, j) + d(j, 1)]. Held–Karp chạy trong thời gian O(2n · n²) và bộ nhớ O(2n · n) — một sự cải thiện khổng lồ so với vét cạn n!, nhưng vẫn mang tính chất mũ. Khi vượt quá khoảng 20 thành phố, dung lượng bộ nhớ trở nên không khả thi.

Nearest-Neighbor + 2-opt (Heuristic)

Đối với các trường hợp lớn hơn, trình giải sử dụng một heuristic hai giai đoạn. Đầu tiên, Nearest-Neighbor xây dựng một lộ trình nhanh chóng bằng cách đi tham lam đến thành phố chưa ghé thăm gần nhất từ mỗi đỉnh xuất phát. Trình giải thử nhiều đỉnh xuất phát và giữ lại lộ trình tốt nhất. Sau đó, tìm kiếm cục bộ 2-opt cải thiện lộ trình bằng cách lặp lại việc loại bỏ hai cạnh và kết nối lại hai đường đi kết quả theo cách khả thi duy nhất còn lại:

Trước: ... a — b ... c — d ... Sau khi hoán đổi 2-opt: ... a — c ... b — d ... Nếu d(a,c) + d(b,d) < d(a,b) + d(c,d) → chấp nhận hoán đổi, đảo ngược lộ trình con b..c

Về mặt hình học, 2-opt loại bỏ mọi điểm "giao nhau" trong lộ trình: bất kỳ hai đoạn thẳng cắt nhau nào cũng luôn có thể được gỡ bỏ để có tổng chiều dài ngắn hơn. Thuật toán dừng lại ở tối ưu cục bộ nơi không có hoán đổi đơn lẻ nào giúp ích được, gọi là lộ trình 2-optimal. Trên các trường hợp Euclid thực tế, 2-opt thường tìm thấy các lộ trình trong phạm vi 2–5% so với tối ưu thực sự chỉ trong vài mili giây.

Định dạng nhập liệu

Chế độ tọa độ (x, y)

Mỗi thành phố một dòng. Mỗi dòng là nhãn, x, y — nhãn là tùy chọn. Trình giải tự động tính toán khoảng cách Euclid và trực quan hóa các thành phố tại vị trí thực của chúng.

A, 10, 20 B, 40, 70 C, 75, 30 Hà Nội: 105.83, 21.02 10 20 ← tự động dán nhãn C1

Chế độ ma trận khoảng cách

Một ma trận vuông n × n gồm các khoảng cách không âm, mỗi hàng một dòng, các giá trị cách nhau bằng khoảng trắng hoặc dấu phẩy. Ma trận có thể đối xứng hoặc không đối xứng — ma trận không đối xứng mô phỏng đường một chiều, giá vé máy bay với tính khả dụng thay đổi và hành trình phụ thuộc vào gió. Tùy chọn cung cấp nhãn trong trường Nhãn ma trận.

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

So sánh thuật toán

Thuật toán Độ phức tạp thời gian Bộ nhớ Chất lượng kết quả Quy mô thực tế
Vét cạn (Brute force) O(n!) O(n) Tối ưu n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) Tối ưu n ≤ 20
Nearest-Neighbor O(n²) O(n) Tệ hơn tối ưu ~25% n ≤ hàng nghìn
NN + 2-opt O(n² · số lần lặp) O(n) Tệ hơn tối ưu ~2–5% n ≤ hàng trăm

Cách sử dụng trình giải này

  1. Chọn chế độ nhập liệu. Tọa độ nếu thành phố của bạn có vị trí (x, y) ý nghĩa; Ma trận khoảng cách nếu chi phí của bạn không phải Euclid hoặc không đối xứng.
  2. Dán hoặc nhập dữ liệu của bạn. Mỗi thành phố hoặc hàng một dòng. Nhấp vào nút ví dụ nhanh phía trên biểu mẫu để điền sẵn một ví dụ hợp lệ.
  3. Chọn thuật toán. Để ở chế độ Tự động cho các mặc định phù hợp: Held–Karp khi quy mô đủ nhỏ để tối ưu có thể chứng minh, nếu không thì dùng NN + 2-opt. Buộc chọn một thuật toán cụ thể nếu bạn muốn so sánh.
  4. Chọn khép kín hoặc mở. Một lộ trình khép kín sẽ quay lại điểm bắt đầu — TSP truyền thống. Chế độ đường đi mở giải quyết bài toán Đường đi Hamiltonian liên quan nơi người bán hàng kết thúc tại một thành phố khác.
  5. Nhấp Giải quyết. Trang kết quả hiển thị tổng chiều dài lộ trình, hoạt ảnh SVG của tuyến đường (nhấp "Phát lại hoạt ảnh" để xem lại), trình tự thành phố đầy đủ, phân tích từng cạnh và ma trận khoảng cách với các cạnh lộ trình được đánh dấu.

Ví dụ minh họa

Xét năm thành phố — một hình chữ nhật cộng với một đỉnh: A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). Trình giải trả về:

Ứng dụng trong thế giới thực

Câu hỏi thường gặp

Bài toán người du hành là gì?

Bài toán người du hành (Traveling Salesman Problem - TSP) yêu cầu tìm lộ trình ngắn nhất có thể đi qua mọi thành phố đúng một lần và quay trở lại thành phố ban đầu. Đây là một trong những bài toán nổi tiếng nhất trong tối ưu hóa tổ hợp và là bài toán NP-khó trong trường hợp tổng quát, nghĩa là không có thuật toán nào đã biết có thể giải mọi trường hợp trong thời gian đa thức.

Thuật toán Held–Karp là gì?

Held–Karp là một thuật toán quy hoạch động giải TSP một cách chính xác trong thời gian O(2n · n²) và bộ nhớ O(2n · n). Nó nhanh hơn đáng kể so với vét cạn (n giai thừa) nhưng vẫn có tính chất mũ, vì vậy trên thực tế nó chỉ được sử dụng cho các trường hợp tối đa khoảng 20 thành phố. Trình giải này sử dụng Held–Karp khi có từ 12 thành phố trở xuống.

2-opt là gì và tại sao nó được sử dụng?

2-opt là một heuristic tìm kiếm cục bộ liên tục loại bỏ hai cạnh khỏi lộ trình hiện tại và kết nối lại hai đường đi kết quả theo cách khả thi khác. Khi lộ trình mới ngắn hơn, việc hoán đổi sẽ được giữ lại. 2-opt chạy trong thời gian đa thức trên mỗi lần lặp và liên tục tìm thấy các lộ trình trong phạm vi vài phần trăm so với mức tối ưu, đó là lý do tại sao nó là heuristic kinh điển cho các trường hợp TSP lớn hơn.

Khi nào tôi nên sử dụng tọa độ so với ma trận khoảng cách?

Sử dụng tọa độ khi các thành phố của bạn nằm trên một mặt phẳng với khoảng cách đường thẳng — ví dụ các điểm trên bản đồ, vị trí kho hàng hoặc các lỗ khoan trên bảng mạch. Sử dụng ma trận khoảng cách khi chi phí từng cặp không phải là Euclid — ví dụ giá vé máy bay, thời gian di chuyển khi có giao thông, khoảng cách đường bộ một chiều hoặc chi phí không đối xứng. Chế độ ma trận chấp nhận bất kỳ khoảng cách không âm nào, ngay cả những khoảng cách không đối xứng.

Giải pháp 2-opt có phải là tối ưu không?

Không, 2-opt trả về một lộ trình tối ưu bậc 2, nghĩa là không có cặp cạnh đơn lẻ nào có thể được hoán đổi để tạo ra một tuyến đường ngắn hơn. Đây là một tối ưu cục bộ và thường nằm trong phạm vi vài phần trăm so với tối ưu toàn cục trên các trường hợp thông thường, nhưng nó không được đảm bảo là tốt nhất toàn cầu. Để có một lộ trình tối ưu có thể chứng minh được trên các trường hợp nhỏ, hãy chọn Held–Karp.

Công cụ này có hỗ trợ ma trận khoảng cách không đối xứng không?

Có. Trong chế độ Ma trận khoảng cách, bạn có thể nhập bất kỳ ma trận vuông không âm nào, bao gồm cả các ma trận không đối xứng trong đó D[i][j] khác với D[j][i]. Held–Karp và 2-opt đều xử lý chính xác các ma trận không đối xứng. Điều này hữu ích cho các bài toán định tuyến trong thế giới thực với đường một chiều, giao thông hoặc chi phí chuyến bay phụ thuộc vào gió.

Đọc thêm

Tham khảo nội dung, trang hoặc công cụ này như sau:

"Trình Giải Bài Toán Người Du Hành (TSP)" tại https://MiniWebtool.com/vi/trinh-giai-bai-toan-nguoi-du-hanh-tsp/ từ MiniWebtool, https://MiniWebtool.com/

bởi đội ngũ miniwebtool. Cập nhật: 21 tháng 4, 2026

Bạn cũng có thể thử AI Giải Toán GPT của chúng tôi để giải quyết các vấn đề toán học của bạn thông qua câu hỏi và trả lời bằng ngôn ngữ tự nhiên.

Phép toán toán học nâng cao:

Công cụ nổi bật:

Máy tính tuổiTrình Trích Xuất Ảnh từ Videomáy-tính-số-mũ-độ-chính-xác-caoTrình tạo bài tây ngẫu nhiên⏱️ Máy Tính GiờCông cụ Mã hóa CaesarTra cứu ID người dùng FacebookCông cụ đếm hàngCông cụ đổi Pound sang KilogramTra cứu ID người dùng InstagramCông cụ chuyển đổi kg sang lbsMáy tính thương và số dưTrình tạo chuỗi ngẫu nhiênMáy tính Phân tích Thừa số Nguyên tố🖱️ Bộ Đếm ClickMáy tính phân số tối giảnBộ Chuyển Đổi Số Sang ChữTrình nhân hóa văn bản AICông cụ chuyển đổi chữ số La MãTrình Tạo Mã MorseBộ chuyển đổi thập phân sang nhị phânMáy tính thời gianĐảo ngược văn bảnMáy tính Kiểm tra Chia hếtCông cụ chuyển đổi nhị phân sang thập phânBộ chuyển đổi hệ cơ sốMáy tính giảm giá phần trăm📅 Máy tính ngàyTrình Luyện Toán NhẩmTrình tạo nhánh giải đấu ngẫu nhiênMáy tính ngày trong năm - Hôm nay là ngày thứ mấy trong nămMáy tính Cạnh huyềnĐổ xúc xắcMáy tính chuyển đổi phân số sang số thập phânCông Cụ Vẽ Đồ Thị Hệ Bất Phương TrìnhThống kê Kênh YouTubeSắp xếp sốĐây có phải là Số Nguyên Tố?Máy tính thập phân sang phân sốMáy tính căn bậc haiBộ chuyển đổi Thập phân sang Thập lục phân🔍 Kiểm tra Đạo vănGhép VideoBộ lặp MP3Bộ chuyển đổi Nhị phân sang HexTrình trích xuất âm thanhTrình tạo oẳn tù tìBộ chọn bình luận YouTubeSắp xếp theo thứ tự bảng chữ cáiTrình tạo tên ngẫu nhiênBộ chuyển đổi FPSLịch Sao Thủy Nghịch HànhMáy Giải Phương Trình Bậc BaMáy tính HEXTrình phát hiện nội dung AIMáy tính giai thừa📷 OCR Chuyển Ảnh Thành Văn BảnCông cụ xáo trộn chữ cáiTrình tạo số nguyên ngẫu nhiênBộ chuyển đổi Feet và Inch sang CmBộ chuyển đổi HEXCông cụ tạo nhóm ngẫu nhiênMáy tính nhị phânCông cụ chuyển đổi cm sang feet và inchCông cụ chuyển đổi kPa sang psiSo sánh hai chuỗiCông cụ chia ảnhtra-cứu-địa-chỉ-MACCông cụ loại bỏ dấu câu trực tuyếnMáy Tính Bộ Chia Điện ÁpMáy tính So sánh Phân sốTrình chuyển đổi SRT sang TXTTạo Trò Chơi Tìm TừTạo Ô ChữXóa dấu cáchTrình tạo ngày sinh ngẫu nhiênMáy tính trung bình mẫuCon số may mắn của tôi là gì?Máy Tính Chu Vi Hình ElipMáy tính thâm hụt caloMáy tính Độ dốc và CấpCông cụ Giải Quy hoạch Tuyến tínhMáy Tính Số TuầnMáy tính Tích phânMáy tính Cung Mặt trời, Mặt trăng & Cung mọc 🌞🌙✨Bộ Chia Âm ThanhCân Bằng Phương Trình Hóa HọcCông cụ chuyển đổi Phần trăm sang PPMTrình tạo mê cungTrình tạo địa chỉ giả ngẫu nhiênChuyển đổi Số thành Phân sốCông cụ chuyển đổi psi sang kPaTạo và giải Sudoku⏰ Đồng Hồ Báo Thức Trực TuyếnTung đồng xuCông cụ ước tính thu nhập YouTubeĐiều chỉnh tốc độ videoCông cụ chuyển đổi thời gian phân sốMáy tính GFRMáy tính Ước số chung lớn nhấtTrình tạo thẻ tín dụng ngẫu nhiênTrình tạo đồ vật ngẫu nhiênCông Cụ Rút Gọn Đại Số BooleanMáy tính TổngLịch trăng non và trăng trònMáy tính ModuloTrình nén VideoCông cụ vẽ đồ thị hàm sốDanh sách các số nguyên tốMáy Tính Điểm SốTrình tạo siêu năng lực ngẫu nhiênCông cụ chuyển đổi centimet sang inchDanh sách Dãy số FibonacciCông cụ chuyển đổi hỗn số thành phân sốMáy tính Tuổi thaiMáy tính arctanMáy tính BSAMáy tính định lý PythagoreBộ chuyển đổi hex sang thập phân💧 Máy Tính Điểm Sương⏱️ Bộ Đếm Ngược Thời GianChuyển Đổi Mã Màu Mọi Định DạngCông cụ chuyển đổi hệ thập lục phân sang nhị phânBảng mã ASCIIChuyển đổi CSV sang JSON📈 Công Cụ Tạo Biểu Đồ ĐườngTrình Mô Phỏng Cổng LogicTrình tạo thời gian ngẫu nhiênBộ Chuyển Đổi Nhị PhânBộ Giải Mã Mã MorseCông cụ Tìm Quy luật Dãy sốBộ chia videoMáy tính Giá trị Niên kim trong Tương laiMáy Tính Giờ Làm ViệcMáy tính One Rep Max (1RM)Bộ Chuyển Đổi Thời Gian Sang Thập PhânCông cụ tính điểm trung bình GPADanh sách năm nhuậnMáy tính Natri hiệu chuẩnĐố Vui Bảng Cửu ChươngTrình tải hình thu nhỏ YouTube🌐 Chuyển đổi Múi giờCông cụ Giải Bản đồ Karnaugh (K-Map)Công cụ chuyển đổi từ Feet sang MétCông cụ chuyển đổi Độ sang RadianMáy Tính HyperbolMáy tính tuổi sinh họcMáy tính tanMáy Tính Độ Lệch Chuẩn Tương ĐốiThêm văn bản vào hình ảnhTrình tạo ngày ngẫu nhiênTrình tạo số thập phân ngẫu nhiênBộ chuyển đổi RGB sang HexCông cụ Mã hóa AtbashCông cụ chuyển đổi Radian sang ĐộHẹn Giờ Học PomodoroMáy tính bước chân sang khoảng cáchMáy tính nhânChữ Thường - Chữ HoaCông cụ Xoay ẢnhMáy tính Tuổi thọ Trung bìnhMáy tính hoàng hôn và bình minhMáy tính ký hiệu khoa họcMáy tính LogaritMáy tính tỷ lệ BUN và CreatinineXoay VideoMáy tính Điểm ACFTMáy tính Wilks & DOTSMáy tính Offset Bánh xeTra cứu Chỉ số Tải trọng & Xếp hạng Tốc độ LốpMáy tính Chi phí Mỗi DặmMáy Tính Mua Lại Hợp Đồng ThuêMáy Tính Pha Trộn OctanMáy Tính Pha Nhớt Xăng 2 ThìMáy Tính Dung Tích Động CơMáy Tính Ghế Sofa Qua CửaMáy Tính Dây CủiMáy Tính CADR Máy Lọc Không KhíMáy Tính Kích Thước Máy Hút ẨmMáy Tính Kích Thước Quạt TrầnMáy Tính Kích Thước Rèm CửaMáy Tính Kích Thước ThảmMáy tính chiều cao treo tranhMáy Tính Chiều Cao Lắp Đặt TVMáy Tính Kích Thước TVMáy Tính Thể Tích và Bạt Lót HồMáy Tính Muối Hồ BộiMáy Tính Thể Tích Hồ BơiMáy Tính Kích Thước Máy Nước NóngMáy Tính Nhựa EpoxyMáy Tính Khoảng Cách Con Tiện Lan CanMáy Tính Len Chân Tường và Nẹp Trang TríMáy Tính Ốp TườngMáy Tính Sơn Phủ Sàn GỗMáy Tính Hạt Giống CỏMáy Tính Cỏ NềnMáy Tính Nhựa ĐườngMáy Tính Yard KhốiMáy Tính Chiều Dài AntenMáy Tính Độ Lấp Đầy Ống Lót DâyMáy Tính Tụ Điện Nối Tiếp và Song SongMáy Tính Cảm KhángMáy Tính Chiếu Sáng PhòngMáy Tính Lux Sang LumenMáy Chuyển Đổi Lumen Sang WattMáy Tính Công Suất Máy Phát ĐiệnCông Cụ Chuyển Đổi mAh Sang WhMáy Tính Công Suất 3 PhaMáy Tính kVAMáy Tính Ampe Sang WattMáy Tính Watt Sang AmpeMáy Tính Điện Trở Nối TiếpMáy Tính Lực Ma SátMáy Tính Mặt Phẳng NghiêngMáy tính Lợi thế Cơ họcMáy tính Tốc độ Âm thanhMáy Tính Tốc Độ SóngMáy tính Lực nổiMáy tính Vận tốc Tới hạnMáy tính Bước sóng de BroglieMáy tính năng lượng photonMáy Tính E=mc²Máy Tính Giãn Nở Thời GianMáy tính Định luật thứ ba của KeplerMáy tính Vận tốc ThoátMáy Tính Lực Hấp DẫnMáy tính Định luật Beer-LambertMáy Tính Phương Trình NernstMáy tính Áp suất Thẩm thấuMáy Tính Độ Tăng Điểm SôiMáy Tính Độ Giảm Điểm Đông BăngMáy Tính Thành Phần Phần TrămMáy Tính Nồng Độ Đương LượngMáy tính Nồng độ MolanBộ Chuyển Đổi pKa Sang KaMáy tính Henderson-HasselbalchMáy Tính Sản Lượng Lý ThuyếtMáy tính Chất phản ứng Giới hạnMáy tính Cấu hình ElectronBảng tuần hoàn tương tácTrình Tạo Giáo Án AITrình tạo Câu đố AITrình tạo trích dẫn (APA/MLA/Chicago)Máy Tính Phần Trăm Điểm DanhMáy Tính Điểm APMáy Tính Điểm ACTMáy Tính Điểm SATChuyển đổi Phần trăm sang CGPATrình chuyển đổi CGPA sang phần trămCông Cụ Chấm Điểm Dễ Dàng (EZ Grader)Máy tính Chi phí Nuôi conMáy Tính Lượng Sữa Cho BéMáy Tính Kích Cỡ TãTrình Tạo Tên Em BéCông Cụ Dự Đoán Màu Mắt Em BéMáy Tính Phân Vị BMI Cho Trẻ EmCông Cụ Dự Đoán Chiều Cao Của TrẻMáy Tính Thời Gian Tăng Gấp Đôi hCGMáy tính ngày dự sinh IVFMáy tính làm tổ của phôiCông cụ dự đoán giới tính kiểu Trung QuốcCông cụ định dạng ngày ISO 8601Trình Chuyển Đổi Ngày JulianNap CalculatorMáy tính Pha Mặt TrăngWorld ClockBộ chuyển đổi Ngày sang Chữ số La MãĐếm Ngược Đến Khi Nghỉ HưuMáy Tính Cai NghiệnMáy Tính Nửa Sinh NhậtMáy Tính Ngày Kỷ NiệmMáy Tính Chia Tiền BoaMáy Tính ROI Email MarketingMáy tính Chi phí trên Mỗi Khách hàng Tiềm năngMáy Tính Vốn Lưu ĐộngTrình tạo nhân vật RPG ngẫu nhiên