Cho một mạng giao thông gồm N nút, các nút được đánh số từ 1 đến
N. Từ nút i đến nút j có không quá một đường đi một chiều với độ dài là c(i,j). Một người bán hàng, xuất phát từ nút giao thông s, phải đưa hàng đến k nút giao thông phân biệt cho trước rồi quay trở về s.
Hãy tìm một hành trình cho người bán hàng sao cho độ dài của hành
trình này là ngắn nhất có thể được.
3.2.2. Mô hình hoá bài toán
Ta có thể coi mạng giao thông trong bài toán 2 như là một mô hình đồ thị có hướng, có trọng số như sau: Mỗi nút giao thông là một đỉnh của đồ thị, mỗi đoạn đường một chiều nối trực tiếp hai nút giao thông là một cung của đồ thị. Việc tìm đường đi ngắn nhất từ nút giao thông s, qua k nút giao thông cho trước rồi trở về s được quy về bài toán tìm đường đi ngắn nhất từ đỉnh s, qua k đỉnh cho trước rồi quay về đỉnh s trên trên đồ thị có hướng G = (V ,E), với V là tập các đỉnh ứng với các nút giao thông, E là tập các cung ứng với các đoạn đường một chiều nối trực tiếp hai nút như đã nói ở trên.
3.2.3. Mô tả input, output
Đồ thị được cho ở dạng danh sách cung mặt khác để thuận lợi khi nhập dữ liệu chúng ta sẽ cho input trong các file text. Cụ thể:
Input: Được cho trong file text có tên là TSP.INP có dạng như sau: Dòng đầu là 4 số nguyên dương N, M, s, k, trong đó N là số đỉnh, M là số
cung của đồ thị, s là đỉnh xuất phát còn K là số đỉnh cho trước phải đi qua. M dòng tiếp theo, mỗi dòng ghi 3 số nguyên dương u, v, l với ý nghĩa có cung từ
u đến v có độ dài (trọng số) là l. Dòng cuối cùng ghi k số nguyên dương phân
biệt là tên các đỉnh cần phải đi qua.
Output: Kết quả ghi ra file text có tên TSP.OUT có dạng như sau:
Dòng đầu là một số nguyên T là độ dài đường đi ngắn nhất tìm được. Các dòng sau ghi số hiệu các đỉnh của đường đi ngắn nhất xuất phát từ s thỏa mãn yêu cầu của bài toán.