เหตุใด TSP จึงไม่ต้องการการซ้ำซ้อนของเมือง


9

มันแปลกสำหรับฉันที่ TSP ปฏิเสธความเป็นไปได้ของเมืองซ้ำ เป้าหมายของพนักงานขายที่เดินทางนี้คือการไปให้เร็วที่สุดและไปเยี่ยมชมทุกเมืองใช่ไหม ถ้าหากมันเร็วกว่าที่จะเดินทางผ่านเมืองที่คุณเคยไปแล้วล่ะ?


2
ฉันแน่ใจว่ามันเป็นกฎเกณฑ์ เฉพาะในบางกรณีที่อนุญาตให้เมืองที่มีการทำซ้ำจะสร้างความแตกต่าง (ไม่เคยอยู่ในเมตริก TSP) ดังนั้นปัญหาจึงแทบไม่แตกต่างกัน เหตุผลอาจเป็นประวัติศาสตร์
Karolis Juodelė

8
ผมได้ยินพนักงานขายจำหน่ายสินค้าดีจริงๆและมันจะไม่ฉลาดที่จะตอบสนองลูกค้าเก่าของเขา :)
ssch

คำตอบ:


3

มันไม่สำคัญว่าคุณจะนิยามมันอย่างไรเพราะมันเป็นแค่วิธีการสร้างแบบจำลองปัญหาโลกแห่งความจริง ใน TSP คุณมีเพียงชุดของเมืองและค่าใช้จ่ายในการเดินทางระหว่างแต่ละคู่ นั่นไม่ได้ยกเว้นความเป็นไปได้ที่ในสถานการณ์โลกแห่งความจริงที่คุณกำลังสร้างแบบจำลองเส้นทางที่ดีที่สุดระหว่าง B และ C อาจผ่าน A หากเป็นกรณีนั้นใช่เส้นทางที่เป็นแบบจำลองเป็น ABCA ใน TSP อาจ เกี่ยวข้องกับการขับรถผ่าน A เป็นเวลาพิเศษระหว่างทางจาก B ถึง C แต่รายละเอียดดังกล่าวถูกแยกออกไปในโมเดล TSP


1
จุดที่ถูกต้อง แต่ฉันอยากจะชี้ให้เห็นว่า TSP มักใช้ในสถานการณ์จริง ข้อกำหนดการไม่ซ้ำซ้อนได้รับการให้อภัยเมื่อใช้งานแอพพลิเคชันจริงหรือไม่
danmcardle

@danmcardle มันขึ้นอยู่กับแอปพลิเคชัน
Tom van der Zanden

2

ฉันยอมรับว่าข้อ จำกัด นั้นดูแปลก ๆ และสำหรับสถานการณ์ที่ปฏิบัติได้จริงมันไม่เกี่ยวข้องกัน ตามคำตอบของดาวิดที่ชี้ให้เห็นหากคุณสามารถปรับเปลี่ยนการสร้างแบบจำลองของคุณเองมันก็ไม่สำคัญ แต่เนื่องจากอินสแตนซ์ที่ไม่สามารถแก้ไขได้มันจะสร้างความแตกต่างเนื่องจาก TSP ทั่วไปที่มีข้อ จำกัด นี้ไม่ได้ประมาณภายในปัจจัยคงที่ใด ๆ ในขณะที่การผ่อนคลายข้อ จำกัด ในการเข้าชมครั้งเดียวดูเหมือนจะทำให้ใกล้เคียงภายในปัจจัย 2 (แม้ว่าจะไม่ใช่เมตริก ) ถ้าฉันไม่ได้พลาดบางสิ่งโดยการโต้แย้งมาตรฐานคุณสามารถสร้างแผนผังสแปนขั้นต่ำได้) จากนั้นไปที่ต้นไม้นี้ด้วยเทคนิคทัวร์ออยเลอร์ เห็นได้ชัดว่าค่าใช้จ่ายทั้งหมดของทัวร์ของคุณนั้น2 (สองเท่าทุกขอบ) โดยความขัดแย้งหากมีทัวร์ทัวร์ของค่าใช้จ่ายน้อยกว่าดังนั้นการเดินทางครั้งนี้อาจถูกใช้เพื่ออนุมาน MST ที่มีค่าใช้จ่ายน้อยกว่า ซึ่งเป็นข้อขัดแย้ง


1

ด้วยการทำซ้ำทัวร์คุณสามารถทัวร์สั้น ๆ ที่ไม่ซ้ำเมืองใด ๆ ตัวอย่างเช่นพิจารณาทัวร์ชมของแบบฟอร์ม

AXAY,
สิ่งที่เข้าชม Aสองครั้ง คุณสามารถใช้ทางลัดในการเข้าชมครั้งที่สองของคุณAตรงไปจาก X ถึง Y:
AXY.

