Tại sao TSP không yêu cầu sự lặp lại của các thành phố?


9

Nó có vẻ kỳ lạ với tôi rằng TSP phủ nhận khả năng của các thành phố lặp đi lặp lại. Mục tiêu của người bán hàng du lịch này là đi càng nhanh càng tốt và ghé thăm tất cả các thành phố, phải không? Vậy điều gì sẽ xảy ra nếu đi qua một thành phố mà bạn đã đến nhanh hơn?


2
Tôi chắc chắn rằng nó tùy ý. Chỉ trong những trường hợp hiếm hoi cho phép các thành phố lặp đi lặp lại sẽ tạo ra bất kỳ sự khác biệt (không bao giờ trong TSP số liệu). Vì vậy, các vấn đề hầu như không khác nhau. Lý do có lẽ là lịch sử.
Karolis Juodelė

8
Tôi nghe nói nhân viên bán hàng bán những sản phẩm thực sự tồi tệ và sẽ không khôn ngoan khi gặp những khách hàng cũ của mình :)
ssch

Câu trả lời:


3

Nó không quan trọng chính xác cách bạn xác định nó bởi vì đó chỉ là một cách mô hình hóa một vấn đề trong thế giới thực. Trong TSP, bạn chỉ cần có một tập hợp các thành phố và chi phí đi lại giữa mỗi cặp. Điều đó không loại trừ khả năng, trong tình huống thực tế bạn đang lập mô hình, tuyến đường tốt nhất giữa B và C có thể đi qua A. Nếu đó là trường hợp thì, vâng, tuyến đường được mô hình hóa là ABCA trong TSP có thể rất tốt thực sự liên quan đến việc lái xe qua A thêm một khoảng thời gian trên đường từ B đến C nhưng chi tiết như vậy được trừu tượng hóa trong mô hình TSP.


1
Một điểm hợp lệ, nhưng tôi muốn chỉ ra rằng TSP thường được sử dụng trong các tình huống thực tế. Là yêu cầu không lặp lại được tha thứ khi thực hiện các ứng dụng trong thế giới thực?
danmcardle

@danmcardle Nó phụ thuộc vào ứng dụng.
Tom van der Zanden

2

Tôi đồng ý rằng các ràng buộc có vẻ kỳ lạ, và trong nhiều tình huống thực tế, nó không liên quan. Như David đã chỉ ra trong câu trả lời của mình, nếu bạn có thể tự thay đổi mô hình, thì điều đó không thực sự quan trọng. Nhưng với một trường hợp không thể sửa đổi, nó sẽ tạo ra sự khác biệt, bởi vì TSP chung với ràng buộc này không thể xấp xỉ trong bất kỳ yếu tố không đổi nào, trong khi nới lỏng ràng buộc truy cập một lần dường như làm cho nó gần đúng trong yếu tố 2 (mặc dù nó không phải là số liệu ). Trừ khi tôi bỏ lỡ điều gì đó, bằng các đối số tiêu chuẩn, trước tiên, bạn có thể xây dựng một cây bao trùm tối thiểu (chi phí nói ), sau đó truy cập vào cây này với kỹ thuật tham quan euler. Rõ ràng, tổng chi phí cho chuyến tham quan của bạn sau đó là 2 c (hai lần mỗi cạnh). Do mâu thuẫn, nếu có một tour du lịch với chi phí ít hơnc2c , sau đó chuyến tham quan này có thể được sử dụng để suy ra MST chi phí thấp hơn c , đó là một mâu thuẫn.cc


1

Đưa ra bất kỳ tour du lịch nào có sự lặp lại, bạn có thể đến với một tour du lịch ngắn hơn mà không lặp lại bất kỳ thành phố nào. Ví dụ, hãy xem xét một chuyến tham quan theo mẫu mà lần Một hai lần. Bạn có thể mất một phím tắt trong chuyến thăm thứ hai của bạn để Một , đi thẳng từ X đến Y : Một X Y .

AXAY,
AAXY
AXY.

Nó có thể là con đường ngắn nhất từ đến Y đi qua A , nhưng điều đó đã được gói gọn trong mép X Y . Bạn có thể nghĩ về một đề cập đến một không phải là "đi qua" Một mà là "dừng lại ở" Một . Bạn chỉ cần dừng lại ở A một lần, mặc dù bạn có thể đi qua A vài lần.XYAXYAAAAA

Các thuật toán thực tế cho TSP có thể có bước "lấy phím tắt" này, ví dụ thuật toán của Christofides. Xem ví dụ mô tả này hoặc tài khoản ngắn hơn .


4
Bạn đang giả sử TSP số liệu (nghĩa là bất đẳng thức tam giác giữ). Tuy nhiên, TSP chung không có bất đẳng thức tam giác. Ví dụ: bạn có thể có các thành phố , trong đó d ( A , X i ) = 1 X n A , với chi phí 2 n + 1 nhưng chuyến đi ngắn nhất mà không lặp lại là AA,X1,,Xnd(A,Xi)=1d(xi,xj)=100i,jAX1AX2AAXnA2n+1AX1XnA100n98

Chắc chắn, nhưng (1) OP có vẻ quan tâm đến các ứng dụng TSP trong thế giới thực, là số liệu và (2) TSP không số liệu không thú vị (vì nó quá khó).
Yuval Filmus

2
@YuvalFilmus TSP thế giới thực không phải là số liệu cần thiết. Đôi khi đi từ A đến B sẽ mất nhiều thời gian hơn sau đó AC + CB vì có lưu lượng trên đường từ A đến B.
Ilya Gazman

1
@Babibu Khoảng cách trên cạnh (A,B)ABAB

0

Không có câu trả lời chung cho vấn đề này, ngoại trừ "mọi người không ngu ngốc." Họ sẽ áp dụng giải pháp phù hợp với hoàn cảnh của họ. Hiếm khi những người quan tâm đến vấn đề nhân viên bán hàng đi du lịch. Trong trường hợp cổ điển, một nhân viên bán hàng trong thế giới thực sẽ quan tâm nhiều hơn đến vấn đề tối đa hóa thu nhập của họ trong một khoảng thời gian nhất định trong một loạt các ràng buộc cụ thể. Trong trường hợp này của vấn đề, tổng quãng đường di chuyển chỉ là một trong một số yếu tố khác nhau để tìm ra câu trả lời tối ưu.


0

Nếu việc lặp lại được cho phép, thì bạn chỉ cần kiểm tra tất cả các kết nối X -> A -> Y và nếu đó là ngắn hơn X -> Y thì bạn thay thế độ dài của X -> Y bằng độ dài X -> A -> Y, và giải quyết vấn đề kết quả với thuật toán tiêu chuẩn. Tôi nghĩ bạn phải lặp lại quy trình thay thế cho đến khi không có thay đổi, bởi vì nếu bạn tìm thấy kết nối ngắn hơn X -> Y thì điều này có nghĩa là bây giờ X -> Y -> Z ngắn hơn X -> Y.

Theo dõi những kết nối bạn đã thay đổi, đi qua các kết nối trong giải pháp và nếu giải pháp đó chứa X -> Y thì bạn thay thế kết nối này bằng X -> A -> Y.

Tái bút Tôi nghĩ rằng ý tưởng của tôi là tuyệt vời, nhưng tôi không chắc chắn vào lúc này rằng nó là chính xác. Bởi vì X -> A -> Y thay vì X -> Y không chỉ là lối tắt, nó còn bao trùm cả thành phố A.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.