Thuật toán 3-opt cho TSP hoạt động như thế nào?


8

Tôi hiểu rằng 3-Opt Heuristic để giải quyết vấn đề Nhân viên bán hàng du lịch liên quan đến việc loại bỏ ba cạnh khỏi biểu đồ và thêm ba điểm nữa để hoàn thành chuyến tham quan. Tuy nhiên, tôi đã thấy nhiều bài báo đề cập rằng khi ba cạnh bị loại bỏ, chỉ còn 2 cách có thể để kết hợp lại chuyến tham quan - điều này không có ý nghĩa với tôi.

Ví dụ, tôi tìm thấy một bài báo [1] có nội dung:

Thuật toán 3-opt hoạt động theo cách tương tự, nhưng thay vì loại bỏ hai cạnh, chúng tôi loại bỏ ba cạnh. Điều này có nghĩa là chúng ta có hai cách kết nối lại ba đường dẫn vào một tour1 hợp lệ (fi gure 2 và ure gure 3). Di chuyển 3-opt thực sự có thể được xem là hai hoặc ba di chuyển 2-opt.

Tuy nhiên, tôi đếm 3 cách khác nhau để kết nối lại tour. Tôi đang thiếu gì ở đây?

Ngoài ra, ai đó có thể liên kết tôi với một thuật toán cho 3-opt nếu có thể không? Tôi chỉ đang cố gắng để hiểu nó, nhưng tôi chưa tìm thấy bất kỳ thuật toán rõ ràng nào: tất cả các tài nguyên tôi tìm thấy chỉ đơn giản là "xóa ba cạnh, kết nối lại chúng". Đó là nó, đó là loại mơ hồ.

Dưới đây là 3 tour du lịch dường như là động tác 3-opt sau khi loại bỏ ba cạnh.

nhập mô tả hình ảnh ở đây


  1. Heuristic cho vấn đề nhân viên bán hàng đi du lịch của C. Nilsson

2
Bài viết mà bạn liên kết được viết theo phong cách rất không chính thức và đưa ra định nghĩa không chuẩn về TSP trong câu đầu tiên; nó cũng không xuất hiện ở bất cứ đâu. Tất nhiên, điều đó không ảnh hưởng đến tính hợp lệ của câu hỏi của bạn nhưng có thể có những giải thích tốt hơn về 3-OPT so với câu hỏi bạn tìm thấy.
David Richerby

Các bài báo ở cấp độ này có thể cho rằng những người đọc quan tâm không gặp khó khăn khi dịch một mô tả xác định ít nhiều thành mã. Đó là phổ biến trên (T) CS; nếu đó là một trở ngại đối với bạn, trước tiên hãy xem xét việc đọc những thứ cơ bản hơn để được đào tạo nhiều hơn.
Raphael

Là một học sinh cấp ba, tôi không tìm thấy thứ gì cơ bản, haha. Dù sao, tôi khá chắc chắn có hơn 2 cách (chính xác là 3) để kết nối lại chuyến tham quan sao cho việc di chuyển sẽ không giống với di chuyển hai lựa chọn ... vì vậy tôi đã tự hỏi tại sao bài báo này lại nêu ở đó chỉ có hai Tôi đã tìm các bài báo khác để tìm kiếm một thuật toán dứt khoát mà tôi có thể dễ dàng thực hiện nhưng không tìm thấy, vì vậy tôi đã thử triển khai nó (bằng Java) dựa trên những gì tôi biết và nó không thực sự hoạt động tốt, vì tôi m vẫn còn bối rối về việc có bao nhiêu cách khác nhau để kết nối lại.
u3l

1
đối với TSP euclid 2d, một chuyến tham quan với các đường giao nhau luôn có thể dẫn đến một chuyến tham quan khác không có đường giao nhau và chuyến tham quan ngắn hơn, tức là chỉ có trường hợp số 1 bạn liệt kê (sau cấu hình ban đầu) có thể được xem xét. có thể một số thông tin đó đang bị bỏ lại trong (các) bài viết mà bạn trích dẫn. tức là họ không xem xét / loại trừ các trường hợp giao nhau không tối ưu được bảo đảm. ps nó sẽ hữu ích / rõ ràng hơn nếu bạn dán nhãn cho mỗi biểu đồ. ý bạn là: ban đầu, tour1, tour2, tour3.
vzn