อาจเป็นวิธีที่สั้นที่สุดจาก X ถึง Y ผ่านไป Aแต่นั่นถูกห่อหุ้มแล้วในขอบ XY. คุณสามารถนึกถึงการพูดถึงA ไม่เหมือน "ผ่าน" A แต่แทนที่จะ "หยุดที่" A. คุณต้องหยุดที่A ครั้งหนึ่งแม้ว่าคุณจะผ่าน A หลายครั้ง.

อัลกอริทึมที่เกิดขึ้นจริงสำหรับ TSP อาจมีขั้นตอน "การใช้ทางลัด" ตัวอย่างเช่นอัลกอริทึมของ Christofides ดูตัวอย่างคำอธิบายนี้หรือบัญชีที่สั้นกว่านั้น


4
คุณกำลังสมมติเมทริก TSP (นั่นคือความไม่เท่าเทียมกันของสามเหลี่ยมถือ) อย่างไรก็ตาม TSP ทั่วไปไม่มีความไม่เท่าเทียมกันของสามเหลี่ยม ตัวอย่างเช่นคุณอาจมีเมืองA,X1,,Xnที่ไหน d(A,Xi)=1 และ d(xi,xj)=100 เพื่อทุกสิ่ง i,j. ทัวร์ที่สั้นที่สุดพร้อมการทำซ้ำคือAX1AX2AAXnAมีค่าใช้จ่าย 2n+1 แต่ทัวร์ที่สั้นที่สุดที่ไม่มีการทำซ้ำคือ AX1XnAมีค่าใช้จ่าย 100n98.
David Richerby

แน่นอน แต่ (1) OP ดูเหมือนว่าจะสนใจแอปพลิเคชันในโลกแห่งความเป็นจริงของ TSP ซึ่งเป็นตัวชี้วัดและ (2) ที่ไม่ใช่ตัวชี้วัด TSP ไม่น่าสนใจ (เพราะมันยากเกินไป)
Yuval Filmus

2
@YuvalFilmus โลกแห่งความจริง TSP ไม่จำเป็นต้องมีการวัด บางครั้งการเดินทางจาก A ถึง B จะใช้เวลานานกว่านั้น AC + CB เนื่องจากมีการจราจรบนถนนจาก A ถึง B
Ilya Gazman

1
@Babibu ระยะทางบนขอบ (A,B)เป็นระยะทางที่สั้นที่สุดจากA ถึง B. ในกรณีของคุณถนนตรงจากA ถึง Bไม่ใช่ระยะทางที่สั้นที่สุด
Yuval Filmus

0

ไม่มีคำตอบทั่วไปเกี่ยวกับเรื่องนี้ยกเว้น "ผู้คนไม่ได้โง่" พวกเขาจะใช้โซลูชันที่เหมาะสมกับสถานการณ์ของพวกเขา ไม่ค่อยมีคนกังวลกับปัญหาพนักงานขายที่เดินทางเอง Eveb ในตัวอย่างคลาสสิกพนักงานขายในโลกแห่งความเป็นจริงจะมีความกังวลมากขึ้นกับปัญหาของการเพิ่มรายได้ของพวกเขาในช่วงเวลาที่กำหนดภายในข้อ จำกัด ที่เฉพาะเจาะจง ในกรณีของปัญหานี้ระยะทางทั้งหมดที่เดินทางเป็นเพียงหนึ่งในหลาย ๆ ปัจจัยที่เข้าสู่การค้นหาคำตอบที่ดีที่สุด


0

หากอนุญาตให้มีการทำซ้ำได้คุณต้องไปตรวจสอบการเชื่อมต่อทั้งหมด X -> A -> Y และถ้ามันสั้นกว่า X -> Y คุณต้องเปลี่ยนความยาวของ X -> Y ด้วยความยาว X -> A -> Y และแก้ปัญหาผลลัพธ์ด้วยอัลกอริธึมมาตรฐาน ฉันคิดว่าคุณต้องทำซ้ำขั้นตอนการเปลี่ยนจนกว่าจะไม่มีการเปลี่ยนแปลงเพราะถ้าคุณพบการเชื่อมต่อที่สั้นกว่า X -> Y นี่อาจหมายความว่าตอนนี้ X -> Y -> Z สั้นกว่า X -> Y

ติดตามการเชื่อมต่อที่คุณเปลี่ยนแปลงไปผ่านการเชื่อมต่อในโซลูชันและหากโซลูชันมี X -> Y คุณต้องแทนที่ด้วย X -> A -> Y

PS ฉันคิดว่าความคิดของฉันดีมาก แต่ฉันไม่แน่ใจในเวลาที่มันถูกต้อง เนื่องจาก X -> A -> Y แทนที่จะเป็น X -> Y ไม่ใช่แค่ทางลัด แต่ยังครอบคลุมถึงเมือง A

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.