วิธีการคำนวณเส้นทางที่มีประสิทธิภาพที่สุดผ่านบ้านทั้งหมดในโลก?


52

ฉันใหม่กับ GIS

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

ฉันต้องการคำแนะนำเกี่ยวกับซอฟต์แวร์ที่จะใช้รับข้อมูลและวิธีการดำเนินการ เนื่องจากฉันมีค่าใช้จ่ายเพิ่มเติมในเดือนนี้ฉันต้องการโซลูชันโอเพนซอร์สบางอย่าง

ขอบคุณทุกคน!

PS: ฉันกำลังรีบหน่อยเพราะฉันต้องการสิ่งนี้ในวันพรุ่งนี้!


20
นี่เป็นปัญหาการเดินทางของพนักงานขายซึ่งถ้าคุณไม่เต็มใจใช้ฮิวริสติกก็มี n! ความซับซ้อนโชคดีที่ได้พบทางออกสำหรับคนจำนวนมากก่อนที่เอกภพจะสิ้นสุดลง ...
Smalltown2k

7
รอตั้งแต่เมื่อเด็กคริสเตียนเท่านั้นที่ได้รับการเยี่ยมชมซานต้า?
Steve Bennett

4
ให้เราสมมติว่ามิสเตอร์ซานตาคลอสมีรายการของหลังคาบ้านเพื่อเข้าชมและเก็บไว้เป็นพื้นที่ที่ไม่ใช่นิกาย ขอบคุณ :)
blah238

9
เส้นทางนี้ถูก จำกัด ให้เริ่มต้นที่ขั้วโลกเหนือหรือไม่? ขั้วโลกเหนือภูมิศาสตร์หรือขั้วโลกเหนือแม่เหล็ก?
Spacedman

3
ดังนั้น. ขั้นตอนแรกคือการรวบรวมชุดข้อมูลสำหรับที่อยู่อาศัยทั้งหมดของโลก ใครสนใจโพสต์ลิงค์ดรอปบ็อกซ์?
Simon

คำตอบ:



16

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

มันยอดเยี่ยมมากที่เทคโนโลยีนี้มีขนาดเพิ่มขึ้นดังนั้นเมื่อประชากร (คริสเตียน) ของโลกได้ขยายตัวตามคำสั่งขนาดใหญ่หลายพันปีความสามารถของซานต้าในการปฏิบัติหน้าที่ของเขานั้นไม่เคยมีข้อสงสัยอย่างจริงจัง: จำนวนผู้ช่วยเหลือที่มีอยู่เพิ่มขึ้น สัดส่วนโดยตรงกับจำนวนบ้านที่ต้องการเข้าชม


มีการสาธิตการมีอยู่จริงของผู้ช่วยเหลือเหล่านี้ หากสมมติว่าบุคคลเพียงคนเดียวพยายามส่งของขวัญให้พูดหนึ่งพันล้านที่อยู่อาศัยตลอดระยะเวลาของวันตามปฏิทิน (ซึ่งครอบคลุม 48 ชั่วโมงคิดเป็นเขตเวลา) พวกเขาจะต้องเยี่ยมชมเกือบ 6,000 ที่อยู่อาศัยต่อวินาที . ขอบเขตที่ต่ำกว่าสำหรับระยะทางเฉลี่ยระหว่างที่อยู่อาศัยนั้นได้รับการจ่ายโดยความหนาแน่นของเมืองใหญ่ของโลกซึ่งผู้คนอาจอยู่ห่างกันเพียง 10 เมตรเท่านั้น สิ่งนี้จะต้องใช้ความเร็วเฉลี่ยที่ 6,000 * 10 = 60,000 เมตรต่อวินาทีซึ่งสูงกว่ากำแพงเสียง (การสร้างเสียงดังสนั่นที่ไม่ใช่ได้ยินในวันคริสต์มาส) และสร้างแรงเสียดทานในชั้นบรรยากาศจนทำให้เลื่อนกลายเป็นลูกไฟที่ทำลายล้างทุกอย่างที่อยู่ใกล้เคียง แม้ว่าสิ่งนี้จะทำให้เรามีความเข้าใจใหม่เกี่ยวกับต้นกำเนิดของแสงสีแดงในจมูกของรูดอล์ฟ แต่ก็แสดงให้เห็นอย่างชัดเจนว่ามีเพียงวิธีแก้ปัญหาแบบขนานเท่านั้นที่เป็นไปได้แม้แต่ QED


1
ในกรณีที่คุณไม่เชื่อในผู้ช่วยเหลือต่อไปนี้เป็นบทพิสูจน์: en.wikipedia.org/wiki/Prep_%26_Landing
Tobias Kienzler

6

นี่คือสิ่งที่คุณสามารถแก้ไขได้โดยใช้อัลกอริทึมของWarshalหรือDijkstra

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


4
ขอบคุณสำหรับคำใจดี แต่: (1) อัลกอริทึมเหล่านั้นจะแก้ปัญหาพนักงานขายที่เดินทางนี้ได้อย่างไร (2) อัลกอริทึมของ Dijkstra (เพื่อค้นหาเส้นทางที่สั้นที่สุดระหว่างสองจุดที่กำหนดในเครือข่ายที่กำหนด ) นั้นรวดเร็ว นำไปใช้กับชุดข้อมูลของที่อยู่อาศัยทั้งหมดในโลกหากมีการตัดแต่งอย่างเหมาะสมเพื่อรวมขอบเพียงกับเพื่อนบ้านที่ใกล้ที่สุดหลายแห่งของแต่ละที่อยู่อาศัยจะไม่เพียงเป็นไปได้ แต่อย่างรวดเร็วพอสมควร - อาจต้องใช้เวลาเพียงไม่กี่วินาทีหรือนาที
whuber


0

ด้วยชุดข้อมูลที่มีละติจูดและลองจิจูดของทุกที่อยู่อาศัย (ข้อมูลการสำรวจสำมะโนประชากร?) ฉันอาจใช้สูตร Haversine ในภาษาโปรแกรมหนึ่งหรืออีกภาษาหนึ่ง แต่อีกครั้งฉันไม่ใช่เอลฟ์

สูตร Haversine


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