คุณจะสร้างรายการเดินที่ได้รับการปรับให้เหมาะสมซึ่งกำหนดพิกัดลองจิจูดและละติจูดได้อย่างไร


10

ฉันกำลังทำงานในการรณรงค์ทางการเมืองที่มีอาสาสมัครหลายสิบคนที่จะทำการส่งเสริมการขายในช่วงไม่กี่สัปดาห์ถัดไป เมื่อกำหนดรายการที่มีชื่อที่อยู่และพิกัดแบบยาว / ละติจูดสามารถใช้อัลกอริทึมใดในการสร้างรายการเดินที่ปรับให้เหมาะสม


3
การโพสต์ข้ามดูเหมือนว่าอยู่ในรูปแบบที่ไม่ดี ทำไม SQL ที่ติดแท็กนี้
อากาศ

แก้ปัญหาพนักงานขายเดินทาง (โดยประมาณ) (TSP) ...
Debasis

นอกเหนือจากความล่าช้าในการสำรวจแล้วภูมิศาสตร์เป็นอย่างไร เมือง gridded? ชานเมืองที่มีรูปทรงเกือบจะมีถนนที่เล็กลงสู่ตรอกตัน มีอิทธิพลอย่างมาก
Spacedman

คำตอบ:


6

อย่างที่ Steve Kallestad ได้กล่าวมานี่เป็นปัญหา TSP และมีนักแก้ปัญหาฟรีที่ยอดเยี่ยมในการค้นหาวิธีแก้ไขปัญหาโดยประมาณ

อาจใช้งานได้กับสิ่งที่คุณกำลังมองหามากเกินไป แต่คุณอาจลองใช้หนึ่งในตัวแก้ไขเหล่านี้ร่วมกับ Google Maps API เพื่อค้นหาระยะทางเดินที่แท้จริงได้รับพิกัดของคุณ: https://developers.google.com/maps / เอกสาร / ทิศทาง / # DirectionsRequests

(ฉันไม่เคยใช้ API นี้ดังนั้นฉันไม่รู้ว่ามันจะง่ายหรือมีประสิทธิภาพแค่ไหน)


4

ผู้คนเห็นบางสิ่งที่เกี่ยวข้องกับปัญหาพนักงานขายนักท่องเที่ยวและคิดว่ามันไม่สามารถแก้ไขได้

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

คุณอาจต้องการที่จะดูที่ห้องสมุดOpenOptหลาม

ทรัพยากรอื่นที่จะดูที่จะเป็นTSP Solver และเครื่องกำเนิดไฟฟ้า

หากคุณกำลังใช้ R มีแพคเกจ TSP ใช้ได้

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

ในแง่การปฏิบัติคุณไม่จำเป็นต้องค้นหากลยุทธ์ที่เหมาะสมที่สุดอย่างแน่นอน คุณแค่ต้องการสิ่งที่ดีมาก เลือกแพคเกจ TSP ที่ดูล้นหลามและปล่อยวาง


ฉันเห็นด้วยกับ Steve K ว่ากุญแจสำคัญในการแก้ไขปัญหานี้คือการกำหนดกลยุทธ์ที่เหมาะสมที่สุด หลายครั้งความแตกต่างระหว่าง "ดีที่สุด" และ "ดีพอ" ไม่มากนัก
MrMeritology

แน่นอนว่าสามารถพบสิ่งที่เหมาะสมมันอาจใช้เวลานานกว่าอายุของเอกภพในการย้ำความเป็นไปได้ทั้งหมด คำตอบของคุณไม่ได้พูดถึงสิ่งนี้
Spacedman

2

เนื่องจาก @SpacedMan ได้ระบุไว้ในความคิดเห็นเลย์เอาต์ของถนนจะมีอิทธิพลอย่างมากต่อการเพิ่มประสิทธิภาพของรายการเดินเท้า คุณได้รวมเฉพาะ "ละติจูดและลองจิจูด" ในชื่อคำถามของคุณ แต่การแก้ปัญหานั้นไม่ได้นำไปสู่ ​​"รายการเดิน" แต่ไปที่ "รายการ -a-the-the-crow-flies"

การดูเลย์เอาต์ถนนของคุณเป็นกราฟด้วยน้ำหนักขอบอธิบายระยะทางและการพยายามค้นหาเส้นทางลัดที่สั้นที่สุดระหว่างที่อยู่ที่จำเป็นทั้งหมดจะทำให้คุณคิดว่าปัญหาของคุณเป็น " ปัญหาเส้นทางที่สั้นที่สุด " อัลกอริทึมของ Dijkstra เป็นวิธีแก้ปัญหาที่รู้จักกันดีที่สุด ในการใช้งานแบบไร้เดียงสามันมาบรรจบกันในO (n 2 )ซึ่งอาจยอมรับได้หากรายการที่อยู่ของคุณมีขนาดปานกลาง มิฉะนั้นให้มองหาเวอร์ชั่นที่ดีที่สุดในลิงค์ด้านบน

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


1

นี่เป็นความคิดที่บ้าคลั่ง: พูดคุยกับอาสาสมัครที่รู้จักย่านและผู้ที่เคยทำงานแบบ door-to-door มาก่อน รับคำแนะนำและแนวคิดของพวกเขา พวกเขาอาจมีข้อมูลเชิงลึกที่ไม่มีอัลกอริทึมและการปรับเปลี่ยนเหล่านั้นจะเป็นประโยชน์ต่อรายการเส้นทางที่คอมพิวเตอร์สร้าง ตัวอย่างหนึ่ง: หลีกเลี่ยงการข้ามถนนที่เดินทางบ่อยครั้งด้วยแสงน้อยหรือไม่มีไฟ อีกตัวอย่าง: อาสาสมัครที่ทำงานในฝั่งตรงข้ามของถนนเดียวกันจะรู้สึกปลอดภัยกว่าอาสาสมัครที่ทำงานบนถนนคนเดียว

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