hãy thử bắt đầu tại wikipedia 3opt mục nhập cho ref. một vài thập kỷ cũ nhưng bản sao điện tử có sẵn.
vzn

Câu trả lời:


6

Bạn đã bỏ lỡ chú thích - những cách này "không bao gồm các kết nối giống hệt với di chuyển 2-opt". Thật vậy, chỉ có hai hoán vị trong mà không có điểm cố định (còn được gọi là loạn ), cụ thể là và . Tổng quát hơn, đối với di chuyển -opt, đủ để xem xét hoán vị mà không có điểm cố định, vì những điểm có điểm cố định là -move.S3(123)(132)kt(kt)

Thuật toán cho tìm kiếm cục bộ -opt như sau. Bắt đầu với một số giải pháp ban đầu, giả sử giải pháp được tạo bởi thuật toán của Christofides. Liên tục cố gắng cải thiện nó bằng cách thực hiện -opt: chọn cạnh và kết nối lại chúng theo một cách khác (lần này sẽ ổn nếu di chuyển cũng là một -move cho một số ) dẫn đến một chuyến tham quan ngắn hơn .kkk<k

Cách thức này được thực hiện là bằng cách đi qua tất cả các bộ cạnh và trên tất cả các cách kết nối lại các cạnh, có thể theo một thứ tự thông minh nào đó và tính toán sự khác biệt về độ dài (không cần phải tính lại độ dài của toàn bộ chuyến tham quan, chỉ cần độ dài khác nhau, lấy thay vì ); nếu một cải tiến được tìm thấy, chúng tôi thực hiện chuyển đổi và lặp lại từ đầu. Chúng tôi tiếp tục như vậy cho đến khi chúng tôi gặp khó khăn.kO(k)O(n)

Một biến thể khác nhau là luôn luôn thử tất cả các khả năng và sử dụng một biến thể mang lại sự cải thiện tốt nhất. Ngoài ra còn có các biến thể khác mà bạn có thể tìm thấy trong tài liệu.


1
Được rồi ... Tôi đã bỏ lỡ rằng một số hoán vị đó chỉ là hai bước di chuyển hiện tại. Tuy nhiên, tôi vẫn tính 3 hoán vị khác nhau, ngoại trừ một hoán vị trước khi di chuyển, có 0 điểm cố định. (tôi sẽ chỉnh sửa hình ảnh vào bài đăng của mình sau vài phút)
u3l

0

Hãy nói rằng chúng ta có 3 điểm A, B và C. Đầu tiên chúng ta trao đổi (A, B) và sau đó chúng ta chỉ có thể trao đổi (B, C) hoặc trao đổi (A, C). Bằng cách này, chúng tôi chỉ có hai khả năng khác nhau.


1
Điều này chắc chắn cần giải thích thêm.
David Richerby

Chà ... có lẽ tôi đã sai. Xin hãy sửa cho tôi. 2-opt: Chúng tôi có các thành phố ABCD. Chúng tôi trao đổi hai và chúng tôi nhận được ACBD. Chỉ có hai khả năng, bản gốc và một khả năng mới - ABCD và ACBD. 3-opt: Các thành phố ABCD. Chúng tôi trao đổi (1,2) và nhận BACD. Chúng tôi trao đổi thành phố thứ ba bằng thứ nhất hoặc thứ hai và nhận BCAD - hoán đổi (2,3) hoặc CABD bằng cách hoán đổi (1,3). Ba khả năng, bản gốc và hai cái mới - ABCD, BACD và BCAD. Còn k-opt (4,5,6 ...) thì sao?
matejs

0

Tôi có thể tìm thấy 4 di chuyển 3-opt (không phải là 2-opt): nhập mô tả hình ảnh ở đây Nếu tôi đã thực hiện chuyến tham quan hình lục giác với số thứ tự là 123456 (bắt đầu từ đỉnh trên cùng bên trái), các chuyến tham quan khác sẽ có các số 125634, 124365, 126534 và 125643 , đó là một tập hợp con của sự loạn trí 12 [3456] (trong đó 3456 đang bị loạn trí).


3
Chào mừng đến với trang web, nhưng tôi không chắc cách này trả lời câu hỏi. Trên các trang web Stack Exchange, chúng tôi đang tìm câu trả lời cho câu hỏi ở đầu trang, không phải cho "đây là một số thông tin liên quan."
David Richerby
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.